xxxrrrdddd 3 years ago
parent
commit
e032778f75

+ 20 - 5
application/api/controller/MobileController.php

@@ -9,6 +9,7 @@ use app\common\model\Area;
 use app\common\model\Mobile;
 use app\common\model\MobileInfo;
 use app\common\model\MobileOrder;
+use app\common\model\Payment;
 use app\common\service\Jdpay;
 use app\common\service\SmsSend;
 use think\App;
@@ -209,19 +210,24 @@ class MobileController extends UserApi
         $succ=[
             'pay_url'=>'',
         ];
+        $payment=Payment::create([
+            'order_no'=>session_create_id('payment'),
+            'amount'=>$mobileOrder['amount'],
+            'mobile_order_id'=>$mobileOrder['id'],
+        ]);
         if($data['pay_type']==1){
-            $info=Service::submitOrder($mobileOrder['amount'],
-                $mobileOrder['order_no'],'wechat',"购买手机号{$mobileOrder['no']}",
+            $info=Service::submitOrder($payment['amount'],
+                $payment['order_no'],'wechat',"购买手机号{$mobileOrder['no']}",
                 Service::notifyUrl('wechat',$mobileOrder['no']),$data['return_url']??'','wap');
             $succ['pay_url']=$info->getTargetUrl();
         }elseif ($data['pay_type']==2){
-            $info=Service::submitOrder($mobileOrder['amount'],
-                $mobileOrder['order_no'],'alipay',"购买手机号{$mobileOrder['no']}",
+            $info=Service::submitOrder($payment['amount'],
+                $payment['order_no'],'alipay',"购买手机号{$mobileOrder['no']}",
                 Service::notifyUrl('alipay',$mobileOrder['no']),$data['return_url']??'','wap');
             $succ['pay_url']=$info->getTargetUrl();
         }elseif ($data['pay_type']==3){
             $jdpay=App::invokeClass(Jdpay::class);
-            $payData=$jdpay->order($mobileOrder['order_no'],$mobileOrder['amount'],"购买手机号{$mobileOrder['no']}");
+            $payData=$jdpay->order($payment['order_no'],$payment['amount'],"购买手机号{$mobileOrder['no']}");
             $succ=array_merge($succ,$payData);
         }
         return $succ;
@@ -230,6 +236,7 @@ class MobileController extends UserApi
      * 继续支付
      * @ApiParams (name=id,description=订单id)
      * @ApiParams (name=pay_type,description=支付方式与下单一样)
+     * @ApiParams (name=return_url,description="支付完成回调页面链接")
      */
     public function continue_pay(){
         $data=$this->_validate([
@@ -309,4 +316,12 @@ class MobileController extends UserApi
 
         $this->success('',$config);
     }
+
+    /**
+     * 上传开卡资料
+     * @ApiParams (name=id,description=订单id)
+     */
+    public function upload_identity(){
+
+    }
 }

+ 1 - 0
application/common/model/Payment.php

@@ -7,6 +7,7 @@ use think\Model;
 
 class Payment extends Model
 {
+    protected $autoWriteTimestamp=true;
     protected $type=[
         'params'=>'json',
     ];

+ 32 - 18
application/index/controller/Payment.php

@@ -25,32 +25,46 @@ class Payment extends Frontend
             return;
         }
 
-        $name="pay/$type/{$order_no}";
+        $name="payment/$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 '订单没找到';
+            return '支付没找到';
         }
-        if($order['pay_time']){
-            user_log($name,"订单已支付");
+        if($payment['pay_time']){
+            user_log($name,"支付已支付");
             Db::rollback();
-            return '订单已支付';
+            return '支付已支付';
         }
-        $order['pay_time']=time();
-        $order['status']=MobileOrder::STATUS_WAIT_SEND;
-        if($type=='wechat'){
-            $order['pay_type']=1;
-            $order['pay_no']=$data['transaction_id'];
-        }else{
-            $order['pay_type']=2;
+        $payment['pay_time']=time();
+        if(!$payment->save()){
+            user_log($name,"支付保存失败");
+            Db::rollback();
+            return '支付保存失败';
         }
-        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;
         }
         Db::commit();
 

File diff suppressed because it is too large
+ 308 - 164
public/api.html


Some files were not shown because too many files changed in this diff