Browse Source

公众号支付

lizhen_gitee 3 years ago
parent
commit
fb30e138c7
2 changed files with 35 additions and 3 deletions
  1. 3 3
      application/api/controller/Recharge.php
  2. 32 0
      application/common/model/Recharge.php

+ 3 - 3
application/api/controller/Recharge.php

@@ -71,7 +71,7 @@ class Recharge extends Api
         //赋值money
         $recharge_config = Db::name('paygold_webcon')->where('id',$rc_id)->find();
         $money = $recharge_config['money'];
-        $integral = $recharge_config['gold'];
+        $gold = $recharge_config['gold'];
 
         //创建订单
         $data = [];
@@ -91,8 +91,8 @@ class Recharge extends Api
         $data = [];
         $data['event'] = 'success';
         $data['class'] = 'app\common\model\Recharge';
-        $data['method'] = 'goldpaysucc';
-        $data['args'] = json_encode(['moneytype'=>'gold','user_id'=>$user_info['id'],'number'=>$integral]);
+        $data['method'] = 'rechargepaysucc';
+        $data['args'] = json_encode(['user_id'=>$user_info['id'],'gold'=>$gold,'money'=>$money,'pg_id'=>$rc_id]);
         $data['pay_no'] = $pay_no;
         Db::name('pay_event')->insertGetId($data);
 

+ 32 - 0
application/common/model/Recharge.php

@@ -11,8 +11,40 @@ class Recharge
     /**
      * 支付回调
      */
+    public function rechargepaysucc($orderId,$args){
+        $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();
+
+        if( $order )
+        {
 
+            Db::startTrans();
+            //更新订单状态
+            $rs = Db::name('pay_order')->where(['id'=>$order['id']])->update(['status'=>1]);
+            if(!$rs){
+                Db::rollback();
+                filePut('[wallet][paySucc] pay_order update fail'.$orderId);
+                abort(500,'订单更新失败');
+            }
 
+            //先充值
+            $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],'gold',$args['gold'],10, '金币充值:'.$orderId,'pay_order',$order['id']);
+            if($result['status']===false)
+            {
+                Db::rollback();
+                filePut('[wallet][paySucc]网银充值入账更新余额失败 recharge money fail'.$orderId.$result['msg']);
+                abort(500,'网银充值入账 model wallet recharge money fail');
+            }
+
+            Db::commit();
+
+
+            return true;
+        }else{
+            filePut('[wallet][paySucc]在线支付订单有误 '.$orderId);
+            abort(500,'model wallet fail');
+            return false;
+        }
+    }
 
     public function goldpaysucc($orderId,$args){
         $order = Db::name('pay_order')->where(array('pay_no'=>$orderId,'status'=>2))->find();