处理 WxCpAgentWorkBench 代码冲突

Signed-off-by: 谈笑 <2300064869@qq.com>
This commit is contained in:
谈笑 2025-04-07 06:11:32 +00:00 committed by Gitee
commit b90f5624b9
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
7 changed files with 52 additions and 12 deletions

View File

@ -28,7 +28,7 @@ $ git push
* 定期使用项目仓库内容更新自己仓库内容。
```bash
$ git remote add upstream https://github.com/Wechat-Group/WxJava
$ git remote add upstream https://github.com/binarywang/WxJava
$ git fetch upstream
$ git checkout develop
$ git rebase upstream/develop

View File

@ -59,7 +59,7 @@ public class DefaultApacheHttpClientBuilder implements ApacheHttpClientBuilder {
* 设置为负数是使用系统默认设置(非3000ms的默认值,而是httpClient的默认设置).
* </p>
*/
private int connectionRequestTimeout = -1;
private int connectionRequestTimeout = 3000;
/**
* 建立链接的超时时间,默认为5000ms.由于是在链接池获取链接,此设置应该并不起什么作用

View File

@ -13,7 +13,6 @@ import me.chanjar.weixin.cp.constant.WxCpConsts;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
* The type Wx cp agent work bench.

View File

@ -250,6 +250,12 @@ public class WxPayUnifiedOrderV3Request implements Serializable {
*/
@SerializedName(value = "openid")
private String openid;
/**
* 实名支付用户身份标识
*/
@SerializedName(value = "identity")
private Identity identity;
}
@Data
@ -572,4 +578,36 @@ public class WxPayUnifiedOrderV3Request implements Serializable {
@SerializedName(value = "profit_sharing")
private Boolean profitSharing;
}
@Data
@NoArgsConstructor
public static class Identity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 证件类型
* IDCARD:身份证
* HONGKONG_MACAO:港澳回乡证
* HONGKONG_MACAO_RESIDENT:港澳居住证
* TAIWAN_RESIDENT:台湾居住证
* FOREIGN_RESIDENT:外国人永居证
* OVERSEA_PASSPORT:护照
*/
@SerializedName(value = "type")
private String type;
/**
* 证件号
* 证件号如身份证号
* 示例值43102119910910512X
*/
@SerializedName(value = "number")
private String number;
/**
* 证件姓名
* 示例值周星星
*/
@SerializedName(value = "name")
private String name;
}
}

View File

@ -347,10 +347,14 @@ public class WxPayConfig {
}
private Verifier getVerifier(PrivateKey merchantPrivateKey, WxPayHttpProxy wxPayHttpProxy, PublicKey publicKey) {
Verifier certificatesVerifier = new AutoUpdateCertificatesVerifier(
Verifier certificatesVerifier = null;
// 如果配置了平台证书则初始化验证器以备v2版本接口验签公钥灰度实现
if (this.getPrivateCertPath() != null && this.getPrivateKeyPath() != null) {
certificatesVerifier = new AutoUpdateCertificatesVerifier(
new WxPayCredentials(mchId, new PrivateKeySigner(certSerialNo, merchantPrivateKey)),
this.getApiV3Key().getBytes(StandardCharsets.UTF_8), this.getCertAutoUpdateTime(),
this.getPayBaseUrl(), wxPayHttpProxy);
}
if (publicKey != null) {
Verifier publicCertificatesVerifier = new PublicCertificateVerifier(publicKey, publicKeyId);
publicCertificatesVerifier.setOtherVerifier(certificatesVerifier);

View File

@ -323,14 +323,13 @@ public abstract class BaseWxPayServiceImpl implements WxPayService {
log.debug("微信支付异步通知请求参数:{}", xmlData);
WxPayOrderNotifyResult result = WxPayOrderNotifyResult.fromXML(xmlData);
if (signType == null) {
String configKey = this.getConfigKey(result.getMchId(), result.getAppid());
this.switchover(result.getMchId(), result.getAppid());
if (result.getSignType() != null) {
// 如果解析的通知对象中signType有值则使用它进行验签
signType = result.getSignType();
} else if (configMap.get(configKey).getSignType() != null) {
} else if (this.getConfig().getSignType() != null) {
// 如果配置中signType有值则使用它进行验签
signType = configMap.get(configKey).getSignType();
this.switchover(result.getMchId(), result.getAppid());
signType = this.getConfig().getSignType();
}
}

View File

@ -24,7 +24,7 @@ public class PublicCertificateVerifier implements Verifier{
@Override
public boolean verify(String serialNumber, byte[] message, String signature) {
if (!serialNumber.contains("PUB_KEY_ID")) {
if (!serialNumber.contains("PUB_KEY_ID") && this.certificateVerifier != null) {
return this.certificateVerifier.verify(serialNumber, message, signature);
}
try {