Browse Source

微信支付下单调整完成

feature-1.1
wuxicheng 3 years ago
parent
commit
7b293cde78
  1. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/factory/PayFactory.java
  2. 10
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java
  3. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/UnifiedPayServiceImpl.java
  4. 2
      pom.xml

4
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){

10
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());

4
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<PayInfo>().eq(PayInfo::getOrderNo,dto.getOrderNo()));
if (Objects.nonNull(payInfo) && EnumPayStatus.SUCCESS.getStatus() == payInfo.getPayStatus()){
PayInfo payInfo = payInfoMapper.selectOne(new LambdaQueryWrapper<PayInfo>().eq(PayInfo::getOrderNo,dto.getOrderNo()).eq(PayInfo::getPayStatus,EnumPayStatus.SUCCESS.getStatus()));
if (Objects.nonNull(payInfo)){
throw new ServiceException(ResponseEnum.ORDER_REPEAT_PAY);
}
}

2
pom.xml

@ -44,7 +44,7 @@
<hutool.version>5.8.0.M3</hutool.version>
<redisson.version>3.16.2</redisson.version>
<aliPay.version>4.23.21.ALL</aliPay.version>
<wePay.version>4.4.0</wePay.version>
<wePay.version>4.5.0</wePay.version>
<qiniu.version>7.2.18</qiniu.version>
<rocketmq-springboot.version>2.2.2</rocketmq-springboot.version>
</properties>

Loading…
Cancel
Save