From 7b293cde78002625214ed22c1d94503bc08938d8 Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Fri, 12 May 2023 10:24:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98=E4=B8=8B?= =?UTF-8?q?=E5=8D=95=E8=B0=83=E6=95=B4=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bnyer/pay/design/factory/PayFactory.java | 4 ++-- .../com/bnyer/pay/design/strategy/WxPayStrategy.java | 10 ++++++++-- .../bnyer/pay/service/impl/UnifiedPayServiceImpl.java | 4 ++-- pom.xml | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/factory/PayFactory.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/factory/PayFactory.java index c9afe6c..7bd34cd 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/factory/PayFactory.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/factory/PayFactory.java @@ -27,11 +27,11 @@ public class PayFactory { } public static class SingletonHolder{ - public static PayFactory payStrategy = new PayFactory(); + public static PayFactory payFactory = new PayFactory(); } public static PayFactory getInstance(){ - return SingletonHolder.payStrategy; + return SingletonHolder.payFactory; } public IPayStrategy getConcreteStrategy(String payType){ diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java index f3a936c..71d0557 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java @@ -102,14 +102,18 @@ public class WxPayStrategy extends AbstractPayStrategy { amount.setTotal(BaseWxPayRequest.yuanToFen(bo.getPayAmount())); orderRequest.setAmount(amount); //调用微信支付接口 - WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.createOrderV3(TradeTypeEnum.JSAPI, orderRequest); + WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.unifiedOrderV3(TradeTypeEnum.JSAPI, orderRequest); WxPayUnifiedOrderV3Result.JsapiResult jsapiResult = wxPayUnifiedOrderV3Result.getPayInfo(TradeTypeEnum.JSAPI, wxPayConfig.getAppid(), wxPayConfig.getMchid(), wxPayService.getConfig().getPrivateKey()); - thirdUnifiedOrderVo.setAppId(wxPayConfig.getAppid()); ThirdUnifiedOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdUnifiedOrderVo.WxThirdInOrderVo(); + //微信返回信息封装 + wxThirdInOrderVo.setAppId(jsapiResult.getAppId()); wxThirdInOrderVo.setPackageValue(jsapiResult.getPackageValue()); wxThirdInOrderVo.setTimeStamp(jsapiResult.getTimeStamp()); wxThirdInOrderVo.setNonceStr(jsapiResult.getNonceStr()); wxThirdInOrderVo.setPaySign(jsapiResult.getPaySign()); + wxThirdInOrderVo.setSignType(jsapiResult.getSignType()); + + thirdUnifiedOrderVo.setAppId(wxPayConfig.getAppid()); thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId()); thirdUnifiedOrderVo.setAppId(jsapiResult.getAppId()); @@ -117,6 +121,8 @@ public class WxPayStrategy extends AbstractPayStrategy { thirdUnifiedOrderVo.setThirdCode("0"); thirdUnifiedOrderVo.setThirdMsg("ok"); thirdUnifiedOrderVo.setThirdNo(wxPayUnifiedOrderV3Result.getPrepayId()); + + thirdUnifiedOrderVo.setWxThirdInOrderVo(wxThirdInOrderVo); return thirdUnifiedOrderVo; } catch (WxPayException e) { log.error("微信支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), e.getMessage()); 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 9ca0618..de68f55 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 @@ -121,8 +121,8 @@ public class UnifiedPayServiceImpl implements UnifiedPayService { * @param dto */ private void checkData(UnifiedOrderDto dto) { - PayInfo payInfo = payInfoMapper.selectOne(new LambdaQueryWrapper().eq(PayInfo::getOrderNo,dto.getOrderNo())); - if (Objects.nonNull(payInfo) && EnumPayStatus.SUCCESS.getStatus() == payInfo.getPayStatus()){ + PayInfo payInfo = payInfoMapper.selectOne(new LambdaQueryWrapper().eq(PayInfo::getOrderNo,dto.getOrderNo()).eq(PayInfo::getPayStatus,EnumPayStatus.SUCCESS.getStatus())); + if (Objects.nonNull(payInfo)){ throw new ServiceException(ResponseEnum.ORDER_REPEAT_PAY); } } diff --git a/pom.xml b/pom.xml index 7b9dce0..0a3953b 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 5.8.0.M3 3.16.2 4.23.21.ALL - 4.4.0 + 4.5.0 7.2.18 2.2.2