|
@@ -332,7 +332,7 @@ class Lesson extends Api
|
|
|
|
|
|
$package_info = Db::name('lesson_package')->where('id',$package_id)->find();
|
|
|
|
|
|
- //套餐
|
|
|
+ //套餐订单
|
|
|
$data = [
|
|
|
'order_no' => createUniqueNo('P',$this->auth->id),
|
|
|
'user_id' => $this->auth->id,
|
|
@@ -351,7 +351,7 @@ class Lesson extends Api
|
|
|
'is_gift' => 0,
|
|
|
];
|
|
|
|
|
|
- //如果有赠品
|
|
|
+ //如果有赠品,赠品订单
|
|
|
$gift = [];
|
|
|
if(!empty($package_info['gift_lesson_id']) && !empty($package_info['gift_sessions'])){
|
|
|
$gift = $data;
|
|
@@ -377,6 +377,16 @@ class Lesson extends Api
|
|
|
$pay_order['table_id'] = 0;
|
|
|
$pay_order['args'] = json_encode(['lesson_order_id'=>$lesson_order_id]);//用来支付完成回调时,扣除N节课,并改掉预约单的状态
|
|
|
|
|
|
+ //拉起支付
|
|
|
+ $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();
|
|
|
$order_id = Db::name('package_order')->insertGetId($data);
|
|
@@ -404,10 +414,55 @@ class Lesson extends Api
|
|
|
|
|
|
Db::commit();
|
|
|
|
|
|
- //拉起支付
|
|
|
+ unset($hitpay_return['status']);
|
|
|
+ unset($hitpay_return['msg']);
|
|
|
+ $this->success(1,$hitpay_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);
|
|
|
|
|
|
- $this->success(1);
|
|
|
+ $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;
|
|
|
}
|
|
|
|
|
|
|