Jelajahi Sumber

首充赠送金币和vip天数

lizhen_gitee 3 tahun lalu
induk
melakukan
985d464e9c

+ 3 - 3
addons/epay/config.php

@@ -35,12 +35,12 @@ return [
         'type' => 'array',
         'content' => [],
         'value' => [
-            'app_id' => '',
+            'app_id' => '2021002193629931',
             'mode' => 'normal',
             'notify_url' => '/addons/epay/api/notifyx/type/alipay',
             'return_url' => '/addons/epay/api/returnx/type/alipay',
-            'private_key' => '',
-            'ali_public_key' => '',
+            'private_key'    => 'MIICXAIBAAKBgQDaz3SDXW+Qk++NcfBwTQ0Yy9P6+erVjU/NA1yuwtp5UQBUIlEk 28ynaP7HW78IHSrKCGXgcrG46yRabF759PRWkkbbbsWLLQY71V630l2rDY6itezs ln9uKon2FY6Lhniblq/w0sXIKUmqdKi6sFv3MDJiPDRhwBEkD7NIml76/QIDAQAB AoGAL3rm0H6c7+V6DNpVjzjZB7FrHUHP2GkikN0S5oU3vS17gcY0j2f2n7kj2ASr jkot98scuDiLIhI8QDbV4S1rO1sW/l38JaXE1YNxfDDqaUWFQsoIXQMK6HyrBvmy i1atVKUkuQe78EW10KmYzeeJcqAAS7fjDrVscP8+ZeV9S00CQQD1sW5YjdE7KZXf E/wbNu2EzuQfPzWUKNcSRga/+le0OCJg15Nr2pXX8bOG0ymgfYUtYBUJdz4h73xJ 1wGlzgzjAkEA4/1SpJUpNr7CuTsPfMeLeR0z9BFe4l5yhfUha2fKvgYpIYPKW28v DDvt8FiXRDFt+HjWw0JgOGJPMWUDr4I+nwJANWg6WlmJj9i8UV+gv7Gy89mdUQWG egxepARA115tzikdn/t8ekdrpyNNKROhytc+Kdzm9cXL5ciPNeXc39PojQJACF3S e5Gxun2TncKKFfUorCAjOPCuP7Zhk4LkYBGmAgUt2zn/4g0Zd+R3HdvSaUE7HOQq VW4JI+iPqWtgkD9CVwJBAJEw9+z4JcGlBccfjUq/w+DkP93IL1vy6dstnXMLxc+o wCRrTpwEVhtmbFgZLzrF8jTCRngvmgY4tW2u8thijro=',
+            'ali_public_key' => 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaz3SDXW+Qk++NcfBwTQ0Yy9P6+erVjU/NA1yuwtp5UQBUIlEk28ynaP7HW78IHSrKCGXgcrG46yRabF759PRWkkbbbsWLLQY71V630l2rDY6itezsln9uKon2FY6Lhniblq/w0sXIKUmqdKi6sFv3MDJiPDRhwBEkD7NIml76/QIDAQAB',
             'app_cert_public_key' => '',
             'alipay_root_cert' => '',
             'log' => '1',

+ 7 - 1
application/api/controller/Pay.php

@@ -125,11 +125,17 @@ class Pay extends Api
         $recharge_config = Db::name('paygold_config')->where('id',$rc_id)->find();
         $money = $recharge_config['money'] ?: 0;
         $gold  = $recharge_config['gold'] ?: 0;
+        $first_gold     = $recharge_config['first_gold'] ?: 0;
+        $first_vipdays  = $recharge_config['first_vipdays'] ?: 0;
+
         //自由输入覆盖
         if(!empty($freemoney)){
+            $rc_id = 0;
             $money = floatval($freemoney);
             $bili = config('site.money_to_gold') ?: 10;
             $gold  = bcmul($money,$bili,0);
+            $first_gold = 0;
+            $first_vipdays = 0;
         }
 
         //
@@ -160,7 +166,7 @@ class Pay extends Api
         $even_data['event'] = 'success';
         $even_data['class'] = 'app\common\model\Recharge';
         $even_data['method'] = 'goldpaysucc';
-        $even_data['args'] = json_encode(['user_id'=>$uid,'gold'=>$gold]);
+        $even_data['args'] = json_encode(['user_id'=>$uid,'gold'=>$gold,'money'=>$money,'pg_id'=>$rc_id,'first_gold'=>$first_gold,'first_vipdays'=>$first_vipdays]);
         $even_data['pay_no'] = $pay_no;
         Db::name('pay_event')->insertGetId($even_data);
 

+ 1 - 1
application/common/model/Paymentdo.php

@@ -92,7 +92,7 @@ class Paymentdo
         //如果找到了绑定的事件
         if ($info) {
             $args = json_decode($info['args'], true); //强制转换为数组格式
-            $args['moneynumber'] = $orderInfo['money'];//兼容以前的设计,追加money
+            //$args['moneynumber'] = $orderInfo['money'];//兼容以前的设计,追加money
             if ($event === 'success') {
                 if($orderInfo['status'] === 0)//成功事件只触发1次
                 {

+ 53 - 7
application/common/model/Recharge.php

@@ -29,7 +29,7 @@ class Recharge
             if(!$rs){
                 Db::rollback();
                 filePut('[wallet][paySucc] pay_order update fail'.$orderId);
-                abort(500,lang('订单更新失败'));
+                abort(500,'订单更新失败');
             }
 
             //先充值
@@ -38,15 +38,61 @@ class Recharge
             {
                 Db::rollback();
                 filePut('[wallet][paySucc]网银充值入账更新余额失败 recharge money fail'.$orderId.$result['msg']);
-                abort(500,lang('网银充值入账 model wallet recharge money fail'));
+                abort(500,'网银充值入账 model wallet recharge money fail');
             }
+
+            //首充
+            $first_map = [
+                'uid' => $args['user_id'],
+                'pg_id' => $args['pg_id'],
+            ];
+            $first_check = Db::name('user_paygold_log')->where($first_map)->find();
+            if(empty($first_check)){
+
+                //首充日志
+                $first_log_id = Db::name('user_paygold_log')->insertGetId($first_map);
+                if(!$first_log_id){
+                    Db::rollback();
+                    abort(500,'首充赠送失败');
+                }
+                //送金币
+                if(isset($args['first_gold']) && $args['first_gold'] > 0){
+                    $result = model('Wallet')->lockChangeAccountRemain($args['user_id'],'gold',$args['first_gold'],14, '金币充值:'.$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');
+                    }
+                }
+                //送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();
+                    if($user_info['vip_endtime'] < time()){
+                        //过期了
+                        $vip_endtime = time() + (intval($args['first_vipdays']) * 86400);
+                    }else{
+                        //追加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]);
+                    if($result === false)
+                    {
+                        Db::rollback();
+                        filePut('[wallet][paySucc]网银充值入账更新vip时间失败 recharge money fail'.$orderId);
+                        abort(500,'网银充值入账 model wallet recharge money fail');
+                    }
+                }
+
+            }
+
             Db::commit();
 
 
             return true;
         }else{
             filePut('[wallet][paySucc]在线支付订单有误 '.$orderId);
-            abort(500,lang('model wallet fail'));
+            abort(500,'model wallet fail');
             return false;
         }
     }
@@ -62,7 +108,7 @@ class Recharge
             if(!$rs){
                 Db::rollback();
                 filePut('[wallet][paySucc] pay_order update fail'.$orderId);
-                abort(500,lang('订单更新失败'));
+                abort(500,'订单更新失败');
             }
 
             //先充值
@@ -78,8 +124,8 @@ class Recharge
             if($result === false)
             {
                 Db::rollback();
-                filePut('[wallet][paySucc]网银充值入账更新vip时间失败 recharge money fail'.$orderId.$result['msg']);
-                abort(500,lang('网银充值入账 model wallet recharge money fail'));
+                filePut('[wallet][paySucc]网银充值入账更新vip时间失败 recharge money fail'.$orderId);
+                abort(500,'网银充值入账 model wallet recharge money fail');
             }
 
             Db::commit();
@@ -98,7 +144,7 @@ class Recharge
             return true;
         }else{
             filePut('[wallet][paySucc]在线支付订单有误 '.$orderId);
-            abort(500,lang('model wallet fail'));
+            abort(500,'model wallet fail');
             return false;
         }
     }

+ 1 - 0
application/extra/wallet.php

@@ -11,6 +11,7 @@ return [
         11 => '视频通话消费',
         12 => '语音通话消费',
         13 => '文字聊天消费',
+        14 => '金币首充赠送',
 
         21 => '互动收益',
         22 => '音频收益',