|
|
@ -8,6 +8,7 @@ import com.bnyer.common.core.enums.ResponseEnum; |
|
|
import com.bnyer.common.core.exception.ServiceException; |
|
|
import com.bnyer.common.core.exception.ServiceException; |
|
|
import com.bnyer.common.core.utils.StringUtils; |
|
|
import com.bnyer.common.core.utils.StringUtils; |
|
|
import com.bnyer.pay.bo.QueryOrderBo; |
|
|
import com.bnyer.pay.bo.QueryOrderBo; |
|
|
|
|
|
import com.bnyer.pay.bo.RefundBo; |
|
|
import com.bnyer.pay.bo.UnifiedOrderBo; |
|
|
import com.bnyer.pay.bo.UnifiedOrderBo; |
|
|
import com.bnyer.pay.dto.EditPayInfoNotifyDto; |
|
|
import com.bnyer.pay.dto.EditPayInfoNotifyDto; |
|
|
import com.bnyer.pay.dto.PayNotifyCheckDto; |
|
|
import com.bnyer.pay.dto.PayNotifyCheckDto; |
|
|
@ -17,7 +18,8 @@ import com.bnyer.pay.enums.EnumWxPayStatus; |
|
|
import com.bnyer.pay.manager.WxPayManager; |
|
|
import com.bnyer.pay.manager.WxPayManager; |
|
|
import com.bnyer.pay.service.PayInfoService; |
|
|
import com.bnyer.pay.service.PayInfoService; |
|
|
import com.bnyer.pay.utils.WXPayUtil; |
|
|
import com.bnyer.pay.utils.WXPayUtil; |
|
|
import com.bnyer.pay.vo.ThirdInOrderVo; |
|
|
import com.bnyer.pay.vo.ThirdRefundVo; |
|
|
|
|
|
import com.bnyer.pay.vo.ThirdUnifiedOrderVo; |
|
|
import com.bnyer.pay.vo.ThirdQueryOrderVo; |
|
|
import com.bnyer.pay.vo.ThirdQueryOrderVo; |
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; |
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; |
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result; |
|
|
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result; |
|
|
@ -56,20 +58,20 @@ public class WxPayStrategy extends AbstractPayStrategy { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public ThirdInOrderVo unifiedOrder(UnifiedOrderBo bo) { |
|
|
public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { |
|
|
log.info("微信支付:统一下单接口调用开始,WxPayStrategy.unifiedOrder bo:{}",JSON.toJSONString(bo)); |
|
|
log.info("微信支付:统一下单接口调用开始,WxPayStrategy.unifiedOrder bo:{}",JSON.toJSONString(bo)); |
|
|
ThirdInOrderVo thirdInOrderVo = null; |
|
|
ThirdUnifiedOrderVo thirdUnifiedOrderVo = null; |
|
|
EnumTradeType payByTradeType = EnumTradeType.getPayByTradeType(bo.getTradeType()); |
|
|
EnumTradeType payByTradeType = EnumTradeType.getPayByTradeType(bo.getTradeType()); |
|
|
switch (payByTradeType){ |
|
|
switch (payByTradeType){ |
|
|
case JSAPI_MINI: |
|
|
case JSAPI_MINI: |
|
|
thirdInOrderVo = jsApiPay(bo); |
|
|
thirdUnifiedOrderVo = jsApiPay(bo); |
|
|
break; |
|
|
break; |
|
|
case JSAPI_PUBLIC: |
|
|
case JSAPI_PUBLIC: |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
default: |
|
|
throw new ServiceException("TradeType未匹配上对应支付方式"); |
|
|
throw new ServiceException("TradeType未匹配上对应支付方式"); |
|
|
} |
|
|
} |
|
|
return thirdInOrderVo; |
|
|
return thirdUnifiedOrderVo; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
@ -77,7 +79,7 @@ public class WxPayStrategy extends AbstractPayStrategy { |
|
|
* @param bo |
|
|
* @param bo |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
private ThirdInOrderVo jsApiPay(UnifiedOrderBo bo) { |
|
|
private ThirdUnifiedOrderVo jsApiPay(UnifiedOrderBo bo) { |
|
|
WxpayConfig wxPayConfig = wxPayManager.getWxPayConfigByTradeType(bo.getTradeType()); |
|
|
WxpayConfig wxPayConfig = wxPayManager.getWxPayConfigByTradeType(bo.getTradeType()); |
|
|
WxPayService wxPayService = wxPayManager.getWxPayService(wxPayConfig); |
|
|
WxPayService wxPayService = wxPayManager.getWxPayService(wxPayConfig); |
|
|
String openId = SecurityContextHolder.getWechatOpenId(); |
|
|
String openId = SecurityContextHolder.getWechatOpenId(); |
|
|
@ -95,16 +97,16 @@ public class WxPayStrategy extends AbstractPayStrategy { |
|
|
WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.createOrderV3(TradeTypeEnum.JSAPI, orderRequest); |
|
|
WxPayUnifiedOrderV3Result wxPayUnifiedOrderV3Result = wxPayService.createOrderV3(TradeTypeEnum.JSAPI, orderRequest); |
|
|
WxPayUnifiedOrderV3Result.JsapiResult jsapiResult = wxPayUnifiedOrderV3Result.getPayInfo(TradeTypeEnum.JSAPI, wxPayConfig.getAppid(), wxPayConfig.getMchid(), wxPayService.getConfig().getPrivateKey()); |
|
|
WxPayUnifiedOrderV3Result.JsapiResult jsapiResult = wxPayUnifiedOrderV3Result.getPayInfo(TradeTypeEnum.JSAPI, wxPayConfig.getAppid(), wxPayConfig.getMchid(), wxPayService.getConfig().getPrivateKey()); |
|
|
//返回数据
|
|
|
//返回数据
|
|
|
ThirdInOrderVo thirdInOrderVo = new ThirdInOrderVo(); |
|
|
ThirdUnifiedOrderVo thirdUnifiedOrderVo = new ThirdUnifiedOrderVo(); |
|
|
thirdInOrderVo.setAppId(wxPayConfig.getAppid()); |
|
|
thirdUnifiedOrderVo.setAppId(wxPayConfig.getAppid()); |
|
|
ThirdInOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdInOrderVo.WxThirdInOrderVo(); |
|
|
ThirdUnifiedOrderVo.WxThirdInOrderVo wxThirdInOrderVo = new ThirdUnifiedOrderVo.WxThirdInOrderVo(); |
|
|
wxThirdInOrderVo.setPackageValue(jsapiResult.getPackageValue()); |
|
|
wxThirdInOrderVo.setPackageValue(jsapiResult.getPackageValue()); |
|
|
wxThirdInOrderVo.setTimeStamp(jsapiResult.getTimeStamp()); |
|
|
wxThirdInOrderVo.setTimeStamp(jsapiResult.getTimeStamp()); |
|
|
wxThirdInOrderVo.setNonceStr(jsapiResult.getNonceStr()); |
|
|
wxThirdInOrderVo.setNonceStr(jsapiResult.getNonceStr()); |
|
|
wxThirdInOrderVo.setPaySign(jsapiResult.getPaySign()); |
|
|
wxThirdInOrderVo.setPaySign(jsapiResult.getPaySign()); |
|
|
thirdInOrderVo.setOutOrderNo(bo.getPayId()); |
|
|
thirdUnifiedOrderVo.setOutOrderNo(bo.getPayId()); |
|
|
thirdInOrderVo.setAppId(jsapiResult.getAppId()); |
|
|
thirdUnifiedOrderVo.setAppId(jsapiResult.getAppId()); |
|
|
return thirdInOrderVo; |
|
|
return thirdUnifiedOrderVo; |
|
|
} catch (WxPayException e) { |
|
|
} catch (WxPayException e) { |
|
|
log.error("微信支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), e.getMessage()); |
|
|
log.error("微信支付:统一下单接口调用失败,payId:{},error{}", bo.getPayId(), e.getMessage()); |
|
|
throw new ServiceException(ResponseEnum.PAY_FAILS); |
|
|
throw new ServiceException(ResponseEnum.PAY_FAILS); |
|
|
@ -201,4 +203,9 @@ public class WxPayStrategy extends AbstractPayStrategy { |
|
|
throw new ServiceException(ResponseEnum.ORDER_QUERY_FAILS); |
|
|
throw new ServiceException(ResponseEnum.ORDER_QUERY_FAILS); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
public ThirdRefundVo refund(RefundBo bo) { |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|