|
@@ -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()
|