再次查询充值

This commit is contained in:
sxu 2025-04-09 13:46:33 +08:00
parent 1c958696d9
commit f25aabd615
3 changed files with 39 additions and 3 deletions

View File

@ -0,0 +1,33 @@
package com.bonus.canteen.core.pay.constants;
public enum AliPayTradeStatusEnum {
REQUEST_CODE_SUCCESS("10000", "请求成功"),
BUSINESS_CODE_INPROCESS("10003", "支付中"),
BUSINESS_CODE_FAIL("40004", "业务处理失败"),
BUSINESS_CODE_EXCEPTION("20000", "未知异常"),
BUSINESS_STATUS_SUCCESS("ACQ.TRADE_HAS_SUCCESS", "交易已被支付"),
TRADE_STATUS_CLOSED("TRADE_CLOSED", "交易关闭"),
TRADE_STATUS_FINISHED("TRADE_FINISHED", "交易完结"),
TRADE_STATUS_SUCCESS("TRADE_SUCCESS", "支付成功"),
TRADE_STATUS_WAIT("WAIT_BUYER_PAY", "交易创建"),
TRADE_STATUS_CANCEL_CLOSE("close", "交易关闭,无退款"),
TRADE_STATUS_CANCEL_REFUND("refund", "交易关闭,有退款"),
TRADE_STATUS_REFUND_SUCC("Y", "退款成功");
private final String key;
private final String desc;
private AliPayTradeStatusEnum(String key, String desc) {
this.key = key;
this.desc = desc;
}
public String getKey() {
return this.key;
}
public String getDesc() {
return this.desc;
}
}

View File

@ -4,6 +4,7 @@ import com.alipay.api.AlipayApiException;
import com.alipay.api.internal.util.AlipaySignature;
import com.bonus.canteen.core.account.constants.AccTradeStateEnum;
import com.bonus.canteen.core.account.service.IAccTradeService;
import com.bonus.canteen.core.pay.constants.AliPayTradeStatusEnum;
import com.bonus.canteen.core.pay.constants.PayStateEnum;
import com.bonus.canteen.core.account.domain.vo.AccTradeVo;
import com.bonus.canteen.core.pay.util.AlipayConfig;
@ -58,7 +59,7 @@ public class NotifyCotroller {
String third_trade_no = request.getParameter("trade_no");
//交易状态
String trade_status = request.getParameter("trade_status");
if ("TRADE_FINISHED".equals(trade_status)) {
if (AliPayTradeStatusEnum.TRADE_STATUS_FINISHED.getKey().equals(trade_status)) {
//判断该笔订单是否已经做过处理
//如果没做过处理根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详情判断金额是否等于 total_amount并执行商户的业务程序
//如果做过处理不执行商户的业务程序
@ -70,7 +71,7 @@ public class NotifyCotroller {
updateTrade.setTradeState(AccTradeStateEnum.TAKE_EFFECT.getKey().longValue());
updateTrade.setFailReason(trade_status);
this.accTradeService.updateAccTradeVoByOrderNo(updateTrade);
} else if ("TRADE_SUCCESS".equals(trade_status)) {
} else if (AliPayTradeStatusEnum.TRADE_STATUS_SUCCESS.getKey().equals(trade_status)) {
//判断该笔订单是否已经做过处理
//如果没做过处理根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详情判断金额是否等于 total_amount并执行商户的业务程序
//如果做过处理不执行商户的业务程序

View File

@ -10,6 +10,7 @@ import com.alipay.api.response.AlipayTradeQueryResponse;
import com.bonus.canteen.core.account.constants.AccTradeStateEnum;
import com.bonus.canteen.core.account.constants.AccTradeTypeEnum;
import com.bonus.canteen.core.account.service.IAccTradeService;
import com.bonus.canteen.core.pay.constants.AliPayTradeStatusEnum;
import com.bonus.canteen.core.pay.constants.PayStateEnum;
import com.bonus.canteen.core.pay.constants.PayTypeEnum;
import com.bonus.canteen.core.pay.util.AlipayConfig;
@ -97,7 +98,8 @@ public class PayController {
// 根据结果处理充值记录成功的话存入钱包
String trade_status = response.getTradeStatus();
String third_trade_no = response.getTradeNo();
if ("TRADE_FINISHED".equals(trade_status) || "TRADE_SUCCESS".equals(trade_status)) {
if (AliPayTradeStatusEnum.TRADE_STATUS_FINISHED.getKey().equals(trade_status) ||
AliPayTradeStatusEnum.TRADE_STATUS_SUCCESS.getKey().equals(trade_status)) {
AccTradeVo updateTrade = new AccTradeVo();
updateTrade.setOrderNo(accTradeVo.getOrderNo());
updateTrade.setThirdTradeNo(third_trade_no);