diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java index 9b1c573..98c3058 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/SignatureProvider.java @@ -186,10 +186,7 @@ public class SignatureProvider { * @return the boolean */ public boolean responseSignVerify(ResponseSignVerifyParams params) { - - log.debug("responseSignVerify: {}", params); log.debug("wechatpaySerial: {}", params.getWechatpaySerial()); - boolean verifyResult= params.getWechatpaySerial().startsWith(PUBLIC_KYE_ID_PREFIX)? responseSignVerifyWithWeChatPublicKeyInfo(params): responseSignVerifyWithX509WechatCertificate(params); @@ -197,10 +194,12 @@ public class SignatureProvider { return verifyResult; } + /*** + *通过平台证书进行验签 + */ private boolean responseSignVerifyWithX509WechatCertificate(ResponseSignVerifyParams params){ log.debug("responseSignVerifyWithX509WechatCertificate: {}", params); String wechatpaySerial = params.getWechatpaySerial(); - X509WechatCertificateInfo certificate = CERTIFICATE_SET.stream() .filter(cert -> Objects.equals(wechatpaySerial, cert.getWechatPaySerial())) .findAny() @@ -223,13 +222,12 @@ public class SignatureProvider { } } + /*** + *通过微信支付公钥进行验签 + */ private boolean responseSignVerifyWithWeChatPublicKeyInfo(ResponseSignVerifyParams params){ log.debug("responseSignVerifyWithWeChatPublicKeyInfo: {}", params); - String wechatpaySerial = params.getWechatpaySerial(); - - log.debug("wechatpaySerial: {}", wechatpaySerial); - if (wechatpaySerial.startsWith(PUBLIC_KYE_ID_PREFIX)){ WeChatPublicKeyInfo info = PUBLIC_KEY_SET.stream() .filter(key -> Objects.equals(wechatpaySerial, key.getPublicKeyId())) diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WeChatPublicKeyInfo.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WeChatPublicKeyInfo.java index 128038d..73b347e 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WeChatPublicKeyInfo.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WeChatPublicKeyInfo.java @@ -14,11 +14,9 @@ public class WeChatPublicKeyInfo { private String tenantId; public WeChatPublicKeyInfo(RSAPublicKey publicKey, String publicKeyId, String tenantId) { - this.publicKeyId = publicKeyId; this.tenantId = tenantId; this.publicKey = publicKey; - } public WeChatPublicKeyInfo() { diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java index fb53076..2c4cbdc 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatDirectPayApi.java @@ -56,6 +56,12 @@ public class WechatDirectPayApi extends AbstractApi { super(wechatPayClient, tenantId); } + /** + * 付款码支付API + * + * @param payParams the pay params + * @return the wechat response entity + */ public WechatResponseEntity codePay(PayParams payParams) { WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); this.client().withType(WechatPayV3Type.CODE, payParams) diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java index 1bc3f90..61212d6 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatPayClient.java @@ -224,8 +224,6 @@ public class WechatPayClient { String tenantId = Objects.requireNonNull(headers.get("Pay-TenantId")).get(0); String authorization = signatureProvider.requestSign(tenantId, httpMethod.name(), canonicalUrl, body); - - HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.addAll(headers); httpHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));