xxxrrrdddd il y a 3 ans
Parent
commit
a9405775fb
1 fichiers modifiés avec 39 ajouts et 13 suppressions
  1. 39 13
      application/index/controller/Payment.php

+ 39 - 13
application/index/controller/Payment.php

@@ -87,25 +87,51 @@ class Payment extends Frontend
     {
         $name="pay/jd/{$order_no}";
         user_log($name,compact('type','order_no'));
+        user_log($name,compact('type','order_no','data'));
         Db::startTrans();
-        $order=MobileOrder::where('order_no',$order_no)->lock(true)->find();
-        if(!$order){
-            user_log($name,"订单没找到");
+        $payment=\app\common\model\Payment::where('order_no',$order_no)->lock(true)->find();
+        if(!$payment){
+            user_log($name,"支付没找到");
+            Db::rollback();
+            return '支付没找到';
+        }
+        if($payment['pay_time']){
+            user_log($name,"支付已支付");
             Db::rollback();
-            return 'success';
+            return '支付已支付';
         }
-        if($order['pay_time']){
-            user_log($name,"订单已支付");
+        $payment['pay_time']=time();
+        if(!$payment->save()){
+            user_log($name,"支付保存失败");
             Db::rollback();
-            return 'success';
+            return '支付保存失败';
         }
-        $order['pay_time']=time();
-        $order['status']=MobileOrder::STATUS_WAIT_SEND;
-        $order['pay_type']=3;
-        if(!$order->save()){
-            user_log($name,"保存失败");
+        Db::commit();
+
+        Db::startTrans();
+        $mobileOrder=MobileOrder::where('id',$payment['mobile_order_id'])->find();
+        if(!$mobileOrder){
+            user_log($name,"手机订单不存在");
             Db::rollback();
-            return '保存失败';
+            return '手机订单不存在';
+        }
+        if($mobileOrder['pay_time']){
+            user_log($name,"手机订单已支付");
+            Db::rollback();
+            return '手机订单已支付';
+        }
+        $mobileOrder['status']=MobileOrder::STATUS_WAIT_SEND;
+        if($type=='wechat'){
+            $mobileOrder['pay_type']=1;
+            $mobileOrder['pay_no']=$data['transaction_id'];
+        }else{
+            $mobileOrder['pay_type']=2;
+        }
+        $mobileOrder['payment_id']=$payment['id'];
+        if(!$mobileOrder->save()){
+            user_log($name,"手机订单保存失败");
+            Db::rollback();
+            return '手机订单保存失败';
         }
         Db::commit();