diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java index 2ce26bd..f4afffd 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/DYPayStrategy.java @@ -50,8 +50,6 @@ public class DYPayStrategy extends AbstractPayStrategy{ private static DypayConfigMapper dypayConfigMapper; - private final static String failThirdCode = "-1"; - @Autowired public void setBean(DYPayUtil dyPayUtil, PayInfoService payInfoService, DypayConfigMapper dypayConfigMapper) { @@ -81,6 +79,8 @@ public class DYPayStrategy extends AbstractPayStrategy{ String backurl = dypayConfig.getBackurl(); String salt = dypayConfig.getSalt(); String requestStr = ""; + ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); + thirdUnifiedOrderVo.setAppId(appId); try { //加签验签的参数需要排序 Map params = new TreeMap<>(); @@ -122,28 +122,16 @@ public class DYPayStrategy extends AbstractPayStrategy{ result = dyPayManager.postRequest(requestStr, DYPayConstants.CREATE_ORDER); } catch (PayException e) { log.error("抖音支付:支付异常,payId:{},error{}", bo.getPayId(), e.getMessage()); - throw new ServiceException(ResponseEnum.PAY_FAILS); + thirdUnifiedOrderVo.setThirdCode(e.getErrCode()); + thirdUnifiedOrderVo.setThirdMsg(StringUtils.isNoneBlank(e.getErrCodeDes())?e.getErrCodeDes():e.getCustomErrorMsg()); + return thirdUnifiedOrderVo; } log.info("=================================="); log.info("抖音预下单result{}", result); log.info("=================================="); - ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); - thirdUnifiedOrderVo.setAppId(appId); - if (StringUtils.isBlank(result) || !result.startsWith("{")){ - log.error("抖音支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), "第三方返回格式有误!"); - thirdUnifiedOrderVo.setThirdCode(failThirdCode); - thirdUnifiedOrderVo.setThirdMsg("第三方返回格式有误!"); - return thirdUnifiedOrderVo; - } JSONObject jsonObject = JSONObject.parseObject(result); String errNo = jsonObject.getString("err_no"); String errorMsg = jsonObject.getString("error_msg"); - if (!"0".equals(errNo)) { - log.error("抖音支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(),errorMsg ); - thirdUnifiedOrderVo.setThirdCode(errNo); - thirdUnifiedOrderVo.setThirdMsg(errorMsg); - return thirdUnifiedOrderVo; - } JSONObject data = jsonObject.getJSONObject("data"); String orderId = data.getString("order_id"); String orderToken = data.getString("order_token"); @@ -360,6 +348,7 @@ public class DYPayStrategy extends AbstractPayStrategy{ log.info("抖音支付:抖音订单推送接口调用成功,request:{},result:{}",requestStr,resultStr); }catch (PayException e){ log.error("抖音支付:抖音订单推送接口调用异常,request:{},error{}", requestStr, e.getMessage()); + throw new ServiceException(e.getErrCodeDes()); } } diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java index 737a1b3..483c6e6 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/KSPayStrategy.java @@ -22,6 +22,7 @@ import com.bnyer.pay.bean.vo.ThirdUnifiedOrderVo; import com.bnyer.pay.constant.KSPayConstants; import com.bnyer.pay.enums.EnumPayChannel; import com.bnyer.pay.enums.EnumPayConfigStatus; +import com.bnyer.pay.exception.PayException; import com.bnyer.pay.manager.KsPayManager; import com.bnyer.pay.mapper.KspayConfigMapper; import com.bnyer.pay.service.PayInfoService; @@ -53,8 +54,6 @@ public class KSPayStrategy extends AbstractPayStrategy{ private static KspayConfigMapper kspayConfigMapper; - private final static String failThirdCode = "-1"; - @Autowired public void setBean(KSPayUtil ksPayUtil, PayInfoService payInfoService, KspayConfigMapper kspayConfigMapper) { @@ -84,6 +83,8 @@ public class KSPayStrategy extends AbstractPayStrategy{ String appId = kspayConfig.getAppid(); String backurl = kspayConfig.getBackurl(); String secret = kspayConfig.getSecret(); + ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); + thirdUnifiedOrderVo.setAppId(appId); try { //加签验签的参数需要排序 Map params = new TreeMap<>(); @@ -126,16 +127,10 @@ public class KSPayStrategy extends AbstractPayStrategy{ log.info("=================================="); log.info("快手预下单result{}", result); log.info("=================================="); - } catch (Exception e) { - log.error("快手支付:支付异常,payId:{},error{}", bo.getPayId(), e.getMessage()); - throw new ServiceException(ResponseEnum.PAY_FAILS); - } - ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); - thirdUnifiedOrderVo.setAppId(appId); - if (StringUtils.isBlank(result) || !result.startsWith("{")){ - log.error("快手支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), "第三方返回格式有误!"); - thirdUnifiedOrderVo.setThirdCode(failThirdCode); - thirdUnifiedOrderVo.setThirdMsg("第三方返回格式有误!"); + } catch (PayException e) { + log.error("快手支付:支付异常,payId:{},error{}", bo.getPayId(), e); + thirdUnifiedOrderVo.setThirdCode(e.getErrCode()); + thirdUnifiedOrderVo.setThirdMsg(StringUtils.isNoneBlank(e.getErrCodeDes())?e.getErrCodeDes():e.getCustomErrorMsg()); return thirdUnifiedOrderVo; } log.info("=================================="); @@ -144,12 +139,6 @@ public class KSPayStrategy extends AbstractPayStrategy{ JSONObject jsonObject = JSONObject.parseObject(result); String resultCode = jsonObject.getString("result"); String errorMsg = jsonObject.getString("error_msg"); - if (!"1".equals(resultCode)) { - log.error("快手支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(),errorMsg); - thirdUnifiedOrderVo.setThirdCode(resultCode); - thirdUnifiedOrderVo.setThirdMsg(errorMsg); - return thirdUnifiedOrderVo; - } JSONObject data = jsonObject.getJSONObject("order_info"); String orderNo = data.getString("order_no"); String orderToken = data.getString("order_info_token"); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/exception/PayException.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/exception/PayException.java index e1dafcf..ef5d7ea 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/exception/PayException.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/exception/PayException.java @@ -20,7 +20,7 @@ public class PayException extends Exception { /** * 错误代码. */ - private String errCode; + private String errCode = "-1"; /** * 错误代码描述. diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/listener/ThirdPayOrderPushConsumer.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/listener/ThirdPayOrderPushConsumer.java index f845eb4..3d8fb7f 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/listener/ThirdPayOrderPushConsumer.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/listener/ThirdPayOrderPushConsumer.java @@ -1,5 +1,6 @@ package com.bnyer.pay.listener; +import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.rocketmq.constant.RocketMqTopic; import com.bnyer.common.rocketmq.domain.BnyerMessage; @@ -30,14 +31,10 @@ public class ThirdPayOrderPushConsumer extends EnhanceMessageHandler implements @Override protected void handleMessage(BnyerMessage message) throws Exception { super.dispatchMessage(message); - try { - ThirdPayOrderPushMessage thirdPayOrderPushMessage = message.getObject(ThirdPayOrderPushMessage.class); - PushOrderDto pushOrderDto = new PushOrderDto(); - pushOrderDto.setPayId(thirdPayOrderPushMessage.getPayId()); - unifiedPayService.pushOrder(pushOrderDto); - } catch (ServiceException e) { - log.error("订单推送失败:"+e.getMessage()); - } + ThirdPayOrderPushMessage thirdPayOrderPushMessage = message.getObject(ThirdPayOrderPushMessage.class); + PushOrderDto pushOrderDto = new PushOrderDto(); + pushOrderDto.setPayId(thirdPayOrderPushMessage.getPayId()); + unifiedPayService.pushOrder(pushOrderDto); } @Override diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/DyPayManager.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/DyPayManager.java index 78bd64b..cfbb30c 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/DyPayManager.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/DyPayManager.java @@ -72,7 +72,7 @@ public class DyPayManager { requestStr = formEntity.getBody(); if (StringUtils.isBlank(resultStr) || !resultStr.startsWith("{")){ log.info("\n【请求地址】:{}\n【请求数据】:{}\n【响应数据】:{}", url, requestStr, resultStr); - throw convertDyException(GsonParser.parse("第三方返回格式有误!")); + throw new PayException("第三方返回格式有误!"); } JSONObject resultObj = JSONObject.parseObject(resultStr); String errNo = StringUtils.isNotBlank(resultObj.getString("err_no"))?resultObj.getString("err_no"):resultObj.getString("err_code"); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java index ef60a65..6a69a5b 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java @@ -361,7 +361,7 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { } if (Objects.isNull(payInfo)){ log.error("推送失败,订单信息不存在,pushOrderDto:{}",JSON.toJSONString(pushOrderDto)); - throw new ServiceException("订单信息不存在"); + throw new ServiceException(ResponseEnum.NOT_EXIST,"支付订单"); } EnumSceneCode enumSceneCode = EnumSceneCode.getSceneCodeByCode(payInfo.getSceneCode()); PushOrderBo pushOrderBo = null;