فهرست منبع

充值支付调整

zhangxiaobin 1 سال پیش
والد
کامیت
ceab3715ec
2فایلهای تغییر یافته به همراه56 افزوده شده و 6 حذف شده
  1. 1 1
      application/api/controller/Money.php
  2. 55 5
      application/api/controller/Notify.php

+ 1 - 1
application/api/controller/Money.php

@@ -124,7 +124,7 @@ class Money extends Common
             'notifyurl' => $notifyurl,
             'returnurl' => $returnurl,
         ];
-
+echo '<pre>';var_dump($params);exit;
         $result = Service::submitOrder($params);
 
         // 首充赠送

+ 55 - 5
application/api/controller/Notify.php

@@ -32,6 +32,7 @@ class Notify extends Api
         try {
             $payamount = $data['total_fee'] / 100;
             $out_trade_no = $data['out_trade_no'];
+            $transaction_id = $data['transaction_id'];
             Db::startTrans();
             try {
                 $orderModel = new \app\common\model\RecharOrder();
@@ -41,14 +42,23 @@ class Notify extends Api
                 $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
                 $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
                 // 修改订单状态
-                $res1 = $orderModel->update(["status" => 1], ["order_no" => $out_trade_no]);
+                $res1 = $orderModel->update(["status" => 1,'transaction_id'=>$transaction_id], ["order_no" => $out_trade_no]);
                 // 修改用户钻石余额
                 $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
+                //判断是否首充
+                $jewellogWhere['user_id'] = $orderInfo["user_id"];
+                $jewellogWhere['type'] = 1;
+                $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
+                $isFirst = 1;
+                if (!empty($userJewelLog)) {
+                    $isFirst = 0;
+                }
+                $preUserId = $userInfo['pre_userid'];
                 // 添加钻石流水记录
                 $detail = "钻石充值";
                 $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
                 // 添加充值记录
-                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1);
+                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1,$isFirst,$preUserId);
                 if ($res1 && $res2 && $res3 && $res4) {
                     // 添加统计
                     $userInfo->chargecount = $userInfo->chargecount + $payamount;
@@ -87,9 +97,40 @@ class Notify extends Api
             return;
         }
         $data = $pay->verify();
+        /*$dataStr = '{
+            "s": "\/api\/notify\/alipaynotify",
+            "gmt_create": "2023-07-12 09:37:14",
+            "charset": "utf-8",
+            "seller_email": "ixiaoqiuqiu@qq.com",
+            "subject": "充值钻石",
+            "sign": "SzP5OgA9Z+qD8mSzMbAbKFsYOyB6fiH\/8itILn6YqX0Aloa5FnOxUHXEKCFlv5k3ya+OORjZPDq5mt7eZ3FvwJUasSWnMgDlSa6zWLGhlkKE3HXVAe777tkM5UgnVw53uJEr\/Ur2UsLpI+qEcrZAXhNAhA2nNNWhwkvrA1Fyc3iZERnbtJ3XNT\/8nnxGMBjhS3TWlr3VDZ\/bb26fvC1qHQ9Y6GGz8gvj3z30Fo7\/DlLFvH2HFSi6wky+33vWEtgug+klsqh6ziOWaVJhJKvnt2H+ltINiKLCshYVhu8ZBc856sV8noEwMmxPoFTW4CoG7ut\/3PKLjglygSOZblyf4Q==",
+            "buyer_id": "2088702050034935",
+            "invoice_amount": "0.01",
+            "notify_id": "2023071201222093714034931493558779",
+            "fund_bill_list": "[{&quot;amount&quot;:&quot;0.01&quot;,&quot;fundChannel&quot;:&quot;ALIPAYACCOUNT&quot;}]",
+            "notify_type": "trade_status_sync",
+            "trade_status": "TRADE_SUCCESS",
+            "receipt_amount": "0.01",
+            "app_id": "2021004103620776",
+            "buyer_pay_amount": "0.01",
+            "sign_type": "RSA2",
+            "seller_id": "2088641467220712",
+            "gmt_payment": "2023-07-12 09:37:14",
+            "notify_time": "2023-07-12 09:37:14",
+            "version": "1.0",
+            "out_trade_no": "20230712093707239053",
+            "total_amount": "0.01",
+            "trade_no": "2023071222001434931415906799",
+            "auth_app_id": "2021004103620776",
+            "buyer_logon_id": "136****5934",
+            "point_amount": "0.00"
+        }';
+        $data = json_decode($dataStr,true);*/
+
         try {
-            $payamount = $data['total_fee'] / 100;
+            $payamount = $data['total_amount'];
             $out_trade_no = $data['out_trade_no'];
+            $trade_no = $data['trade_no'];
             Db::startTrans();
             try {
                 $orderModel = new \app\common\model\RecharOrder();
@@ -99,14 +140,23 @@ class Notify extends Api
                 $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
                 $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
                 // 修改订单状态
-                $res1 = $orderModel->update(["status" => 1], ["order_no" => $out_trade_no]);
+                $res1 = $orderModel->update(["status" => 1,'transaction_id' => $trade_no], ["order_no" => $out_trade_no]);
                 // 修改用户钻石余额
                 $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
+                //判断是否首充
+                $jewellogWhere['user_id'] = $orderInfo["user_id"];
+                $jewellogWhere['type'] = 1;
+                $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
+                $isFirst = 1;
+                if (!empty($userJewelLog)) {
+                    $isFirst = 0;
+                }
+                $preUserId = $userInfo['pre_userid'];
                 // 添加钻石流水记录
                 $detail = "钻石充值";
                 $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
                 // 添加充值记录
-                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1);
+                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1,$isFirst,$preUserId);
                 if ($res1 && $res2 && $res3 && $res4) {
                     // 添加统计
                     $userInfo->chargecount = $userInfo->chargecount + $payamount;