From 3cd5ea5eae3ab4d281d8d8f7356bd8c9c7e71771 Mon Sep 17 00:00:00 2001 From: egzosn Date: Thu, 9 Nov 2017 15:39:18 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index 8264e88..64d124d 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -213,8 +213,6 @@ public class WxPayService extends BasePayService { SortedMap params = new TreeMap(); - - params.put("partnerid", payConfigStorage.getPid()); params.put("package", "prepay_id=" + result.get("prepay_id")); if (WxTransactionType.JSAPI == order.getTransactionType()) { params.put("signType", payConfigStorage.getSignType()); @@ -223,6 +221,7 @@ public class WxPayService extends BasePayService { params.put("timeStamp", System.currentTimeMillis() / 1000); params.put("nonceStr", result.get("nonce_str")); } else if (WxTransactionType.APP == order.getTransactionType()) { + params.put("partnerid", payConfigStorage.getPid()); params.put("appid", payConfigStorage.getAppid()); params.put("prepayid", result.get("prepay_id")); params.put("timestamp", System.currentTimeMillis() / 1000); From de937ecc59bf5d22e0609cd02e8e5e7fa40e76a3 Mon Sep 17 00:00:00 2001 From: egzosn Date: Thu, 9 Nov 2017 15:43:05 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index 64d124d..671ceb2 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -217,7 +217,6 @@ public class WxPayService extends BasePayService { if (WxTransactionType.JSAPI == order.getTransactionType()) { params.put("signType", payConfigStorage.getSignType()); params.put("appId", payConfigStorage.getAppid()); - params.put("prepayid", result.get("prepay_id")); params.put("timeStamp", System.currentTimeMillis() / 1000); params.put("nonceStr", result.get("nonce_str")); } else if (WxTransactionType.APP == order.getTransactionType()) { From 89fe422fce75ada2507c36e54855436a8c59d975 Mon Sep 17 00:00:00 2001 From: egzosn Date: Tue, 14 Nov 2017 15:52:27 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8DH5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=BD=AC=E8=B7=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index c06f193..a6d5ba5 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -326,7 +326,7 @@ public class WxPayService extends BasePayService { if (!"SUCCESS".equals(orderInfo.get("return_code"))) { throw new PayErrorException(new WxPayError((String) orderInfo.get("return_code"), (String) orderInfo.get("return_msg"))); } - if (WxTransactionType.MWEB.equals(orderInfo.get("trade_type"))) { + if (WxTransactionType.MWEB.name().equals(orderInfo.get("trade_type"))) { return ""; } throw new UnsupportedOperationException(); From 4e8693dcec950c0c001d6d4d6063a0cb16893ae2 Mon Sep 17 00:00:00 2001 From: egzosn Date: Tue, 14 Nov 2017 15:53:15 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E4=B8=80=E7=A0=81=E4=BB=98=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E7=94=B1H5=E6=94=AF=E4=BB=98=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E8=87=B3JSAPI=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/egzosn/pay/demo/controller/PayController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java index afe1846..eb740a8 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java @@ -246,7 +246,7 @@ public class PayController { html.append("if(isWxPay()){\n"); html.append("window.location='"); //这里使用H5支付,公众号支付是否可以?请开发者自行尝试 - html.append(url.toString()).append("?payId=").append(wxPayId).append("&transactionType=").append(WxTransactionType.MWEB.getType()).append("&price=").append(price); + html.append(url.toString()).append("?payId=").append(wxPayId).append("&transactionType=").append(WxTransactionType.JSAPI.getType()).append("&price=").append(price); html.append("';\n }else\n"); } From c4ed728fe224c440bd35a996d5140d770b7fd477 Mon Sep 17 00:00:00 2001 From: egzosn Date: Tue, 14 Nov 2017 15:53:30 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E5=B8=AE?= =?UTF-8?q?=E5=8A=A9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-ali/src/test/java/PayTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-ali/src/test/java/PayTest.java b/pay-java-ali/src/test/java/PayTest.java index e9e9975..639cdbf 100644 --- a/pay-java-ali/src/test/java/PayTest.java +++ b/pay-java-ali/src/test/java/PayTest.java @@ -25,7 +25,7 @@ public class PayTest { AliPayConfigStorage aliPayConfigStorage = new AliPayConfigStorage(); aliPayConfigStorage.setPid("合作者id"); aliPayConfigStorage.setAppId("应用id"); - aliPayConfigStorage.setAliPublicKey("支付宝公钥"); + aliPayConfigStorage.setKeyPublic("支付宝公钥"); aliPayConfigStorage.setKeyPrivate("应用私钥"); aliPayConfigStorage.setNotifyUrl("异步回调地址"); aliPayConfigStorage.setReturnUrl("同步回调地址"); From a150310d48583a9edc4657e4886f0a68ec702f61 Mon Sep 17 00:00:00 2001 From: egzosn Date: Tue, 14 Nov 2017 16:11:33 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B8=80=E7=A0=81?= =?UTF-8?q?=E4=BB=98=E5=BE=AE=E4=BF=A1H5=E6=94=AF=E4=BB=98=EF=BC=8C?= =?UTF-8?q?=E8=BF=99=E9=87=8C=E7=94=A8=E5=BE=AE=E4=BF=A1=E5=86=85=E7=BD=AE?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E8=BF=91=E6=9C=9F=E5=88=87=E6=8D=A2jsapi=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/egzosn/pay/demo/controller/PayController.java | 2 +- .../java/com/egzosn/pay/demo/dao/ApyAccountRepository.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java index eb740a8..afe1846 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java @@ -246,7 +246,7 @@ public class PayController { html.append("if(isWxPay()){\n"); html.append("window.location='"); //这里使用H5支付,公众号支付是否可以?请开发者自行尝试 - html.append(url.toString()).append("?payId=").append(wxPayId).append("&transactionType=").append(WxTransactionType.JSAPI.getType()).append("&price=").append(price); + html.append(url.toString()).append("?payId=").append(wxPayId).append("&transactionType=").append(WxTransactionType.MWEB.getType()).append("&price=").append(price); html.append("';\n }else\n"); } diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/dao/ApyAccountRepository.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/dao/ApyAccountRepository.java index 98c62d5..8c99acc 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/dao/ApyAccountRepository.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/dao/ApyAccountRepository.java @@ -51,8 +51,8 @@ public class ApyAccountRepository { apyAccount2.setPartner("1469188802"); apyAccount2.setAppid("wx3344f4aed352deae"); // TODO 2017/2/9 16:20 author: egan sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5的情况 - apyAccount2.setPublicKey("991ded0800933ccf8736ab4f7fc61095"); - apyAccount2.setPrivateKey("991ded0800933ccf8736ab4f7fc61095"); + apyAccount2.setPublicKey("991ded080***************f7fc61095"); + apyAccount2.setPrivateKey("991ded080***************f7fc61095"); apyAccount2.setNotifyUrl("http://pay.egzosn.com/payBack2.json"); // 无需同步回调可不填 apyAccount2.setReturnUrl("http://pay.egzosn.com"); From 3bc018bcd2cdc27a577116f0c9d97dcffe8cfaa0 Mon Sep 17 00:00:00 2001 From: egzosn Date: Wed, 15 Nov 2017 16:15:40 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/common/util/sign/encrypt/Base64.java | 82 +++++++++++++------ 1 file changed, 55 insertions(+), 27 deletions(-) diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/encrypt/Base64.java b/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/encrypt/Base64.java index 9a07160..586a0b6 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/encrypt/Base64.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/encrypt/Base64.java @@ -153,9 +153,10 @@ public class Base64 { Objects.requireNonNull(lineSeparator); int[] base64 = Decoder.fromBase64; for (byte b : lineSeparator) { - if (base64[b & 0xff] != -1) + if (base64[b & 0xff] != -1){ throw new IllegalArgumentException( "Illegal base64 line separator character 0x" + Integer.toString(b, 16)); + } } if (lineLength <= 0) { return Encoder.RFC4648; @@ -264,8 +265,9 @@ public class Base64 { int n = srclen % 3; len = 4 * (srclen / 3) + (n == 0 ? 0 : n + 1); } - if (linemax > 0) // line separators + if (linemax > 0) { // line separators len += (len - 1) / linemax * newline.length; + } return len; } @@ -283,8 +285,9 @@ public class Base64 { int len = outLength(src.length); // dst array size byte[] dst = new byte[len]; int ret = encode0(src, 0, src.length, dst); - if (ret != dst.length) + if (ret != dst.length) { return Arrays.copyOf(dst, ret); + } return dst; } @@ -367,8 +370,9 @@ public class Base64 { buffer.get(src); ret = encode0(src, 0, src.length, dst); } - if (ret != dst.length) + if (ret != dst.length) { dst = Arrays.copyOf(dst, ret); + } return ByteBuffer.wrap(dst); } @@ -415,8 +419,9 @@ public class Base64 { int sp = off; int slen = (end - off) / 3 * 3; int sl = off + slen; - if (linemax > 0 && slen > linemax / 4 * 3) + if (linemax > 0 && slen > linemax / 4 * 3){ slen = linemax / 4 * 3; + } int dp = 0; while (sp < sl) { int sl0 = Math.min(sp + slen, sl); @@ -507,8 +512,9 @@ public class Base64 { private static final int[] fromBase64 = new int[256]; static { Arrays.fill(fromBase64, -1); - for (int i = 0; i < Encoder.toBase64.length; i++) + for (int i = 0; i < Encoder.toBase64.length; i++){ fromBase64[Encoder.toBase64[i]] = i; + } fromBase64['='] = -2; } @@ -520,8 +526,9 @@ public class Base64 { static { Arrays.fill(fromBase64URL, -1); - for (int i = 0; i < Encoder.toBase64URL.length; i++) + for (int i = 0; i < Encoder.toBase64URL.length; i++){ fromBase64URL[Encoder.toBase64URL[i]] = i; + } fromBase64URL['='] = -2; } @@ -568,6 +575,9 @@ public class Base64 { * if {@code src} is not in valid Base64 scheme */ public byte[] decode(String src) { + if (null != src){ + src = src.replaceAll("[\r\n]", ""); + } return decode(src.getBytes(StandardCharsets.ISO_8859_1)); } @@ -673,11 +683,13 @@ public class Base64 { int[] base64 = isURL ? fromBase64URL : fromBase64; int paddings = 0; int len = sl - sp; - if (len == 0) + if (len == 0){ return 0; + } if (len < 2) { - if (isMIME && base64[0] == -1) + if (isMIME && base64[0] == -1){ return 0; + } throw new IllegalArgumentException( "Input byte[] should at least have 2 bytes for base64 bytes"); } @@ -698,12 +710,14 @@ public class Base64 { } else { if (src[sl - 1] == '=') { paddings++; - if (src[sl - 2] == '=') + if (src[sl - 2] == '=') { paddings++; + } } } - if (paddings == 0 && (len & 0x3) != 0) + if (paddings == 0 && (len & 0x3) != 0) { paddings = 4 - (len & 0x3); + } return 3 * ((len + 3) / 4) - paddings; } @@ -728,12 +742,14 @@ public class Base64 { } break; } - if (isMIME) // skip if for rfc2045 + if (isMIME){ // skip if for rfc2045 continue; - else + } + else{ throw new IllegalArgumentException( "Illegal base64 character " + Integer.toString(src[sp - 1], 16)); + } } bits |= (b << shiftto); shiftto -= 6; @@ -759,8 +775,9 @@ public class Base64 { // anything left is invalid, if is not MIME. // if MIME, ignore all non-base64 character while (sp < sl) { - if (isMIME && base64[src[sp++]] < 0) + if (isMIME && base64[src[sp++]] < 0) { continue; + } throw new IllegalArgumentException( "Input byte array has incorrect ending byte at " + sp); } @@ -808,12 +825,15 @@ public class Base64 { @Override public void write(byte[] b, int off, int len) throws IOException { - if (closed) + if (closed) { throw new IOException("Stream is closed"); - if (off < 0 || len < 0 || off + len > b.length) + } + if (off < 0 || len < 0 || off + len > b.length) { throw new ArrayIndexOutOfBoundsException(); - if (len == 0) + } + if (len == 0) { return; + } if (leftover != 0) { if (leftover == 1) { b1 = b[off++] & 0xff; @@ -911,17 +931,21 @@ public class Base64 { @Override public int read(byte[] b, int off, int len) throws IOException { - if (closed) + if (closed) { throw new IOException("Stream is closed"); - if (eof && nextout < 0) // eof and no leftover + } + if (eof && nextout < 0) { // eof and no leftover return -1; - if (off < 0 || len < 0 || len > b.length - off) + } + if (off < 0 || len < 0 || len > b.length - off) { throw new IndexOutOfBoundsException(); + } int oldOff = off; if (nextout >= 0) { // leftover output byte(s) in bits buf do { - if (len == 0) + if (len == 0) { return off - oldOff; + } b[off++] = (byte)(bits >> nextout); len--; nextout -= 8; @@ -933,8 +957,9 @@ public class Base64 { if (v == -1) { eof = true; if (nextin != 18) { - if (nextin == 12) + if (nextin == 12) { throw new IOException("Base64 stream has one un-decoded dangling byte."); + } // treat ending xx/xxx without padding character legal. // same logic as v == '=' below b[off++] = (byte)(bits >> (16)); @@ -948,10 +973,11 @@ public class Base64 { } } } - if (off == oldOff) + if (off == oldOff) { return -1; - else + }else { return off - oldOff; + } } if (v == '=') { // padding byte(s) // = shiftto==18 unnecessary padding @@ -976,11 +1002,12 @@ public class Base64 { break; } if ((v = base64[v]) == -1) { - if (isMIME) // skip if for rfc2045 + if (isMIME) { // skip if for rfc2045 continue; - else + }else { throw new IOException("Illegal base64 character " + Integer.toString(v, 16)); + } } bits |= (v << nextin); if (nextin == 0) { @@ -1004,8 +1031,9 @@ public class Base64 { @Override public int available() throws IOException { - if (closed) + if (closed) { throw new IOException("Stream is closed"); + } return is.available(); // TBD: } From db72e7af4389c5a893b680469b85d7e16d472685 Mon Sep 17 00:00:00 2001 From: egzosn Date: Wed, 15 Nov 2017 18:10:14 +0800 Subject: [PATCH 08/12] =?UTF-8?q?H5=E6=94=AF=E4=BB=98=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index a6d5ba5..6c9398a 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -327,7 +327,7 @@ public class WxPayService extends BasePayService { throw new PayErrorException(new WxPayError((String) orderInfo.get("return_code"), (String) orderInfo.get("return_msg"))); } if (WxTransactionType.MWEB.name().equals(orderInfo.get("trade_type"))) { - return ""; + return String.format("",orderInfo.get("mweb_url"), StringUtils.isEmpty(payConfigStorage.getReturnUrl()) ? "" : "&redirect_url=" + payConfigStorage.getReturnUrl()); } throw new UnsupportedOperationException(); From b11955e2872b81c443216c8c1439c1cb0b844d10 Mon Sep 17 00:00:00 2001 From: egzosn Date: Tue, 21 Nov 2017 10:30:00 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=AF=B9=E8=B1=A1toStr?= =?UTF-8?q?ing=E6=96=B9=E6=B3=95=E5=A4=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/egzosn/pay/common/bean/PayOrder.java | 19 +++++++++++++++++++ .../egzosn/pay/demo/request/QueryOrder.java | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayOrder.java b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayOrder.java index 06373b9..e522d33 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayOrder.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayOrder.java @@ -190,4 +190,23 @@ public class PayOrder { public void setOpenid(String openid) { this.openid = openid; } + + @Override + public String toString() { + return "PayOrder{" + + "subject='" + subject + '\'' + + ", body='" + body + '\'' + + ", price=" + price + + ", outTradeNo='" + outTradeNo + '\'' + + ", bankType='" + bankType + '\'' + + ", deviceInfo='" + deviceInfo + '\'' + + ", spbillCreateIp='" + spbillCreateIp + '\'' + + ", authCode='" + authCode + '\'' + + ", wapUrl='" + wapUrl + '\'' + + ", wapName='" + wapName + '\'' + + ", openid='" + openid + '\'' + + ", transactionType=" + transactionType + + ", curType=" + curType + + '}'; + } } diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/request/QueryOrder.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/request/QueryOrder.java index d6829dc..e9e7631 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/request/QueryOrder.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/request/QueryOrder.java @@ -111,4 +111,20 @@ public class QueryOrder { public void setTransactionType(String transactionType) { this.transactionType = transactionType; } + + @Override + public String toString() { + return "QueryOrder{" + + "payId=" + payId + + ", tradeNo='" + tradeNo + '\'' + + ", outTradeNo='" + outTradeNo + '\'' + + ", refundAmount=" + refundAmount + + ", totalAmount=" + totalAmount + + ", billDate=" + billDate + + ", billType='" + billType + '\'' + + ", tradeNoOrBillDate=" + tradeNoOrBillDate + + ", outTradeNoBillType='" + outTradeNoBillType + '\'' + + ", transactionType='" + transactionType + '\'' + + '}'; + } } From d571313f286636205888231270218d89539d2820 Mon Sep 17 00:00:00 2001 From: egzosn Date: Wed, 22 Nov 2017 12:23:24 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index 6c9398a..f50916f 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -582,7 +582,7 @@ public class WxPayService extends BasePayService { } //获取公共参数 - Map parameters = new HashMap<>();//getPublicParameters(); + Map parameters = getPublicParameters(); if (StringUtils.isEmpty((String)transactionIdOrBillDate)){ parameters.put("out_trade_no", outTradeNoBillType); }else { From 93e2dcf8b4cc40291a8d2f57ceb80ccf8d0c522b Mon Sep 17 00:00:00 2001 From: egzosn Date: Thu, 23 Nov 2017 10:03:01 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index f50916f..3949048 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -20,6 +20,7 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; +import java.net.URLEncoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -153,7 +154,7 @@ public class WxPayService extends BasePayService { parameters.put("body", order.getSubject());// 购买支付信息 parameters.put("out_trade_no", order.getOutTradeNo());// 订单号 - parameters.put("spbill_create_ip", "192.168.1.150"); + parameters.put("spbill_create_ip", StringUtils.isEmpty(order.getSpbillCreateIp()) ? "192.168.1.150" : order.getSpbillCreateIp() ); parameters.put("total_fee", order.getPrice().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue());// 总金额单位为分 parameters.put("attach", order.getBody()); @@ -327,7 +328,7 @@ public class WxPayService extends BasePayService { throw new PayErrorException(new WxPayError((String) orderInfo.get("return_code"), (String) orderInfo.get("return_msg"))); } if (WxTransactionType.MWEB.name().equals(orderInfo.get("trade_type"))) { - return String.format("",orderInfo.get("mweb_url"), StringUtils.isEmpty(payConfigStorage.getReturnUrl()) ? "" : "&redirect_url=" + payConfigStorage.getReturnUrl()); + return String.format("",orderInfo.get("mweb_url"), StringUtils.isEmpty(payConfigStorage.getReturnUrl()) ? "" : "&redirect_url=" + URLEncoder.encode(payConfigStorage.getReturnUrl())); } throw new UnsupportedOperationException(); From 2a968f8947110eb7287d42546cf19ef5fe9fd375 Mon Sep 17 00:00:00 2001 From: egzosn Date: Thu, 23 Nov 2017 13:50:07 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/egzosn/pay/wx/api/WxPayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java index 3949048..878d6f4 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java @@ -328,7 +328,7 @@ public class WxPayService extends BasePayService { throw new PayErrorException(new WxPayError((String) orderInfo.get("return_code"), (String) orderInfo.get("return_msg"))); } if (WxTransactionType.MWEB.name().equals(orderInfo.get("trade_type"))) { - return String.format("",orderInfo.get("mweb_url"), StringUtils.isEmpty(payConfigStorage.getReturnUrl()) ? "" : "&redirect_url=" + URLEncoder.encode(payConfigStorage.getReturnUrl())); + return String.format("",orderInfo.get("mweb_url"), StringUtils.isEmpty(payConfigStorage.getReturnUrl()) ? "" : "&redirect_url=" + URLEncoder.encode(payConfigStorage.getReturnUrl())); } throw new UnsupportedOperationException();