From 5107322ee9d80cced9252b7991471ded468013eb Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 17 Aug 2025 16:35:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E3=80=90pay=20=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E3=80=91=E5=85=BC=E5=AE=B9=E5=BE=AE=E4=BF=A1=E6=94=AF=E4=BB=98?= =?UTF-8?q?=20V3=20=E5=8F=AF=E8=83=BD=20header=20=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99=E5=A4=9A=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/impl/weixin/AbstractWxPayClient.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java index 5f38b1ac5d..a06f86b150 100644 --- a/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java +++ b/yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java @@ -541,14 +541,23 @@ public abstract class AbstractWxPayClient extends AbstractPayClient官方示例 */ private SignatureHeader getRequestHeader(Map headers) { + // 参见 https://gitee.com/zhijiantianya/yudao-cloud/issues/ICSFL6 return SignatureHeader.builder() - .signature(headers.get("wechatpay-signature")) - .nonce(headers.get("wechatpay-nonce")) - .serial(headers.get("wechatpay-serial")) - .timeStamp(headers.get("wechatpay-timestamp")) + .signature(getHeaderValue(headers, "Wechatpay-Signature", "wechatpay-signature")) + .nonce(getHeaderValue(headers, "Wechatpay-Nonce", "wechatpay-nonce")) + .serial(getHeaderValue(headers, "Wechatpay-Serial", "wechatpay-serial")) + .timeStamp(getHeaderValue(headers, "Wechatpay-Timestamp", "wechatpay-timestamp")) .build(); } + private String getHeaderValue(Map headers, String capitalizedKey, String lowercaseKey) { + String value = headers.get(capitalizedKey); + if (value != null) { + return value; + } + return headers.get(lowercaseKey); + } + // TODO @芋艿:可能是 wxjava 的 bug:https://github.com/binarywang/WxJava/issues/1557 private void fixV3HttpClientConnectionPoolShutDown() { client.getConfig().setApiV3HttpClient(null);