From d7a56076c890686ac533b5cf72035ecba7942a61 Mon Sep 17 00:00:00 2001 From: Gadfly Date: Mon, 9 Aug 2021 14:28:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:bug:=20=EF=BC=88=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=80=A7=E8=AD=A6=E5=91=8A=EF=BC=89#2216=20=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=94=AF=E4=BB=98=20APP=E7=BB=9F=E4=B8=80=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3v3=EF=BC=8C=E7=BC=BA=E5=B0=91sign=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 兼容性警告:根据微信支付v3文档,将AppResult的字段全部改为了小写,请开发者使用时注意修改 https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_2_4.shtml --- .../bean/result/WxPayUnifiedOrderV3Result.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java index c9b5744b3f..56906d0996 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java @@ -90,15 +90,22 @@ private String getSignStr() { @Data @Accessors(chain = true) public static class AppResult implements Serializable { - private static final long serialVersionUID = 5465773025172875110L; + private static final long serialVersionUID = 2L; private String appid; - private String partnerId; - private String prepayId; + private String partnerid; + private String prepayid; + /** + * 注意微信要求的字段是package,但是这是java关键字,请自行在序列化时/前端处理 + */ private String packageValue; private String noncestr; private String timestamp; + private String sign; + private String getSignStr() { + return String.format("%s\n%s\n%s\n%s\n", appid, timestamp, noncestr, prepayid); + } } public T getPayInfo(TradeTypeEnum tradeType, String appId, String mchId, PrivateKey privateKey) { @@ -116,10 +123,11 @@ public T getPayInfo(TradeTypeEnum tradeType, String appId, String mchId, Pri return (T) this.h5Url; case APP: AppResult appResult = new AppResult(); - appResult.setAppid(appId).setPrepayId(this.prepayId).setPartnerId(mchId) + appResult.setAppid(appId).setPrepayid(this.prepayId).setPartnerid(mchId) .setNoncestr(nonceStr).setTimestamp(timestamp) //暂填写固定值Sign=WXPay - .setPackageValue("Sign=WXPay"); + .setPackageValue("Sign=WXPay") + .setSign(SignUtils.sign(appResult.getSignStr(), privateKey)); return (T) appResult; case NATIVE: return (T) this.codeUrl; From 3a66ae7632edd387399e13b0395074e1201b8dec Mon Sep 17 00:00:00 2001 From: Gadfly Date: Wed, 11 Aug 2021 18:43:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:bug:=20=E6=92=A4=E9=94=80=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=9B=B4=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/bean/result/WxPayUnifiedOrderV3Result.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java index 56906d0996..a4c38d632f 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayUnifiedOrderV3Result.java @@ -90,14 +90,11 @@ private String getSignStr() { @Data @Accessors(chain = true) public static class AppResult implements Serializable { - private static final long serialVersionUID = 2L; + private static final long serialVersionUID = 5465773025172875110L; private String appid; - private String partnerid; - private String prepayid; - /** - * 注意微信要求的字段是package,但是这是java关键字,请自行在序列化时/前端处理 - */ + private String partnerId; + private String prepayId; private String packageValue; private String noncestr; private String timestamp; @@ -123,7 +120,7 @@ public T getPayInfo(TradeTypeEnum tradeType, String appId, String mchId, Pri return (T) this.h5Url; case APP: AppResult appResult = new AppResult(); - appResult.setAppid(appId).setPrepayid(this.prepayId).setPartnerid(mchId) + appResult.setAppid(appId).setPrepayId(this.prepayId).setPartnerId(mchId) .setNoncestr(nonceStr).setTimestamp(timestamp) //暂填写固定值Sign=WXPay .setPackageValue("Sign=WXPay")