Browse Source

试课订单下单

lizhen_gitee 1 year ago
parent
commit
d1eb7b1f08
2 changed files with 74 additions and 12 deletions
  1. 1 0
      application/api/controller/Lesson.php
  2. 73 12
      application/api/controller/Trylesson.php

+ 1 - 0
application/api/controller/Lesson.php

@@ -422,6 +422,7 @@ class Lesson extends Api
 
     }
 
+    //拉起支付
     public function hitpay_payment($out_trade_no,$money,$notifyurl)
     {
         $return = [

+ 73 - 12
application/api/controller/Trylesson.php

@@ -44,6 +44,7 @@ class Trylesson extends Api
             $this->error('该试课已下架');
         }
 
+        //试课数据
         $field = ['firstname','lastname','mobile','email','height','age','weight','address','health','emergency','comefrom','is_first'];
         $data = request_post_hub($field);
 
@@ -55,17 +56,9 @@ class Trylesson extends Api
             'order_status' => 0,
             'createtime'   => time(),
         ];
-
         $data = array_merge($data,$sysdata);
 
-        Db::startTrans();
-        $id = Db::name('trylesson_order')->insertGetId($data);
-        if(!$id){
-            Db::rollback();
-            $this->error('申请失败');
-        }
-
-        //支付订单下单
+        //支付订单数据
         $pay_order = [];
         $pay_order['user_id'] = $sysdata['user_id'];
         $pay_order['out_trade_no'] = $sysdata['order_no'];
@@ -76,9 +69,28 @@ class Trylesson extends Api
         $pay_order['platform'] = 'app';
         $pay_order['order_status'] = 0;
         $pay_order['table_name'] = 'trylesson_order';
-        $pay_order['table_id'] = $id;
+        $pay_order['table_id'] = 0;
         $pay_order['args'] = '';
 
+        //拉起支付
+        $notify_url = config('notify_cdnurl');
+        $hitpay_return = $this->hitpay_payment($pay_order['out_trade_no'],$pay_order['order_amount'],$notify_url);
+        if($hitpay_return['status'] !== true){
+            $this->error($hitpay_return['msg']);
+        }
+        //支付请求id
+        $pay_order['payment_request_id'] = $hitpay_return['id'];
+
+        //入库试课订单
+        Db::startTrans();
+        $id = Db::name('trylesson_order')->insertGetId($data);
+        if(!$id){
+            Db::rollback();
+            $this->error('申请失败');
+        }
+
+        //支付订单下单
+        $pay_order['table_id'] = $id;
         $pay_order_id = Db::name('pay_order')->insertGetId($pay_order);
         if(!$pay_order_id){
             Db::rollback();
@@ -87,7 +99,56 @@ class Trylesson extends Api
 
         Db::commit();
 
-        //拉起支付
-        $this->success('提交成功',$id);
+        $return = [
+            'url' => $hitpay_return['url'],
+            'id'  => $hitpay_return['id'],
+        ];
+        $this->success(1,$return);
+    }
+
+    //拉起支付
+    public function hitpay_payment($out_trade_no,$money,$notifyurl)
+    {
+        $return = [
+            'status' => false,
+            'msg'  => '',
+            'url' => '',
+            'id' => 0,
+        ];
+
+        $apiKey = config('hitpay.apikey');
+
+        try {
+            $hitPayClient = new \HitPay\Client($apiKey, true);
+
+            $request = new \HitPay\Request\CreatePayment();
+
+            $request->setAmount($money)
+                ->setCurrency('SGD')
+                ->setWebhook($notifyurl)
+                ->setReferenceNumber($out_trade_no);
+
+            $result = $hitPayClient->createPayment($request);
+
+            $return['status'] = true;
+            $return['url'] = $result->getUrl();
+            $return['id']  = $result->getId();
+
+
+            //print_r($result);
+
+            /*$data = $hitPayClient->getPaymentStatus($result->getId());
+            dump($data);
+            dump($data->status);*/
+
+            /*$data = $hitPayClient->deletePaymentRequest($data->getId());
+            print_r($data);*/
+
+
+        } catch (\Exception $e) {
+            $return['msg'] = $e->getMessage();
+        }
+
+        return $return;
     }
 }