|
@@ -32,6 +32,7 @@ class Notify extends Api
|
|
|
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();
|
|
@@ -41,14 +42,23 @@ class Notify extends Api
|
|
|
$orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
|
|
|
$userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
|
|
|
// 修改订单状态
|
|
|
- $res1 = $orderModel->update(["status" => 1], ["order_no" => $out_trade_no]);
|
|
|
+ $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"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1);
|
|
|
+ $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1,$isFirst,$preUserId);
|
|
|
if ($res1 && $res2 && $res3 && $res4) {
|
|
|
// 添加统计
|
|
|
$userInfo->chargecount = $userInfo->chargecount + $payamount;
|
|
@@ -87,9 +97,40 @@ class Notify extends Api
|
|
|
return;
|
|
|
}
|
|
|
$data = $pay->verify();
|
|
|
+ /*$dataStr = '{
|
|
|
+ "s": "\/api\/notify\/alipaynotify",
|
|
|
+ "gmt_create": "2023-07-12 09:37:14",
|
|
|
+ "charset": "utf-8",
|
|
|
+ "seller_email": "ixiaoqiuqiu@qq.com",
|
|
|
+ "subject": "充值钻石",
|
|
|
+ "sign": "SzP5OgA9Z+qD8mSzMbAbKFsYOyB6fiH\/8itILn6YqX0Aloa5FnOxUHXEKCFlv5k3ya+OORjZPDq5mt7eZ3FvwJUasSWnMgDlSa6zWLGhlkKE3HXVAe777tkM5UgnVw53uJEr\/Ur2UsLpI+qEcrZAXhNAhA2nNNWhwkvrA1Fyc3iZERnbtJ3XNT\/8nnxGMBjhS3TWlr3VDZ\/bb26fvC1qHQ9Y6GGz8gvj3z30Fo7\/DlLFvH2HFSi6wky+33vWEtgug+klsqh6ziOWaVJhJKvnt2H+ltINiKLCshYVhu8ZBc856sV8noEwMmxPoFTW4CoG7ut\/3PKLjglygSOZblyf4Q==",
|
|
|
+ "buyer_id": "2088702050034935",
|
|
|
+ "invoice_amount": "0.01",
|
|
|
+ "notify_id": "2023071201222093714034931493558779",
|
|
|
+ "fund_bill_list": "[{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]",
|
|
|
+ "notify_type": "trade_status_sync",
|
|
|
+ "trade_status": "TRADE_SUCCESS",
|
|
|
+ "receipt_amount": "0.01",
|
|
|
+ "app_id": "2021004103620776",
|
|
|
+ "buyer_pay_amount": "0.01",
|
|
|
+ "sign_type": "RSA2",
|
|
|
+ "seller_id": "2088641467220712",
|
|
|
+ "gmt_payment": "2023-07-12 09:37:14",
|
|
|
+ "notify_time": "2023-07-12 09:37:14",
|
|
|
+ "version": "1.0",
|
|
|
+ "out_trade_no": "20230712093707239053",
|
|
|
+ "total_amount": "0.01",
|
|
|
+ "trade_no": "2023071222001434931415906799",
|
|
|
+ "auth_app_id": "2021004103620776",
|
|
|
+ "buyer_logon_id": "136****5934",
|
|
|
+ "point_amount": "0.00"
|
|
|
+ }';
|
|
|
+ $data = json_decode($dataStr,true);*/
|
|
|
+
|
|
|
try {
|
|
|
- $payamount = $data['total_fee'] / 100;
|
|
|
+ $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();
|
|
@@ -99,14 +140,23 @@ class Notify extends Api
|
|
|
$orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
|
|
|
$userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
|
|
|
// 修改订单状态
|
|
|
- $res1 = $orderModel->update(["status" => 1], ["order_no" => $out_trade_no]);
|
|
|
+ $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"], 1);
|
|
|
+ $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 1,$isFirst,$preUserId);
|
|
|
if ($res1 && $res2 && $res3 && $res4) {
|
|
|
// 添加统计
|
|
|
$userInfo->chargecount = $userInfo->chargecount + $payamount;
|