Skip to content

Commit b9262c9

Browse files
committed
#319 增加“退款结果通知“处理方法,并优化调整微信支付相关代码
1 parent 8881cef commit b9262c9

File tree

16 files changed

+918
-32
lines changed

16 files changed

+918
-32
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/crypto/WxCryptUtil.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ protected DocumentBuilder initialValue() {
4747
protected String appidOrCorpid;
4848

4949
public WxCryptUtil() {
50-
super();
5150
}
5251

5352
/**
@@ -106,7 +105,7 @@ private static int bytesNetworkOrder2Number(byte[] bytesInNetworkOrder) {
106105
private static String genRandomStr() {
107106
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
108107
Random random = new Random();
109-
StringBuffer sb = new StringBuffer();
108+
StringBuilder sb = new StringBuilder();
110109
for (int i = 0; i < 16; i++) {
111110
int number = random.nextInt(base.length());
112111
sb.append(base.charAt(number));
@@ -148,12 +147,11 @@ public String encrypt(String plainText) {
148147
String encryptedXml = encrypt(genRandomStr(), plainText);
149148

150149
// 生成安全签名
151-
String timeStamp = Long.toString(System.currentTimeMillis() / 1000l);
150+
String timeStamp = Long.toString(System.currentTimeMillis() / 1000L);
152151
String nonce = genRandomStr();
153152

154153
String signature = SHA1.gen(this.token, timeStamp, nonce, encryptedXml);
155-
String result = generateXml(encryptedXml, signature, timeStamp, nonce);
156-
return result;
154+
return generateXml(encryptedXml, signature, timeStamp, nonce);
157155
}
158156

159157
/**
@@ -194,9 +192,7 @@ protected String encrypt(String randomStr, String plainText) {
194192
byte[] encrypted = cipher.doFinal(unencrypted);
195193

196194
// 使用BASE64对加密后的字符串进行编码
197-
String base64Encrypted = base64.encodeToString(encrypted);
198-
199-
return base64Encrypted;
195+
return base64.encodeToString(encrypted);
200196
} catch (Exception e) {
201197
throw new RuntimeException(e);
202198
}
@@ -228,8 +224,7 @@ public String decrypt(String msgSignature, String timeStamp, String nonce, Strin
228224
}
229225

230226
// 解密
231-
String result = decrypt(cipherText);
232-
return result;
227+
return decrypt(cipherText);
233228
}
234229

235230
/**

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/WxPayOrderNotifyResponse.java renamed to weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayNotifyResponse.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.binarywang.wxpay.bean;
1+
package com.github.binarywang.wxpay.bean.notify;
22

33
import com.thoughtworks.xstream.XStream;
44
import com.thoughtworks.xstream.annotations.XStreamAlias;
@@ -7,8 +7,11 @@
77
import me.chanjar.weixin.common.util.xml.XStreamCDataConverter;
88
import me.chanjar.weixin.common.util.xml.XStreamInitializer;
99

10+
/**
11+
* 微信支付订单和退款的异步通知共用的响应类
12+
*/
1013
@XStreamAlias("xml")
11-
public class WxPayOrderNotifyResponse {
14+
public class WxPayNotifyResponse {
1215
@XStreamOmitField
1316
private transient static final String FAIL = "FAIL";
1417
@XStreamOmitField
@@ -21,25 +24,25 @@ public class WxPayOrderNotifyResponse {
2124
@XStreamAlias("return_msg")
2225
private String returnMsg;
2326

24-
public WxPayOrderNotifyResponse() {
27+
public WxPayNotifyResponse() {
2528
super();
2629
}
2730

28-
public WxPayOrderNotifyResponse(String returnCode, String returnMsg) {
31+
public WxPayNotifyResponse(String returnCode, String returnMsg) {
2932
super();
3033
this.returnCode = returnCode;
3134
this.returnMsg = returnMsg;
3235
}
3336

3437
public static String fail(String msg) {
35-
WxPayOrderNotifyResponse response = new WxPayOrderNotifyResponse(FAIL, msg);
38+
WxPayNotifyResponse response = new WxPayNotifyResponse(FAIL, msg);
3639
XStream xstream = XStreamInitializer.getInstance();
3740
xstream.autodetectAnnotations(true);
3841
return xstream.toXML(response);
3942
}
4043

4144
public static String success(String msg) {
42-
WxPayOrderNotifyResponse response = new WxPayOrderNotifyResponse(SUCCESS, msg);
45+
WxPayNotifyResponse response = new WxPayNotifyResponse(SUCCESS, msg);
4346
XStream xstream = XStreamInitializer.getInstance();
4447
xstream.autodetectAnnotations(true);
4548
return xstream.toXML(response);

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/WxPayOrderNotifyCoupon.java renamed to weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyCoupon.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.github.binarywang.wxpay.bean;
1+
package com.github.binarywang.wxpay.bean.notify;
22

33
import org.apache.commons.lang3.builder.ToStringBuilder;
44
import org.apache.commons.lang3.builder.ToStringStyle;

weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/result/WxPayOrderNotifyResult.java renamed to weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayOrderNotifyResult.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.github.binarywang.wxpay.bean.result;
1+
package com.github.binarywang.wxpay.bean.notify;
22

3-
import com.github.binarywang.wxpay.bean.WxPayOrderNotifyCoupon;
3+
import com.github.binarywang.wxpay.bean.result.WxPayBaseResult;
44
import com.github.binarywang.wxpay.converter.WxPayOrderNotifyResultConverter;
55
import com.thoughtworks.xstream.XStream;
66
import com.thoughtworks.xstream.annotations.XStreamAlias;
@@ -20,7 +20,6 @@
2020
*/
2121
@XStreamAlias("xml")
2222
public class WxPayOrderNotifyResult extends WxPayBaseResult implements Serializable {
23-
2423
private static final long serialVersionUID = 5389718115223345496L;
2524

2625
/**

0 commit comments

Comments
 (0)