Jelajahi Sumber

Merge branch 'master' of http://git.huxiukeji.com/zhangxiaobin/ggyuyin

lizhen_gitee 1 tahun lalu
induk
melakukan
25a7bf6072

+ 1 - 1
application/api/controller/Money.php

@@ -115,7 +115,7 @@ class Money extends Common
             $businessNo = isset($epayConfig['wechat']['mch_id']) ? $epayConfig['wechat']['mch_id'] : '';
         } elseif ($type == 'alipay') {
             $payType = 2;
-            $businessNo = isset($epayConfig['wechat']['app_id']) ? $epayConfig['wechat']['app_id'] : '';
+            $businessNo = isset($epayConfig['alipay']['app_id']) ? $epayConfig['alipay']['app_id'] : '';
         } else {
             $payType = 3;
             $businessNo = '';

+ 79 - 127
application/api/controller/Notify.php

@@ -29,68 +29,19 @@ class Notify extends Api
             return;
         }
         $data = $pay->verify();
+        Db::startTrans();
         try {
-            $payamount = $data['total_fee'] / 100;
-            $out_trade_no = $data['out_trade_no'];
-            $transaction_id = $data['transaction_id'];
-            Db::startTrans();
-            try {
-                $orderModel = new \app\common\model\RecharOrder();
-                $userModel = new \app\common\model\User();
-                $jewellogModel = new \app\common\model\UserJewelLog();
-                $rechargelogModel = new \app\common\model\UserRechargeLog();
-                $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
-                $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
-                // 修改订单状态
-                $res1 = $orderModel->update(["status" => 1,'transaction_id'=>$transaction_id], ["order_no" => $out_trade_no]);
-                // 修改用户钻石余额
-                $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
-                //判断是否首充
-                $jewellogWhere['user_id'] = $orderInfo["user_id"];
-                $jewellogWhere['type'] = 1;
-                $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
-                $isFirst = 1;
-                if (!empty($userJewelLog)) {
-                    $isFirst = 0;
-                }
-                $preUserId = $userInfo['pre_userid'];
-                // 添加钻石流水记录
-                $detail = "钻石充值";
-                $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
-                // 添加充值记录
-                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], 0, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1,$isFirst,$preUserId);
-                if ($res1 && $res2 && $res3 && $res4) {
-                    // 添加统计
-                    $userInfo->chargecount = $userInfo->chargecount + $payamount;
-                    $userInfo->chargetime = time();
-                    $userInfo->save();
-                    $userService = new UserService();
-                    $userService->inviteMoney(['user_id'=>$orderInfo["user_id"]]);
-                    // +EXP 充值任意金额
-                    \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "5EMwg7la", 1);
-
-                    // 查询今日充值记录
-                    $today = strtotime(date("Y-m-d 00:00:00"));
-                    $rechargeMoney = \app\common\model\RecharOrder::where(["user_id" => $orderInfo["user_id"], "createtime" => ["gt", $today]])->sum("money");
-                    if ($rechargeMoney >= 100) {
-                        // +EXP 充值超过100
-                        \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "DaCVgOLu", 1);
-                    }
-                    Db::commit();
-                }
-            } catch (ValidateException $e) {
-                Db::rollback();
-                $this->error($e->getMessage());
-            } catch (PDOException $e) {
-                Db::rollback();
-                $this->error($e->getMessage());
-            } catch (Exception $e) {
-                Db::rollback();
-                $this->error($e->getMessage());
-            }
-
-            //你可以在此编写订单逻辑
+            $this->payhandel($data);
+            Db::commit();
+        } catch (ValidateException $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        } catch (PDOException $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
         } catch (Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
         }
         echo $pay->success();
     }
@@ -136,80 +87,81 @@ class Notify extends Api
             "point_amount": "0.00"
         }';
         $data = json_decode($dataStr,true);*/
-
+        Db::startTrans();
         try {
-            $payamount = $data['total_amount'];
-            $out_trade_no = $data['out_trade_no'];
-            $trade_no = $data['trade_no'];
-            Db::startTrans();
-            try {
-                $orderModel = new \app\common\model\RecharOrder();
-                $userModel = new \app\common\model\User();
-                $jewellogModel = new \app\common\model\UserJewelLog();
-                $rechargelogModel = new \app\common\model\UserRechargeLog();
-                $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
-                $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
-                // 修改订单状态
-                $res1 = $orderModel->update(["status" => 1,'transaction_id' => $trade_no], ["order_no" => $out_trade_no]);
-                // 修改用户钻石余额
-                $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
-                //判断是否首充
-                $jewellogWhere['user_id'] = $orderInfo["user_id"];
-                $jewellogWhere['type'] = 1;
-                $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
-                $isFirst = 1;
-                if (!empty($userJewelLog)) {
-                    $isFirst = 0;
-                }
-                $preUserId = $userInfo['pre_userid'];
-                // 添加钻石流水记录
-                $detail = "钻石充值";
-                $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
-                // 添加充值记录
-                $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 2,$isFirst,$preUserId);
-                if ($res1 && $res2 && $res3 && $res4) {
-                    // 添加统计
-                    $userInfo->chargecount = $userInfo->chargecount + $payamount;
-                    $userInfo->chargetime = time();
-                    $userInfo->save();
-                    $userService = new UserService();
-                    $userService->inviteMoney(['user_id'=>$orderInfo["user_id"]]);
-                    // +EXP 充值任意金额
-                    \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "5EMwg7la", 1);
-
-                    // 查询今日充值记录
-                    $today = strtotime(date("Y-m-d 00:00:00"));
-                    $rechargeMoney = \app\common\model\RecharOrder::where(["user_id" => $orderInfo["user_id"], "createtime" => ["gt", $today]])->sum("money");
-                    if ($rechargeMoney >= 100) {
-                        // +EXP 充值超过100
-                        \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "DaCVgOLu", 1);
-                    }
-
-                } else {
-                    $res1 = $orderModel->update(["status" => -1], ["order_no" => $out_trade_no]);
-                    if (!$res1) {
-                        throw new Exception('更新充值状态失败:'.$out_trade_no);
-                    }
-                }
-                Db::commit();
-            } catch (ValidateException $e) {
-                Db::rollback();
-                $this->error($e->getMessage());
-            } catch (PDOException $e) {
-                Db::rollback();
-                $this->error($e->getMessage());
-            } catch (Exception $e) {
-                Db::rollback();
-                $this->error($e->getMessage());
-            }
-
-            //你可以在此编写订单逻辑
+            $this->payhandel($data);
+            Db::commit();
+        } catch (ValidateException $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
+        } catch (PDOException $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
         } catch (Exception $e) {
+            Db::rollback();
+            $this->error($e->getMessage());
         }
         echo $pay->success();
     }
 
     /**
+     * 支付处理方法
+     * @return void
+     */
+    private function payhandel($params = [])
+    {
+        $payamount    = $params['total_amount'];
+        $out_trade_no = $params['out_trade_no'];
+        $trade_no     = $params['trade_no'];
+        $orderModel = new \app\common\model\RecharOrder();
+        $userModel = new \app\common\model\User();
+        $jewellogModel = new \app\common\model\UserJewelLog();
+        $rechargelogModel = new \app\common\model\UserRechargeLog();
+        $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
+        $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
+        // 修改订单状态
+        $res1 = $orderModel->update(["status" => 1,'transaction_id' => $trade_no], ["order_no" => $out_trade_no]);
+        // 修改用户钻石余额
+        $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
+        //判断是否首充
+        $jewellogWhere['user_id'] = $orderInfo["user_id"];
+        $jewellogWhere['type'] = 1;
+        $userJewelLog = $jewellogModel->where($jewellogWhere)->find();
+        $isFirst = 1;
+        if (!empty($userJewelLog)) {
+            $isFirst = 0;
+        }
+        $preUserId = $userInfo['pre_userid'];
+        // 添加钻石流水记录
+        $detail = "钻石充值";
+        $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
+        // 添加充值记录
+        $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 2,$isFirst,$preUserId);
+        if ($res1 && $res2 && $res3 && $res4) {
+            // 添加统计
+            $userInfo->chargecount = $userInfo->chargecount + $payamount;
+            $userInfo->chargetime = time();
+            $userInfo->save();
+            $userService = new UserService();
+            $userService->inviteMoney(['user_id'=>$orderInfo["user_id"]]);
+            // +EXP 充值任意金额
+            \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "5EMwg7la", 1);
+
+            // 查询今日充值记录
+            $today = strtotime(date("Y-m-d 00:00:00"));
+            $rechargeMoney = \app\common\model\RecharOrder::where(["user_id" => $orderInfo["user_id"], "createtime" => ["gt", $today]])->sum("money");
+            if ($rechargeMoney >= 100) {
+                // +EXP 充值超过100
+                \app\common\model\TaskLog::tofinish($orderInfo["user_id"], "DaCVgOLu", 1);
+            }
+        } else {
+            $res1 = $orderModel->update(["status" => -1], ["order_no" => $out_trade_no]);
+            if (!$res1) {
+                throw new Exception('更新充值状态失败:'.$out_trade_no);
+            }
+        }
+    }
+    /**
      * 支付回调
      */
     public function wechatkjnotify()

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

@@ -1206,9 +1206,15 @@ class User extends Api
             }
 
             $user = model('User')->find($this->auth->id);
-            if(!empty($this->auth->openid) && $openid != $this->auth->openid){
+            if(!empty($user['openid']) && $openid != $user['openid']){
                 throw new Exception('已经绑定了微信号');
             }
+            $otherUserWhere['openid'] = $openid;
+            $otherUserWhere['id'] = ['neq',$this->auth->id];
+            $otherUser = model('User')->where($otherUserWhere)->find();
+            if (!empty($otherUser)) {
+                throw new Exception('该微信已被其他用户绑定过');
+            }
 
             $user->openid = $openid;
             $userRes = $user->save();

+ 1 - 1
application/api/controller/Usercenter.php

@@ -39,7 +39,7 @@ class UserCenter extends Common
      * 获取个人信息
      */
     public function getUserInfo() {
-        $user_id = $this->request->request("user_id");
+        $user_id = $this->request->param("user_id");
         if (!$user_id) {
             $this->error(__('Invalid parameters'));
         }