Browse Source

支付回调

lizhen_gitee 8 months ago
parent
commit
e571857cc9
1 changed files with 20 additions and 19 deletions
  1. 20 19
      application/api/controller/Notify.php

+ 20 - 19
application/api/controller/Notify.php

@@ -27,15 +27,16 @@ class Notify extends Api
         //验证,拿订单号等信息
         $data = $pay->verify();
         $out_trade_no = $data['out_trade_no'];
+        
         //订单查询
-        $info = Db::name('pay_order')->where('out_trade_no',$out_trade_no)->find();
+        $info = Db::name('pay_order')->where('pay_no',$out_trade_no)->find();
 
         if(empty($info)){
             echo $pay->success();
             exit;
         }
 
-        if($info['order_status'] != 0)
+        if($info['status'] != 0)
         {
             echo $pay->success();
             exit;
@@ -62,13 +63,13 @@ class Notify extends Api
     private function gold_notify_do($out_trade_no){
 
         Db::startTrans();
-        $orderInfo = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->lock(true)->find();
+        $orderInfo = Db::name('pay_order')->where(['pay_no' => $out_trade_no])->lock(true)->find();
         if (empty($orderInfo)) {
             Db::rollback();
             return false;
         }
 
-        if($orderInfo['order_status'] != 0){
+        if($orderInfo['status'] != 0){
             Db::rollback();
             return false;
         }
@@ -76,7 +77,7 @@ class Notify extends Api
         //逻辑开始
         $remark = $orderInfo['payment_class'] == 'alipay' ? '支付宝' : '微信';
         $args = json_decode($orderInfo['args'],true);
-        $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],0,'gold',$args['gold'],10, $remark.'金币充值','pay_order',$orderInfo['id'],1);
+        $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],0,'gold',$args['gold'],10, $remark.'金币充值:'.$out_trade_no,'pay_order',$orderInfo['id'],1);
         if($result['status']===false)
         {
             Db::rollback();
@@ -98,7 +99,7 @@ class Notify extends Api
                 //上级获得金额数量
                 $intro_uid_money = bcdiv(bcmul($args['money'],$intro_recharge_rebate_rate,2),100,2);
                 if ($intro_uid_money > 0) {
-                    $intro_result = model('wallet')->lockChangeAccountRemain($args['intro_uid'],$args['user_id'],'money',$intro_uid_money,65,'邀请人充值奖励:'.$orderId,'pay_order',$order['id']);
+                    $intro_result = model('wallet')->lockChangeAccountRemain($args['intro_uid'],$orderInfo['user_id'],'money',$intro_uid_money,65,'邀请人充值奖励:'.$out_trade_no,'pay_order',$orderInfo['id']);
                     if($intro_result['status']===false)
                     {
                         Db::rollback();
@@ -110,7 +111,7 @@ class Notify extends Api
 
         //首充
         $first_map = [
-            'uid' => $args['user_id'],
+            'uid' => $orderInfo['user_id'],
         ];
         $first_check = Db::name('user_paygold_log')->where($first_map)->find();
         if(empty($first_check)){
@@ -124,7 +125,7 @@ class Notify extends Api
             }
             //送金币
             if(isset($args['first_gold']) && $args['first_gold'] > 0){
-                $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],0,'gold',$args['first_gold'],14, $remark . '金币充值:'.$orderId,'pay_order',$order['id']);
+                $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],0,'gold',$args['first_gold'],14, $remark . '金币充值:'.$out_trade_no,'pay_order',$orderInfo['id']);
                 if($result['status']===false)
                 {
                     Db::rollback();
@@ -133,7 +134,7 @@ class Notify extends Api
             }
             //送vip
             if(isset($args['first_vipdays']) && $args['first_vipdays'] > 0){
-                $user_info = Db::name('user_wallet')->where('user_id',$args['user_id'])->lock(true)->find();
+                $user_info = Db::name('user_wallet')->where('user_id',$orderInfo['user_id'])->lock(true)->find();
                 if($user_info['vip_endtime'] < time()){
                     //过期了
                     $vip_endtime = time() + (intval($args['first_vipdays']) * 86400);
@@ -141,7 +142,7 @@ class Notify extends Api
                     //追加vip
                     $vip_endtime = $user_info['vip_endtime'] + (intval($args['first_vipdays']) * 86400);
                 }
-                $result = Db::name('user_wallet')->where('user_id',$args['user_id'])->update(['vip_endtime'=>$vip_endtime]);
+                $result = Db::name('user_wallet')->where('user_id',$orderInfo['user_id'])->update(['vip_endtime'=>$vip_endtime]);
                 if($result === false)
                 {
                     Db::rollback();
@@ -153,7 +154,7 @@ class Notify extends Api
 
         //vip用户充值额外送金币
         if(isset($args['vip_gold']) && $args['vip_gold'] > 0){
-            $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],0,'gold',$args['vip_gold'],101, $remark . '金币充值赠送','pay_order',$order['id']);
+            $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],0,'gold',$args['vip_gold'],101, $remark . '金币充值赠送:'.$out_trade_no,'pay_order',$orderInfo['id']);
             if($result['status']===false)
             {
                 Db::rollback();
@@ -163,7 +164,7 @@ class Notify extends Api
 
         //用户充值额外送钻石
         if(isset($args['jewel']) && $args['jewel'] > 0){
-            $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],0,'jewel',$args['jewel'],35, $remark . '金币充值赠送','pay_order',$order['id']);
+            $result = model('Wallet')->lockChangeAccountRemain($orderInfo['user_id'],0,'jewel',$args['jewel'],35, $remark . '金币充值赠送:'.$out_trade_no,'pay_order',$orderInfo['id']);
             if($result['status']===false)
             {
                 Db::rollback();
@@ -174,7 +175,7 @@ class Notify extends Api
         //逻辑结束
 
         //状态
-        $ros = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->update(['order_status'=>1,'notifytime'=>time()]);
+        $ros = Db::name('pay_order')->where(['pay_no' => $out_trade_no])->update(['status'=>1,'notifytime'=>time()]);
         if($ros === false) {
             Db::rollback();
             return false;
@@ -202,14 +203,14 @@ class Notify extends Api
         $data = $pay->verify();
         $out_trade_no = $data['out_trade_no'];
         //订单查询
-        $info = Db::name('pay_order')->where('out_trade_no',$out_trade_no)->find();
+        $info = Db::name('pay_order')->where('pay_no',$out_trade_no)->find();
 
         if(empty($info)){
             echo $pay->success();
             exit;
         }
 
-        if($info['order_status'] != 0)
+        if($info['status'] != 0)
         {
             echo $pay->success();
             exit;
@@ -236,13 +237,13 @@ class Notify extends Api
     private function vip_notify_do($out_trade_no){
 
         Db::startTrans();
-        $orderInfo = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->lock(true)->find();
+        $orderInfo = Db::name('pay_order')->where(['pay_no' => $out_trade_no])->lock(true)->find();
         if (empty($orderInfo)) {
             Db::rollback();
             return false;
         }
 
-        if($orderInfo['order_status'] != 0){
+        if($orderInfo['status'] != 0){
             Db::rollback();
             return false;
         }
@@ -278,7 +279,7 @@ class Notify extends Api
             'before'  => $user_info['vip_endtime'],
             'change_value'  => intval($args['days']) * 86400,
             'remain'  => $vip_endtime,
-            'remark'  => '安卓购买vip',
+            'remark'  => '购买vip',
             'createtime'  => time(),
             'vip_type'  => $vip_type,
         ];
@@ -296,7 +297,7 @@ class Notify extends Api
         //逻辑结束
 
         //状态
-        $ros = Db::name('pay_order')->where(['out_trade_no' => $out_trade_no])->update(['order_status'=>1,'notifytime'=>time()]);
+        $ros = Db::name('pay_order')->where(['pay_no' => $out_trade_no])->update(['status'=>1,'notifytime'=>time()]);
         if($ros === false) {
             Db::rollback();
             return false;