|
|
@@ -240,9 +240,7 @@ class PaymentOrderService extends BaseService
|
|
|
// 判断商户号
|
|
|
if($params['mchId'] == SanJinService::getMerchantId()){
|
|
|
$must = ['mchId','productId','tradeNo','outTradeNo','amount','payAmount','state','createTime','payTime'];
|
|
|
- if($params['sign'] != SanJinService::signature($params,$must)){
|
|
|
- return 'sign';
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
$info = self::findOne(['order_no' => $params['outTradeNo']]);
|
|
|
if($info){
|
|
|
@@ -257,12 +255,50 @@ class PaymentOrderService extends BaseService
|
|
|
$text .= "失败原因:支付金额与订单金额不一致 \n";
|
|
|
$text .= "请联系客服处理!";
|
|
|
self::sendMessage($info->member_id,$text);
|
|
|
- return 'amount';
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($params['sign'] != SanJinService::signature($params,$must)){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($info->status != self::STATUS_PROCESS){
|
|
|
+ return false;
|
|
|
}
|
|
|
-
|
|
|
|
|
|
// 付款
|
|
|
if($info->type == self::TYPE_PAY){
|
|
|
+ if($params['state'] == 1){
|
|
|
+ $info->status = self::STATUS_SUCCESS;
|
|
|
+ $wallet = WalletService::findOne(['member_id' => $info->member_id]);
|
|
|
+ $balance = $wallet->available_balance;
|
|
|
+ $available_balance = bcadd($balance,$payAmount,10);
|
|
|
+ $wallet->available_balance = $available_balance;
|
|
|
+ $wallet->save();
|
|
|
+
|
|
|
+ // 记录余额变动日志
|
|
|
+ BalanceLogService::addLog(
|
|
|
+ $info->member_id,
|
|
|
+ $payAmount,
|
|
|
+ $balance,
|
|
|
+ $available_balance,
|
|
|
+ '三方充值',
|
|
|
+ $info->id,
|
|
|
+ ''
|
|
|
+ );
|
|
|
+
|
|
|
+ $text = "✅ 支付成功 \n";
|
|
|
+ $text .= "充值金额:{$payAmount} RMB \n";
|
|
|
+ $text .= "订单号:{$params['outTradeNo']} \n";
|
|
|
+ $text .= "您充值的金额已到账,请注意查收!";
|
|
|
+ self::sendMessage($info->member_id,$text);
|
|
|
+ }else{
|
|
|
+ $info->status = self::STATUS_FAIL;
|
|
|
+ $text = "❌ 支付失败 \n";
|
|
|
+ $text .= "充值金额:{$payAmount} RMB \n";
|
|
|
+ $text .= "订单号:{$params['outTradeNo']} \n";
|
|
|
+ }
|
|
|
+ $info->save();
|
|
|
return true;
|
|
|
}
|
|
|
}
|