From 80dafbb830ed4f5bc38037fc4c4e574eb5f55629 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 25 Dec 2023 10:35:26 +0800
Subject: [PATCH] 富文本框输入版本变化
---
src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java | 120 +++++++++++++++++++++++++++++++++---------------------------
1 files changed, 66 insertions(+), 54 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java
index f5980d6..8eca37e 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java
@@ -49,8 +49,10 @@
private final AgentProducer agentProducer;
private final WxPayService wxPayService;
private static final String PAY_SUCCESS = "SUCCESS";
+ private static final String PAY_WAITING = "等待用户输入密码";
private static final String PAY_USERPAYING = "USERPAYING";
private static final String PAY_FAIL = "FAIL";
+ private static final String TRADE_TYPE = "MICROPAY";
@Override
public String pay(MallOrderInfo mallOrderInfo) {
@@ -118,65 +120,75 @@
e.printStackTrace();
throw new FebsException("签名异常");
}
+ WxPayMicropayResult micropay = null;
+ String errCode = null;
+ String errCodeDes = null;
try {
- WxPayMicropayResult micropay = wxPayService.micropay(request);
- String returnCode = micropay.getReturnCode();
- String resultCode = micropay.getResultCode();
- String errCode = micropay.getErrCode();
- String outTradeNo = micropay.getOutTradeNo();
- String errCodeDes = micropay.getErrCodeDes();
- /**
- * 交易成功判断条件:return_code和result_code都为SUCCESS且trade_type为MICROPAY
- */
+ micropay = wxPayService.micropay(request);
- if(PAY_SUCCESS.equals(returnCode) && PAY_SUCCESS.equals(resultCode)){
- log.info("微信免密支付成功");
- MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(mallOrderInfo.getOrderNo());
- if(ObjectUtil.isNotEmpty(orderInfo)){
- if (OrderStatusEnum.FINISH.getValue() != orderInfo.getStatus()) {
- orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
- orderInfo.setPayResult(1);
- orderInfo.setPayTime(DateUtil.date());
- mallOrderInfoMapper.updateById(orderInfo);
- }
- }
- agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
- return PAY_SUCCESS;
- }
-// else if (PAY_USERPAYING.equals(errCode)){//等待用户输入密码
-// for(int i = 0; i < 4; i++){
-// try {
-// Thread.sleep(5000);
-// } catch (InterruptedException e) {
-// e.printStackTrace();
-// }
-// //调用微信的查询接口
-// /**
-// * 交易成功判断条件: return_code、result_code和trade_state都为SUCCESS
-// */
-// WxPayOrderQueryRequest wxPayOrderQueryRequest = new WxPayOrderQueryRequest();
-// wxPayOrderQueryRequest.setOutTradeNo(outTradeNo);
-// log.info("付款码支付订单查询");
-// WxPayOrderQueryResult wxPayOrderQueryResult = wxPayService.queryOrder(wxPayOrderQueryRequest);
-// String returnCodePaying = wxPayOrderQueryResult.getReturnCode();
-// String resultCodePaying = wxPayOrderQueryResult.getResultCode();
-// String tradeTypePaying = wxPayOrderQueryResult.getTradeType();
-// if(PAY_SUCCESS.equals(tradeTypePaying)&& PAY_SUCCESS.equals(returnCodePaying)&& PAY_SUCCESS.equals(tradeTypePaying)){
-// log.info("微信加密支付成功!");
-// agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
-// return PAY_SUCCESS;
-// }
-// log.info("正在支付" + wxPayOrderQueryResult.getDetail());
-// }
-// }
- else if(PAY_FAIL.equals(resultCode)){
- return errCodeDes;
- }
- return errCodeDes;
} catch (WxPayException e) {
e.printStackTrace();
- throw new FebsException(e.getErrCodeDes());
+ errCode = e.getErrCode();
+ errCodeDes = e.getErrCodeDes();
+// throw new FebsException(e.getErrCodeDes());
+ }finally {
+ if (PAY_USERPAYING.equals(errCode)){//等待用户输入密码
+ for(int i = 0; i < 5; i++){
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ String outTradeNo = mallOrderInfo.getOrderNo();
+ WxPayOrderQueryRequest wxPayOrderQueryRequest = new WxPayOrderQueryRequest();
+ wxPayOrderQueryRequest.setOutTradeNo(outTradeNo);
+ log.info("付款码支付订单查询");
+ WxPayOrderQueryResult wxPayOrderQueryResult = null;
+ try {
+ wxPayOrderQueryResult = wxPayService.queryOrder(wxPayOrderQueryRequest);
+ } catch (WxPayException e) {
+ e.printStackTrace();
+ }
+ String returnCodePaying = wxPayOrderQueryResult.getReturnCode();
+ String tradeTypePaying = wxPayOrderQueryResult.getTradeType();
+ String resultCodePaying = wxPayOrderQueryResult.getResultCode();
+ String tradeStateDesc = wxPayOrderQueryResult.getTradeStateDesc();
+ /**
+ * 交易成功判断条件:return_code和result_code都为SUCCESS且trade_type为MICROPAY
+ */
+ if(PAY_SUCCESS.equals(resultCodePaying)&& PAY_SUCCESS.equals(returnCodePaying)&& TRADE_TYPE.equals(tradeTypePaying)){
+ log.info("微信加密支付成功!");
+ agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
+ return tradeStateDesc;
+ }
+ }
+ }
}
+ if(ObjectUtil.isEmpty(micropay)){
+ return errCodeDes;
+ }
+ String returnCode = micropay.getReturnCode();
+ String resultCode = micropay.getResultCode();
+ String outTradeNo = micropay.getOutTradeNo();
+
+ if(PAY_SUCCESS.equals(returnCode) && PAY_SUCCESS.equals(resultCode)){
+ log.info("微信免密支付成功");
+ MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(mallOrderInfo.getOrderNo());
+ if(ObjectUtil.isNotEmpty(orderInfo)){
+ if (OrderStatusEnum.FINISH.getValue() != orderInfo.getStatus()) {
+ orderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
+ orderInfo.setPayResult(1);
+ orderInfo.setPayTime(DateUtil.date());
+ mallOrderInfoMapper.updateById(orderInfo);
+ }
+ }
+ agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo);
+ return PAY_SUCCESS;
+ } else if(PAY_FAIL.equals(resultCode)){
+ return errCodeDes;
+ }
+ return errCodeDes;
}
@Override
--
Gitblit v1.9.1