|
@@ -63,6 +63,7 @@ class Payios extends Api
|
|
|
$data['table_id'] = 0;
|
|
|
$data['args'] = json_encode(['days'=>$recharge_config['days']]);
|
|
|
$data['bundle_id'] = $recharge_config['bundle_id'];
|
|
|
+ $data['is_lianxu'] = $recharge_config['is_lianxu'];
|
|
|
|
|
|
$orderid = Db::name('pay_order')->insertGetId($data);
|
|
|
|
|
@@ -209,9 +210,36 @@ class Payios extends Api
|
|
|
$this->success('success',$data['out_trade_no']);
|
|
|
}
|
|
|
|
|
|
+ //订阅信息处理
|
|
|
+ public function expires(){
|
|
|
+
|
|
|
+ //苹果订阅的验证收据
|
|
|
+ $original_transaction_id = input('original_transaction_id','','trim');
|
|
|
+ $receipt_data = input('apple_receipt', '', 'trim');
|
|
|
+ $transaction_id = input('transaction_id', '', 'trim');
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (!$receipt_data || !$original_transaction_id || !$transaction_id) {
|
|
|
+ $this->error('缺少参数');
|
|
|
+ }
|
|
|
+
|
|
|
+ filePut("\r\n\r\n".'新请求VIP订阅');
|
|
|
+ $prefix = 'iosVIP订阅'.',传入original_transaction_id:'.$original_transaction_id.',传入transaction_id:'.$transaction_id.'。';
|
|
|
+ filePut($prefix.'参数apple_receipt:'.$receipt_data);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
//金币+vip,苹果内购支付回调,app请求的接口
|
|
|
public function gold_notify_iosnew(){
|
|
|
|
|
|
+ $original_transaction_id = input('original_transaction_id','','trim');
|
|
|
+ if(!empty($original_transaction_id)){
|
|
|
+ //订阅信息
|
|
|
+ $this->expires();
|
|
|
+ }
|
|
|
+
|
|
|
//苹果内购的验证收据
|
|
|
$receipt_data = input('apple_receipt', '', 'trim');
|
|
|
$out_trade_no = input('out_trade_no', '', 'trim');
|
|
@@ -256,8 +284,10 @@ class Payios extends Api
|
|
|
|
|
|
$only_trans = [];
|
|
|
foreach($in_app as $key => $trans){
|
|
|
- if($trans['transaction_id'] == $transaction_id && $trans['product_id'] == $order_info['bundle_id']){
|
|
|
+ //非订阅信息,原始信息
|
|
|
+ if($trans['transaction_id'] == $transaction_id && $transaction_id == $trans['original_transaction_id'] && $trans['product_id'] == $order_info['bundle_id']){
|
|
|
$only_trans = $trans;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
if(empty($only_trans)){
|
|
@@ -317,10 +347,40 @@ class Payios extends Api
|
|
|
Db::rollback();
|
|
|
$this->error('充值失败');
|
|
|
}
|
|
|
+ //订阅vip需要多加的逻辑
|
|
|
+ if($order_info['is_lianxu'] == 1){
|
|
|
+ $task_data = [
|
|
|
+ 'order_id' => $order_info['id'],
|
|
|
+ 'user_id' => $order_info['user_id'],
|
|
|
+ 'bundle_id' => $order_info['bundle_id'],
|
|
|
+ 'days' => $args['days'],
|
|
|
+ 'createtime' => time(),
|
|
|
+ 'apple_receipt' => $receipt_data,
|
|
|
+ 'original_transaction_id' => $only_trans['original_transaction_id'],
|
|
|
+ 'transaction_id' => $only_trans['transaction_id'],
|
|
|
+ 'status' => 1,
|
|
|
+ 'times' => 1,
|
|
|
+ 'notification_type' => 'INITIAL_BUY'.',首次订阅',
|
|
|
+ ];
|
|
|
+ $task_id = Db::name('user_vipxufei_task')->insertGetId($task_data);
|
|
|
+ if($task_id)
|
|
|
+ {
|
|
|
+ filePut($prefix.'用户添加vipxufei_task失败');
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('充值失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// 修改订单状态
|
|
|
- $ros = Db::name('pay_order')->where(['id' => $order_info['id']])->update(['order_status'=>1,'transaction_id' => $transaction_id,'notifytime'=>time()]);
|
|
|
+ $update_order = [
|
|
|
+ 'order_status'=>1,
|
|
|
+ 'transaction_id' => $only_trans['transaction_id'],//理论上与 original_transaction_id 相等
|
|
|
+ 'in_app_one' => json_encode($only_trans),
|
|
|
+ 'notifytime'=>time(),
|
|
|
+ ];
|
|
|
+ $ros = Db::name('pay_order')->where(['id' => $order_info['id']])->update($update_order);
|
|
|
if($ros === false) {
|
|
|
filePut($prefix.'修改订单状态失败');
|
|
|
Db::rollback();
|