|
@@ -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;
|
|
|
}
|
|
|
}
|