diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/constants/AliPayTradeStatusEnum.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/constants/AliPayTradeStatusEnum.java new file mode 100644 index 0000000..ef5cefa --- /dev/null +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/constants/AliPayTradeStatusEnum.java @@ -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; + } + +} diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java index 04cc503..3cacdea 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/NotifyCotroller.java @@ -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,并执行商户的业务程序 //如果做过处理,不执行商户的业务程序 diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java index d16b29a..9fdcd0e 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/pay/controller/PayController.java @@ -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);