|
@@ -262,15 +262,54 @@ class Payios extends Api
|
|
$only_trans = [];
|
|
$only_trans = [];
|
|
foreach($in_app as $key => $trans){
|
|
foreach($in_app as $key => $trans){
|
|
//非订阅信息,原始信息
|
|
//非订阅信息,原始信息
|
|
- if($trans['transaction_id'] == $transaction_id && $original_transaction_id == $trans['original_transaction_id'] && $trans['product_id'] == $order_info['bundle_id']){
|
|
|
|
|
|
+ if($trans['transaction_id'] == $transaction_id && $original_transaction_id == $trans['original_transaction_id']/* && $trans['product_id'] == $order_info['bundle_id']*/){
|
|
$only_trans = $trans;
|
|
$only_trans = $trans;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(empty($only_trans)){
|
|
if(empty($only_trans)){
|
|
Db::rollback();
|
|
Db::rollback();
|
|
- filePut($prefix.'未找到匹配的交易,产品id'.$order_info['bundle_id']);
|
|
|
|
- $this->error('未找到匹配的交易,产品id'.$order_info['bundle_id']);
|
|
|
|
|
|
+ filePut($prefix.'未找到匹配的交易');
|
|
|
|
+ $this->error('未找到匹配的交易');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //续订,但是换了产品了,重新定义order_info
|
|
|
|
+ if($only_trans['product_id'] != $order_info['bundle_id']){
|
|
|
|
+
|
|
|
|
+ $pay_order_map = [
|
|
|
|
+ 'user_id' => $this->auth->id,
|
|
|
|
+ 'bundle_id' => $only_trans['product_id'],
|
|
|
|
+ 'order_status' => 0,
|
|
|
|
+ 'table_name' => 'vip_recharge',
|
|
|
|
+ ];
|
|
|
|
+ $pay_order = Db::name('pay_order')->where($pay_order_map)->order('id desc')->lock(true)->find();
|
|
|
|
+ if(!$pay_order){
|
|
|
|
+ Db::rollback();
|
|
|
|
+ filePut($prefix.'未找到匹配的交易,新订单找不到');
|
|
|
|
+ $this->error('未找到匹配的新订单');
|
|
|
|
+ }
|
|
|
|
+ // 修改订单状态
|
|
|
|
+ $update_order = [
|
|
|
|
+ 'notifytime'=>time(),
|
|
|
|
+ 'order_status'=>1,
|
|
|
|
+ 'original_transaction_id' => $only_trans['original_transaction_id'],
|
|
|
|
+ 'in_app_one' => json_encode($only_trans),
|
|
|
|
+ ];
|
|
|
|
+ $ros = Db::name('pay_order')->where(['id' => $pay_order['id']])->update($update_order);
|
|
|
|
+ if($ros === false) {
|
|
|
|
+ filePut($prefix.'修改订单状态失败');
|
|
|
|
+ Db::rollback();
|
|
|
|
+ $this->error('充值失败');
|
|
|
|
+ }
|
|
|
|
+ $args = json_decode($pay_order['args'],true);
|
|
|
|
+
|
|
|
|
+ //修改order_info
|
|
|
|
+ $order_info['order_id'] = $pay_order['id'];
|
|
|
|
+ $order_info['user_id'] = $pay_order['user_id'];
|
|
|
|
+ $order_info['bundle_id'] = $pay_order['bundle_id'];
|
|
|
|
+ $order_info['days'] = $args['days'];
|
|
|
|
+
|
|
|
|
+ $order_info['original_transaction_id'] = $only_trans['original_transaction_id'];//多余
|
|
}
|
|
}
|
|
|
|
|
|
//验证时间
|
|
//验证时间
|
|
@@ -313,6 +352,9 @@ class Payios extends Api
|
|
$task_data['purchase_date_ms'] = $only_trans['purchase_date_ms'];
|
|
$task_data['purchase_date_ms'] = $only_trans['purchase_date_ms'];
|
|
$task_data['expires_date_ms'] = $only_trans['expires_date_ms'];
|
|
$task_data['expires_date_ms'] = $only_trans['expires_date_ms'];
|
|
|
|
|
|
|
|
+ if($only_trans['product_id'] != $order_info['bundle_id']){
|
|
|
|
+ $task_data['times'] = 1;//回归1
|
|
|
|
+ }
|
|
|
|
|
|
$task_id = Db::name('user_vipxufei_task')->insertGetId($task_data);
|
|
$task_id = Db::name('user_vipxufei_task')->insertGetId($task_data);
|
|
if(!$task_id)
|
|
if(!$task_id)
|