8000 :bug: #2246 【微信支付】修复微信支付V3签名/验签的换行符错误问题 · binarywang/WxJava@60c9df4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 60c9df4

Browse files
authored
🐛 #2246 【微信支付】修复微信支付V3签名/验签的换行符错误问题
参考微信支付文档: https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_4.shtml https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay4_0.shtml 签名时使用的换行符必须是\n,因此不应使用%n,这会导致windows平台下签名错误
1 parent 2b92b6f commit 60c9df4

File tree

4 files changed

+4
-4
lines changed

4 files changed

+4
-4
lines changed

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public static class JsapiResult implements Serializable {
8383
private String paySign;
8484

8585
private String getSignStr() {
86-
return String.format("%s%n%s%n%s%n%s%n", appId, timeStamp, nonceStr, packageValue);
86+
return String.format("%s\n%s\n%s\n%s\n", appId, timeStamp, nonceStr, packageValue);
8787
}
8888
}
8989

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BusinessCircleServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void notifyPoints(PointsNotifyRequest request) throws WxPayException {
4646
* @return true:校验通过 false:校验不通过
4747
*/
4848
private boolean verifyNotifySign(SignatureHeader header, String data) {
49-
String beforeSign = String.format("%s%n%s%n%s%n", header.getTimeStamp(), header.getNonce(), data);
49+
String beforeSign = String.format("%s\n%s\n%s\n", header.getTimeStamp(), header.getNonce(), data);
5050
return payService.getConfig().getVerifier().verify(header.getSerialNo(),
5151
beforeSign.getBytes(StandardCharsets.UTF_8), header.getSigned());
5252
}

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/MarketingFavorServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public FavorStocksStartResult restartFavorStocksV3(String stockId, FavorStocksSe
177177
* @return true:校验通过 false:校验不通过
178178
*/
179179
private boolean verifyNotifySign(SignatureHeader header, String data) {
180-
String beforeSign = String.format("%s%n%s%n%s%n", header.getTimeStamp(), header.getNonce(), data);
180+
String beforeSign = String.format("%s\n%s\n%s\n", header.getTimeStamp(), header.getNonce(), data);
181181
return payService.getConfig().getVerifier().verify(header.getSerialNo(),
182182
beforeSign.getBytes(StandardCharsets.UTF_8), header.getSigned());
183183
}

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/PayScoreServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public WxPayScoreResult decryptNotifyDataResource(PayScoreNotifyData data) throw
303303
* @return true:校验通过 false:校验不通过
304304
*/
305305
private boolean verifyNotifySign(SignatureHeader header, String data) {
306-
String beforeSign = String.format("%s%n%s%n%s%n", header.getTimeStamp(), header.getNonce(), data);
306+
String beforeSign = String.format("%s\n%s\n%s\n", header.getTimeStamp(), header.getNonce(), data);
307307
return payService.getConfig().getVerifier().verify(header.getSerialNo(),
308308
beforeSign.getBytes(StandardCharsets.UTF_8), header.getSigned());
309309
}

0 commit comments

Comments
 (0)
0