fix 微信服务商v2订单支付接口

This commit is contained in:
DaxPay
2025-01-15 16:37:34 +08:00
parent 0cf963a9b6
commit c6dd592a88
2 changed files with 10 additions and 4 deletions

View File

@@ -18,7 +18,7 @@ public class WechatPayParam {
private String openId;
/**
* 服务商模式下分为 1、sp用户服务标识 2、sub用户子标识
* 服务商模式下分为 sp. 用户服务标识 sub. 用户子标识
* @see org.dromara.daxpay.channel.wechat.code.WechatPayCode#SP_OPENID
*/
@Schema(description = "openid类型")

View File

@@ -2,6 +2,7 @@ package org.dromara.daxpay.channel.wechat.service.pay.isv;
import cn.bootx.platform.common.spring.exception.RetryableException;
import cn.bootx.platform.core.util.JsonUtil;
import org.dromara.daxpay.channel.wechat.code.WechatPayCode;
import org.dromara.daxpay.channel.wechat.entity.config.WechatPayConfig;
import org.dromara.daxpay.channel.wechat.param.pay.WechatPayParam;
import org.dromara.daxpay.channel.wechat.service.config.WechatPayConfigService;
@@ -69,7 +70,7 @@ public class WechatPaySubV2Service {
}
// 微信公众号支付或者小程序支付
else if (payMethodEnum == PayMethodEnum.JSAPI) {
payBody = this.jsPay(payOrder, wechatPayParam.getOpenId(), config);
payBody = this.jsPay(payOrder, wechatPayParam, config);
}
// 二维码支付
else if (payMethodEnum == PayMethodEnum.QRCODE) {
@@ -121,10 +122,15 @@ public class WechatPaySubV2Service {
/**
* 微信公众号支付或者小程序支付
*/
private String jsPay(PayOrder payOrder, String openId, WechatPayConfig wechatPayConfig) {
private String jsPay(PayOrder payOrder, WechatPayParam wechatPayParam, WechatPayConfig wechatPayConfig) {
WxPayService wxPayService = wechatPayConfigService.wxJavaSdk(wechatPayConfig);
WxPayUnifiedOrderRequest request = this.buildRequest(payOrder, wechatPayConfig);
request.setOpenid(openId);
if (Objects.equals(wechatPayParam.getOpenIdType(), WechatPayCode.SUB_OPENID)){
request.setSubOpenid(wechatPayParam.getOpenId());
} else {
request.setOpenid(wechatPayParam.getOpenId());
}
try {
var result = wxPayService.createOrder(WxPayConstants.TradeType.Specific.JSAPI, request);
Map<String, String> map = this.buildJsapiResult(result);