Compare commits
2 Commits
copilot/up
...
copilot/fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f04efb8c21 | ||
|
|
d424a9791c |
@@ -45,6 +45,58 @@ public class WxPayCodepayRequest implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@SerializedName(value = "mchid")
|
@SerializedName(value = "mchid")
|
||||||
protected String mchid;
|
protected String mchid;
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 字段名:服务商应用ID
|
||||||
|
* 变量名:sp_appid
|
||||||
|
* 是否必填:否
|
||||||
|
* 类型:string[1,32]
|
||||||
|
* 描述:
|
||||||
|
* 服务商模式下使用,由微信生成的应用ID,全局唯一。
|
||||||
|
* 示例值:wxd678efh567hg6787
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@SerializedName(value = "sp_appid")
|
||||||
|
protected String spAppid;
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 字段名:服务商商户号
|
||||||
|
* 变量名:sp_mchid
|
||||||
|
* 是否必填:否
|
||||||
|
* 类型:string[1,32]
|
||||||
|
* 描述:
|
||||||
|
* 服务商模式下使用,服务商商户号,由微信支付生成并下发。
|
||||||
|
* 示例值:1230000109
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@SerializedName(value = "sp_mchid")
|
||||||
|
protected String spMchid;
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 字段名:子商户应用ID
|
||||||
|
* 变量名:sub_appid
|
||||||
|
* 是否必填:否
|
||||||
|
* 类型:string[1,32]
|
||||||
|
* 描述:
|
||||||
|
* 服务商模式下使用,由微信生成的应用ID,全局唯一。
|
||||||
|
* 示例值:wxd678efh567hg6787
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@SerializedName(value = "sub_appid")
|
||||||
|
protected String subAppid;
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 字段名:子商户商户号
|
||||||
|
* 变量名:sub_mchid
|
||||||
|
* 是否必填:否
|
||||||
|
* 类型:string[1,32]
|
||||||
|
* 描述:
|
||||||
|
* 服务商模式下使用,子商户商户号,由微信支付生成并下发。
|
||||||
|
* 示例值:1230000109
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
@SerializedName(value = "sub_mchid")
|
||||||
|
protected String subMchid;
|
||||||
/**
|
/**
|
||||||
* <pre>
|
* <pre>
|
||||||
* 字段名:商品描述
|
* 字段名:商品描述
|
||||||
|
|||||||
@@ -1146,15 +1146,40 @@ public abstract class BaseWxPayServiceImpl implements WxPayService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxPayCodepayResult codepay(WxPayCodepayRequest request) throws WxPayException {
|
public WxPayCodepayResult codepay(WxPayCodepayRequest request) throws WxPayException {
|
||||||
if (StringUtils.isBlank(request.getAppid())) {
|
// 判断是否为服务商模式:如果设置了sp_appid或sp_mchid或sub_mchid中的任何一个,则认为是服务商模式
|
||||||
request.setAppid(this.getConfig().getAppId());
|
boolean isPartnerMode = StringUtils.isNotBlank(request.getSpAppid())
|
||||||
|
|| StringUtils.isNotBlank(request.getSpMchid())
|
||||||
|
|| StringUtils.isNotBlank(request.getSubMchid());
|
||||||
|
|
||||||
|
if (isPartnerMode) {
|
||||||
|
// 服务商模式
|
||||||
|
if (StringUtils.isBlank(request.getSpAppid())) {
|
||||||
|
request.setSpAppid(this.getConfig().getAppId());
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(request.getSpMchid())) {
|
||||||
|
request.setSpMchid(this.getConfig().getMchId());
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(request.getSubAppid())) {
|
||||||
|
request.setSubAppid(this.getConfig().getSubAppId());
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(request.getSubMchid())) {
|
||||||
|
request.setSubMchid(this.getConfig().getSubMchId());
|
||||||
|
}
|
||||||
|
String url = String.format("%s/v3/pay/partner/transactions/codepay", this.getPayBaseUrl());
|
||||||
|
String body = this.postV3WithWechatpaySerial(url, GSON.toJson(request));
|
||||||
|
return GSON.fromJson(body, WxPayCodepayResult.class);
|
||||||
|
} else {
|
||||||
|
// 直连商户模式
|
||||||
|
if (StringUtils.isBlank(request.getAppid())) {
|
||||||
|
request.setAppid(this.getConfig().getAppId());
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(request.getMchid())) {
|
||||||
|
request.setMchid(this.getConfig().getMchId());
|
||||||
|
}
|
||||||
|
String url = String.format("%s/v3/pay/transactions/codepay", this.getPayBaseUrl());
|
||||||
|
String body = this.postV3WithWechatpaySerial(url, GSON.toJson(request));
|
||||||
|
return GSON.fromJson(body, WxPayCodepayResult.class);
|
||||||
}
|
}
|
||||||
if (StringUtils.isBlank(request.getMchid())) {
|
|
||||||
request.setMchid(this.getConfig().getMchId());
|
|
||||||
}
|
|
||||||
String url = String.format("%s/v3/pay/transactions/codepay", this.getPayBaseUrl());
|
|
||||||
String body = this.postV3WithWechatpaySerial(url, GSON.toJson(request));
|
|
||||||
return GSON.fromJson(body, WxPayCodepayResult.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user