Commit 5107322ee9d80cced9252b7991471ded468013eb
1 parent
fd6ca746
fix:【pay 支付】兼容微信支付 V3 可能 header 大小写多情况
Showing
1 changed file
with
13 additions
and
4 deletions
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<WxPayClientC |
| 541 | 541 | * @see <a href="https://github.com/binarywang/weixin-java-pay-demo/blob/master/src/main/java/com/github/binarywang/demo/wx/pay/controller/WxPayV3Controller.java#L202-L221">官方示例</a> |
| 542 | 542 | */ |
| 543 | 543 | private SignatureHeader getRequestHeader(Map<String, String> headers) { |
| 544 | + // 参见 https://gitee.com/zhijiantianya/yudao-cloud/issues/ICSFL6 | |
| 544 | 545 | return SignatureHeader.builder() |
| 545 | - .signature(headers.get("wechatpay-signature")) | |
| 546 | - .nonce(headers.get("wechatpay-nonce")) | |
| 547 | - .serial(headers.get("wechatpay-serial")) | |
| 548 | - .timeStamp(headers.get("wechatpay-timestamp")) | |
| 546 | + .signature(getHeaderValue(headers, "Wechatpay-Signature", "wechatpay-signature")) | |
| 547 | + .nonce(getHeaderValue(headers, "Wechatpay-Nonce", "wechatpay-nonce")) | |
| 548 | + .serial(getHeaderValue(headers, "Wechatpay-Serial", "wechatpay-serial")) | |
| 549 | + .timeStamp(getHeaderValue(headers, "Wechatpay-Timestamp", "wechatpay-timestamp")) | |
| 549 | 550 | .build(); |
| 550 | 551 | } |
| 551 | 552 | |
| 553 | + private String getHeaderValue(Map<String, String> headers, String capitalizedKey, String lowercaseKey) { | |
| 554 | + String value = headers.get(capitalizedKey); | |
| 555 | + if (value != null) { | |
| 556 | + return value; | |
| 557 | + } | |
| 558 | + return headers.get(lowercaseKey); | |
| 559 | + } | |
| 560 | + | |
| 552 | 561 | // TODO @芋艿:可能是 wxjava 的 bug:https://github.com/binarywang/WxJava/issues/1557 |
| 553 | 562 | private void fixV3HttpClientConnectionPoolShutDown() { |
| 554 | 563 | client.getConfig().setApiV3HttpClient(null); | ... | ... |