From 1f809e678e29ea2ae47cc7ab1b29dbf8c12731bd Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Tue, 20 Jun 2017 18:52:24 +0800 Subject: [PATCH 01/31] =?UTF-8?q?=E5=8F=8B=E5=BA=97=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E6=A0=A1=E9=AA=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/wx/youdian/api/WxYouDianPayService.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java index 41b08e9..51d1cef 100644 --- a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java +++ b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java @@ -324,12 +324,12 @@ public class WxYouDianPayService extends BasePayService { */ @Override public PayOutMessage getPayOutMessage(String code, String message) { - - JsonBuilder builder = PayOutMessage.JSON() - .content("return_code", code.toUpperCase()) - .content("return_msg", message) - .content("nonce_str", SignUtils.randomStr()); - return builder.content("sign", SignUtils.valueOf(payConfigStorage.getSignType()).sign(builder.getJson(), "&key=" + payConfigStorage.getKeyPrivate(), payConfigStorage.getInputCharset())).build(); + Map builder = new TreeMap<>(); + builder.put("return_code", code.toUpperCase()); + builder.put("return_msg", message); + builder.put("nonce_str", SignUtils.randomStr()); + String sgin = SignUtils.valueOf(payConfigStorage.getSignType()).sign(builder, "&key=" + payConfigStorage.getKeyPrivate(), payConfigStorage.getInputCharset()); + return PayOutMessage.TEXT().content("{\"return_code\":\""+builder.get("return_code")+"\",\"return_msg\":\""+builder.get("return_msg")+"\",\"nonce_str\":\""+builder.get("nonce_str")+"\",\"sign\":\""+ sgin +"\"}").build(); } From 5f22301077ebf2230a0127e9c90a9df60231fd44 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Wed, 21 Jun 2017 20:01:56 +0800 Subject: [PATCH 02/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E5=8F=8B?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=97=AE=E9=A2=98=EF=BC=8C=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/common/util/sign/SignUtils.java | 7 ++--- .../egzosn/pay/fuiou/api/FuiouPayService.java | 30 +++++++++---------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/SignUtils.java b/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/SignUtils.java index ef8ed82..b998c14 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/SignUtils.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/util/sign/SignUtils.java @@ -166,15 +166,12 @@ public enum SignUtils { Set keys = (Set) ((LinkedHashMap)parameters).keySet(); for(String key : keys){ String val = ((LinkedHashMap)parameters).get(key).toString(); - if(StringUtils.isNotBlank(val)){ - sb.append(val).append(separator); - } + sb.append(val).append(separator); + } }else if(parameters instanceof List){ for(BasicNameValuePair bnv :((List)parameters) ){ - if(StringUtils.isNotBlank(bnv.getValue())){ sb.append(bnv.getValue()).append(separator); - } } } diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java index 93550df..d2839a7 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java @@ -161,7 +161,7 @@ public class FuiouPayService extends BasePayService { LinkedHashMap parameters = new LinkedHashMap(); parameters.put("mchnt_cd", payConfigStorage.getPartner());//商户代码 parameters.put("order_id", order.getOutTradeNo());//商户订单号 - parameters.put("order_amt", order.getPrice());//交易金额 + parameters.put("order_amt", (int)(order.getPrice().doubleValue() * 100));//交易金额 // parameters.put("cur_type", null == order.getCurType() ? FuiouCurType.CNY:order.getCurType());//交易币种 parameters.put("order_pay_type", order.getTransactionType());//支付类型 parameters.put("page_notify_url", payConfigStorage.getReturnUrl());//商户接受支付结果通知地址 @@ -169,8 +169,8 @@ public class FuiouPayService extends BasePayService { parameters.put("order_valid_time", "30m");//超时时间 1m-15天,m:分钟、h:小时、d天、1c当天有效, parameters.put("iss_ins_cd", order.getBankType());//银行代码 parameters.put("goods_name", order.getSubject()); - parameters.put("goods_display_url", "1");//商品展示网址 //非必填 - parameters.put("rem", "1");//备注 //非必填 + parameters.put("goods_display_url", "");//商品展示网址 //非必填 + parameters.put("rem", "");//备注 //非必填 parameters.put("ver", "1.0.1");//版本号 return parameters; } @@ -261,27 +261,25 @@ public class FuiouPayService extends BasePayService { */ private String getFormString(Map param, MethodType method,String url) { StringBuffer formHtml = new StringBuffer(); - - formHtml.append("
"); + formHtml.append(""); + formHtml.append( "提交到富友交易系统"); + formHtml.append( ""); + formHtml.append( ""); + formHtml.append( ""); for (String key : param.keySet()) { Object o = param.get(key); - if (null == o || "null".equals(o) || "".equals(o)) { - continue; - } - formHtml.append(""); + + + formHtml.append(""); } //submit按钮控件请不要含有name属性 // formHtml.append(""); - formHtml.append("
"); - formHtml.append(""); + formHtml.append(""); return formHtml.toString(); } From b2b6d451f9042f1c509ec7ff3111026c0af79e27 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:12:55 +0800 Subject: [PATCH 03/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E5=8F=8B?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=97=AE=E9=A2=98=EF=BC=8C=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../egzosn/pay/fuiou/api/FuiouPayService.java | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java index d2839a7..64dfba9 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java @@ -84,7 +84,7 @@ public class FuiouPayService extends BasePayService { } try { //返回参数校验 和 重新请求订单检查数据是否合法 - return (signVerify(params, (String) params.get("md5")) && verifySource((String) params.get("order_id"))); + return (signVerify(params, (String) params.remove("md5")) && verifySource((String) params.get("order_id"))); } catch (PayErrorException e) { e.printStackTrace(); } @@ -100,26 +100,11 @@ public class FuiouPayService extends BasePayService { */ @Override public boolean signVerify (Map params, String responseSign) { - LinkedHashSet keySet = new LinkedHashSet<>(); - keySet.add("mchnt_cd");//商户代码 - keySet.add("order_id");//商户订单号 - keySet.add("order_date");//订单日期 - keySet.add("order_amt");//交易金额 - keySet.add("order_st");//订单状态 - keySet.add("order_pay_code");//错误代码 - keySet.add("order_pay_error");//错误中文描述 - keySet.add("resv1");//保留字段 - keySet.add("fy_ssn");//富友流水号 - StringBuilder verifyMD5Str = new StringBuilder(); - for (String keyStr : keySet) { - String keyValue = (String) params.get(keyStr); - if (null == keyValue){ - log.debug(String.format("富友支付返回结果校验:<参数:%s>不能为空,",keyStr)); - } - verifyMD5Str.append(keyValue).append("|"); - } - String sign = createSign(verifyMD5Str.deleteCharAt(verifyMD5Str.length() -1).toString(),payConfigStorage.getInputCharset()); -// System.out.println("加密串"+verifyMD5Str+",,返回参数生成MD5="+sign+",,返回MD5摘要值"+returnSign); + + params = new LinkedHashMap<>(params); + + String sign = createSign(SignUtils.parameters2MD5Str(params,"|"),payConfigStorage.getInputCharset()); + return responseSign.equals(sign); } From 1d5fadec51b66ab9ebed25cabe8a0aeec28c34a0 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:14:43 +0800 Subject: [PATCH 04/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E5=8F=8B?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=97=AE=E9=A2=98=EF=BC=8C=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../egzosn/pay/fuiou/api/FuiouPayService.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java index 64dfba9..a6691d9 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java @@ -99,11 +99,11 @@ public class FuiouPayService extends BasePayService { * @return 校验结果 */ @Override - public boolean signVerify (Map params, String responseSign) { + public boolean signVerify(Map params, String responseSign) { params = new LinkedHashMap<>(params); - String sign = createSign(SignUtils.parameters2MD5Str(params,"|"),payConfigStorage.getInputCharset()); + String sign = createSign(SignUtils.parameters2MD5Str(params, "|"), payConfigStorage.getInputCharset()); return responseSign.equals(sign); } @@ -115,13 +115,13 @@ public class FuiouPayService extends BasePayService { * @return 返回校验结果 */ @Override - public boolean verifySource (String order_id) { - LinkedHashMap params = new LinkedHashMap<>(); - params.put("mchnt_cd",payConfigStorage.getPid()); - params.put("order_id",order_id); - params.put("md5",createSign(SignUtils.parameters2MD5Str(params,"|"),payConfigStorage.getInputCharset())); - JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate,params,JSONObject.class); - return resultJson.getString("order_pay_code").equals("0000"); + public boolean verifySource(String order_id) { + LinkedHashMap params = new LinkedHashMap<>(); + params.put("mchnt_cd", payConfigStorage.getPid()); + params.put("order_id", order_id); + params.put("md5", createSign(SignUtils.parameters2MD5Str(params, "|"), payConfigStorage.getInputCharset())); + JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate, params, JSONObject.class); + return "0000".equals(resultJson.getString("order_pay_code")); } /** From 4e1c9e8f9897ed72ec1ca6b274f4d1628ec755ee Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:16:17 +0800 Subject: [PATCH 05/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E5=8F=8B?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=97=AE=E9=A2=98=EF=BC=8C=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-union/pom.xml | 27 ---- .../pay/union/api/UnionPayConfigStorage.java | 38 ----- .../pay/union/api/UnionPayServicer.java | 130 ------------------ .../pay/union/bean/UnionTransactionType.java | 12 -- 4 files changed, 207 deletions(-) delete mode 100644 pay-java-union/pom.xml delete mode 100644 pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java delete mode 100644 pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayServicer.java delete mode 100644 pay-java-union/src/main/java/com/egzosn/pay/union/bean/UnionTransactionType.java diff --git a/pay-java-union/pom.xml b/pay-java-union/pom.xml deleted file mode 100644 index e5e9793..0000000 --- a/pay-java-union/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - pay-java-parent - com.egzosn - 2.0.2-SNAPSHOT - - 4.0.0 - - pay-java-union - - - com.egzosn - pay-java-common - - - - - - - - - - - diff --git a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java deleted file mode 100644 index 1fcf2b6..0000000 --- a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.egzosn.pay.union.api; - -import com.egzosn.pay.common.api.BasePayConfigStorage; - -/** - * 银联支付配置 - * @author egan - * - * - * email egzosn@gmail.com - * date 2017/6/15 - */ -public class UnionPayConfigStorage extends BasePayConfigStorage { - @Override - public String getAppid() { - return null; - } - - @Override - public String getPartner() { - return null; - } - - @Override - public String getPid() { - return null; - } - - @Override - public String getSeller() { - return null; - } - - @Override - public String getSecretKey() { - return null; - } -} diff --git a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayServicer.java b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayServicer.java deleted file mode 100644 index dd33e76..0000000 --- a/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayServicer.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.egzosn.pay.union.api; - -import com.egzosn.pay.common.api.BasePayService; -import com.egzosn.pay.common.api.Callback; -import com.egzosn.pay.common.api.PayConfigStorage; -import com.egzosn.pay.common.bean.*; - -import java.awt.image.BufferedImage; -import java.io.InputStream; -import java.math.BigDecimal; -import java.util.Date; -import java.util.Map; - -/** - * @author egan - * - * - * email egzosn@gmail.com - * date 2017/6/15 - */ -public class UnionPayServicer extends BasePayService { - public UnionPayServicer(PayConfigStorage payConfigStorage) { - super(payConfigStorage); - } - - @Override - public boolean verify(Map params) { - return false; - } - - @Override - public boolean signVerify(Map params, String sign) { - return false; - } - - @Override - public boolean verifySource(String id) { - return false; - } - - @Override - public Map orderInfo(PayOrder order) { - return null; - } - - @Override - public Map getParameter2Map(Map parameterMap, InputStream is) { - return null; - } - - @Override - public PayOutMessage getPayOutMessage(String code, String message) { - return null; - } - - @Override - public PayOutMessage successPayOutMessage(PayMessage payMessage) { - return null; - } - - @Override - public String buildRequest(Map orderInfo, MethodType method) { - return null; - } - - @Override - public BufferedImage genQrPay(PayOrder order) { - return null; - } - - @Override - public Map microPay(PayOrder order) { - return null; - } - - @Override - public Map query(String tradeNo, String outTradeNo) { - return null; - } - - @Override - public T query(String tradeNo, String outTradeNo, Callback callback) { - return null; - } - - @Override - public Map close(String tradeNo, String outTradeNo) { - return null; - } - - @Override - public T close(String tradeNo, String outTradeNo, Callback callback) { - return null; - } - - @Override - public Map refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) { - return null; - } - - @Override - public T refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback callback) { - return null; - } - - @Override - public Map refundquery(String tradeNo, String outTradeNo) { - return null; - } - - @Override - public T refundquery(String tradeNo, String outTradeNo, Callback callback) { - return null; - } - - @Override - public Object downloadbill(Date billDate, String billType) { - return null; - } - - @Override - public T downloadbill(Date billDate, String billType, Callback callback) { - return null; - } - - @Override - public T secondaryInterface(Object tradeNoOrBillDate, String outTradeNoBillType, TransactionType transactionType, Callback callback) { - return null; - } -} diff --git a/pay-java-union/src/main/java/com/egzosn/pay/union/bean/UnionTransactionType.java b/pay-java-union/src/main/java/com/egzosn/pay/union/bean/UnionTransactionType.java deleted file mode 100644 index 423e16f..0000000 --- a/pay-java-union/src/main/java/com/egzosn/pay/union/bean/UnionTransactionType.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.egzosn.pay.union.bean; - -/** - * 银联支付交易类型 - * @author egan - * - * - * email egzosn@gmail.com - * date 2017/6/15 - */ -public enum UnionTransactionType { -} From f4dc3b0b058ca6bb9579a76d41bd0c1a1cb6e12b Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:18:41 +0800 Subject: [PATCH 06/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E5=8F=8B?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=97=AE=E9=A2=98=EF=BC=8C=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index fce9ed7..4eb22a1 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,6 @@ pay-java-wx-youdian pay-java-fuiou pay-java-demo - pay-java-union From 1ee4f81f811e2d4f3b03b0a9465c49424beb2276 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:31:57 +0800 Subject: [PATCH 07/31] =?UTF-8?q?=E7=89=88=E6=9C=AC2.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-ali/pom.xml | 2 +- pay-java-common/pom.xml | 2 +- pay-java-demo/pom.xml | 2 +- pay-java-fuiou/pom.xml | 2 +- pay-java-wx-youdian/pom.xml | 2 +- pay-java-wx/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pay-java-ali/pom.xml b/pay-java-ali/pom.xml index ead19e0..2885a4b 100644 --- a/pay-java-ali/pom.xml +++ b/pay-java-ali/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT 4.0.0 pay-java-ali diff --git a/pay-java-common/pom.xml b/pay-java-common/pom.xml index 860e096..86f9750 100644 --- a/pay-java-common/pom.xml +++ b/pay-java-common/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT 4.0.0 jar diff --git a/pay-java-demo/pom.xml b/pay-java-demo/pom.xml index 32b2abe..1a54d8c 100644 --- a/pay-java-demo/pom.xml +++ b/pay-java-demo/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT 4.0.0 war diff --git a/pay-java-fuiou/pom.xml b/pay-java-fuiou/pom.xml index 771677f..6bbee79 100644 --- a/pay-java-fuiou/pom.xml +++ b/pay-java-fuiou/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT 4.0.0 pay-java-fuiou diff --git a/pay-java-wx-youdian/pom.xml b/pay-java-wx-youdian/pom.xml index cf7550c..5a85f36 100644 --- a/pay-java-wx-youdian/pom.xml +++ b/pay-java-wx-youdian/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT 4.0.0 pay-java-wx-youdian diff --git a/pay-java-wx/pom.xml b/pay-java-wx/pom.xml index 35a6e55..226b039 100644 --- a/pay-java-wx/pom.xml +++ b/pay-java-wx/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT 4.0.0 pay-java-wx diff --git a/pom.xml b/pom.xml index 4eb22a1..2d14f82 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.egzosn pay-java-parent pom - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT Pay Java - Parent Pay Java Parent From 84c30440612edd09d722ffcf651b330c15a1e53b Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 22 Jun 2017 09:35:50 +0800 Subject: [PATCH 08/31] =?UTF-8?q?=E7=89=88=E6=9C=AC2.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2d14f82..7eb87fa 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ 4.5.2 1.2.17 - 2.0.2-SNAPSHOT + 2.0.3-SNAPSHOT From d71e7dff12324e0fc6dfc6f5bfd6734c163d3e98 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Fri, 23 Jun 2017 17:10:17 +0800 Subject: [PATCH 09/31] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dhttp=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=EF=BC=9AContentType=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=A4=9A?= =?UTF-8?q?=E5=B1=82xml=E8=A7=A3=E6=9E=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/common/http/ClientHttpRequest.java | 9 ++++-- .../java/com/egzosn/pay/common/util/XML.java | 30 +++++++++++++++++-- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java b/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java index 29b7eae..85ecb23 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/http/ClientHttpRequest.java @@ -134,8 +134,12 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme responseType = (Class) String.class; } - - String[] value = entity.getContentType().getValue().split(";"); + String[] value = null; + if (null == entity.getContentType()){ + value = new String[]{"application/x-www-form-urlencoded"}; + }else { + value = entity.getContentType().getValue().split(";"); + } if (ContentType.APPLICATION_OCTET_STREAM.getMimeType().equals(value[0])){ @@ -160,7 +164,6 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme charset = value[1].substring(value[1].indexOf("=") + 1); } String result = EntityUtils.toString(entity, charset); - if (responseType.isAssignableFrom(String.class)){ return (T)result; } diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java b/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java index 214610b..c3a565a 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/util/XML.java @@ -85,12 +85,12 @@ public class XML { while (it.hasNext()) { Element e = (Element) it.next(); String k = e.getName(); - String v = ""; + Object v = ""; List children = e.getChildren(); if (children.isEmpty()) { v = e.getTextNormalize(); } else { - v = getChildrenText(children); + v = getChildren(children); } m.put(k, v); } @@ -129,6 +129,32 @@ public class XML { return sb.toString(); } + /** + * 获取子结点的xml + * + * @param children 集合 + * @return String 子结点的xml + */ + public static Object getChildren(List children) { + JSONObject json = new JSONObject(); + if (!children.isEmpty()) { + Iterator it = children.iterator(); + while (it.hasNext()) { + Element e = (Element) it.next(); + String name = e.getName(); + String value = e.getTextNormalize(); + List list = e.getChildren(); + if (!list.isEmpty()) { + json.put(name, getChildren(list)); + }else { + json.put(name, value); + } + } + } + + return json; + } + /** * 将请求参数转换为xml格式的string * @param parameters 请求参数 From 556b7a70286c6dcdab082497e16237aaf823ce61 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Fri, 23 Jun 2017 17:13:08 +0800 Subject: [PATCH 10/31] =?UTF-8?q?=E5=AF=8C=E5=8F=8B=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=EF=BC=8C=E5=9B=9E=E8=B0=83=E5=8F=82=E6=95=B0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=EF=BC=8CconfigStorage=E5=A2=9E=E5=8A=A0privateKey=E5=8F=96?= =?UTF-8?q?=E5=80=BC=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/fuiou/api/FuiouPayConfigStorage.java | 1 + .../egzosn/pay/fuiou/api/FuiouPayService.java | 45 +++++++++++++++---- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java index c09f560..498e94b 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java @@ -61,5 +61,6 @@ public class FuiouPayConfigStorage extends BasePayConfigStorage { public void setSecretKey(String mchntKey){ this.mchntKey = mchntKey; + setKeyPrivate(mchntKey); } } diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java index a6691d9..e4b9414 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java @@ -1,5 +1,4 @@ package com.egzosn.pay.fuiou.api; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.egzosn.pay.common.api.BasePayService; import com.egzosn.pay.common.api.Callback; @@ -7,6 +6,7 @@ import com.egzosn.pay.common.api.PayConfigStorage; import com.egzosn.pay.common.bean.*; import com.egzosn.pay.common.exception.PayErrorException; import com.egzosn.pay.common.http.HttpConfigStorage; +import com.egzosn.pay.common.http.UriVariables; import com.egzosn.pay.common.util.sign.SignUtils; import com.egzosn.pay.common.util.str.StringUtils; import org.apache.commons.logging.Log; @@ -101,8 +101,6 @@ public class FuiouPayService extends BasePayService { @Override public boolean signVerify(Map params, String responseSign) { - params = new LinkedHashMap<>(params); - String sign = createSign(SignUtils.parameters2MD5Str(params, "|"), payConfigStorage.getInputCharset()); return responseSign.equals(sign); @@ -120,10 +118,14 @@ public class FuiouPayService extends BasePayService { params.put("mchnt_cd", payConfigStorage.getPid()); params.put("order_id", order_id); params.put("md5", createSign(SignUtils.parameters2MD5Str(params, "|"), payConfigStorage.getInputCharset())); - JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate, params, JSONObject.class); - return "0000".equals(resultJson.getString("order_pay_code")); + JSONObject resultJson = getHttpRequestTemplate().postForObject(getReqUrl() + URL_FuiouSmpAQueryGate + "?" + UriVariables.getMapToParameters(params), null, JSONObject.class); + if (null == resultJson){ + return false; + } + return "0000".equals(resultJson.getJSONObject("plain").getString("order_pay_code")); } + /** * 将支付请求参数加密成md5 * @param order 支付订单 @@ -168,7 +170,7 @@ public class FuiouPayService extends BasePayService { */ @Override public String createSign(String content, String characterEncoding) { - return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "|" + payConfigStorage.getSecretKey(), characterEncoding); + return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "|" + payConfigStorage.getKeyPrivate(), characterEncoding); } /** @@ -179,7 +181,34 @@ public class FuiouPayService extends BasePayService { */ @Override public Map getParameter2Map(Map parameterMap, InputStream is) { - return null; + Map params = conversion(parameterMap, new LinkedHashMap(), "mchnt_cd"); + conversion(parameterMap, params, "order_id"); + conversion(parameterMap, params, "order_date"); + conversion(parameterMap, params, "order_amt"); + conversion(parameterMap, params, "order_st"); + conversion(parameterMap, params, "order_pay_code"); + conversion(parameterMap, params, "order_pay_error"); + conversion(parameterMap, params, "resv1"); + conversion(parameterMap, params, "fy_ssn"); + conversion(parameterMap, params, "md5"); + return params; + } + + /** + * 将parameterMap对应的key存放至params + * @param parameterMap 请求参数 + * @param params 转化的对象 + * @param key 需要取值的key + * @return params + */ + public Map conversion(Map parameterMap, Map params ,String key){ + String[] values = parameterMap.get(key); + String valueStr = ""; + for (int i = 0,len = values.length; i < len; i++) { + valueStr += (i == len - 1) ? values[i] : values[i] + ","; + } + params.put(key, valueStr); + return params; } /** @@ -201,7 +230,7 @@ public class FuiouPayService extends BasePayService { */ @Override public PayOutMessage successPayOutMessage(PayMessage payMessage) { - return PayOutMessage.JSON().content("success","成功").build(); + return PayOutMessage.TEXT().content("success").build(); } /** From 9948d85f9dadb900cf5db36bc40c2df0e501e992 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Fri, 23 Jun 2017 17:14:35 +0800 Subject: [PATCH 11/31] =?UTF-8?q?=E9=80=9A=E7=94=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=A9=BA=E4=B8=B2?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= 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 | 7 +++---- 1 file changed, 3 insertions(+), 4 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 82f77b0..cce7cfd 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 @@ -1,6 +1,5 @@ package com.egzosn.pay.wx.api; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.egzosn.pay.common.api.BasePayService; import com.egzosn.pay.common.api.Callback; @@ -537,10 +536,10 @@ public class WxPayService extends BasePayService { //获取公共参数 Map parameters = getPublicParameters(); - if (null != transactionIdOrBillDate){ - parameters.put("transaction_id", transactionIdOrBillDate); - }else { + if (null == transactionIdOrBillDate || "".equals(transactionIdOrBillDate)){ parameters.put("out_trade_no", outTradeNoBillType); + }else { + parameters.put("transaction_id", transactionIdOrBillDate); } //设置签名 setSign(parameters); From 358e6e935bff7a9561f5208c4b01ac6846c1802a Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Fri, 23 Jun 2017 17:15:21 +0800 Subject: [PATCH 12/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E4=BA=A4=E6=98=93=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?DIRECT("alipay.trade.page.pay")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/egzosn/pay/ali/bean/AliTransactionType.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/AliTransactionType.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/AliTransactionType.java index c678e0e..df56276 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/AliTransactionType.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/bean/AliTransactionType.java @@ -19,8 +19,8 @@ import com.egzosn.pay.common.bean.TransactionType; * date 2016/10/19 22:58 */ public enum AliTransactionType implements TransactionType { - //app支付 //手机网站支付 - APP("alipay.trade.app.pay"),WAP("alipay.trade.wap.pay") + //即时到帐 //手机网站支付 + DIRECT("alipay.trade.page.pay"),APP("alipay.trade.app.pay"),WAP("alipay.trade.wap.pay") // TODO 2017/2/23 20:26 author: egan 以下三个为主动交易类型 暂未测试, //扫码付 //条码付 // 声波付 ,SWEEPPAY("alipay.trade.precreate"),BAR_CODE("alipay.trade.pay"),WAVE_CODE("alipay.trade.pay") From e1ea6cab92734a07fcbdd46f5851f151da1263f5 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Mon, 26 Jun 2017 13:47:33 +0800 Subject: [PATCH 13/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=8B=E5=BA=97?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=A4=B1=E6=95=88=E5=BC=82=E5=B8=B8500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java index 51d1cef..9d402b6 100644 --- a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java +++ b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java @@ -214,7 +214,7 @@ public class WxYouDianPayService extends BasePayService { return result; }catch (PayErrorException e){ PayError error = e.getPayError(); - if ("401".equals(error.getErrorCode()) ) { + if ("401".equals(error.getErrorCode()) || "500".equals(error.getErrorCode())) { // 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token payConfigStorage.expireAccessToken(); //进行重新登陆授权 From 16288aed498155c1e634b6ec54d48650307ef1a3 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Mon, 26 Jun 2017 13:57:08 +0800 Subject: [PATCH 14/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=8B=E5=BA=97?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=A4=B1=E6=95=88=E5=BC=82=E5=B8=B8500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-wx-youdian/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-wx-youdian/pom.xml b/pay-java-wx-youdian/pom.xml index 5a85f36..a3d1abc 100644 --- a/pay-java-wx-youdian/pom.xml +++ b/pay-java-wx-youdian/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT 4.0.0 pay-java-wx-youdian From f372778f36f89cd2481cbc7ebb282df151c6655a Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Mon, 26 Jun 2017 13:58:35 +0800 Subject: [PATCH 15/31] =?UTF-8?q?=E7=89=88=E6=9C=AC2.0.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-ali/pom.xml | 2 +- pay-java-common/pom.xml | 2 +- pay-java-demo/pom.xml | 2 +- pay-java-fuiou/pom.xml | 2 +- pay-java-wx/pom.xml | 2 +- pom.xml | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pay-java-ali/pom.xml b/pay-java-ali/pom.xml index 2885a4b..53920de 100644 --- a/pay-java-ali/pom.xml +++ b/pay-java-ali/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT 4.0.0 pay-java-ali diff --git a/pay-java-common/pom.xml b/pay-java-common/pom.xml index 86f9750..15ea70e 100644 --- a/pay-java-common/pom.xml +++ b/pay-java-common/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT 4.0.0 jar diff --git a/pay-java-demo/pom.xml b/pay-java-demo/pom.xml index 1a54d8c..bc9f39e 100644 --- a/pay-java-demo/pom.xml +++ b/pay-java-demo/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT 4.0.0 war diff --git a/pay-java-fuiou/pom.xml b/pay-java-fuiou/pom.xml index 6bbee79..eee7440 100644 --- a/pay-java-fuiou/pom.xml +++ b/pay-java-fuiou/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT 4.0.0 pay-java-fuiou diff --git a/pay-java-wx/pom.xml b/pay-java-wx/pom.xml index 226b039..b1ac6ae 100644 --- a/pay-java-wx/pom.xml +++ b/pay-java-wx/pom.xml @@ -5,7 +5,7 @@ pay-java-parent com.egzosn - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT 4.0.0 pay-java-wx diff --git a/pom.xml b/pom.xml index 7eb87fa..6d06e79 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.egzosn pay-java-parent pom - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT Pay Java - Parent Pay Java Parent @@ -50,7 +50,7 @@ 4.5.2 1.2.17 - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT From 41aa511f5bb7e2fa474123385d9b27caf2b6d51f Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Wed, 28 Jun 2017 16:39:12 +0800 Subject: [PATCH 16/31] =?UTF-8?q?=E7=89=88=E6=9C=AC2.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2413ad6..d27062e 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ com.egzosn pay-java-common - 2.0.2 + 2.0.3 ``` @@ -43,7 +43,7 @@ com.egzosn {module-name} - 2.0.2 + 2.0.3 ``` From f1d6a12f7cdecd1adc6c5cf44467e10e2b6cb7df Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Sat, 1 Jul 2017 14:44:35 +0800 Subject: [PATCH 17/31] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D2016=E7=89=88A?= =?UTF-8?q?PP=E6=94=AF=E4=BB=98=E4=BF=AE=E5=A4=8D=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/ali/before/api/AliPayService.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java index 1ab19d9..263d014 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java @@ -133,6 +133,7 @@ public class AliPayService extends BasePayService { + /** * 返回创建的订单信息 * @@ -145,7 +146,12 @@ public class AliPayService extends BasePayService { Map orderInfo = getOrder(order); - String sign = createSign(orderInfo, "UTF-8"); + String sign = null; + if (AliTransactionType.APP == order.getTransactionType() ){ + sign = createSign(getOrderInfo(order), payConfigStorage.getInputCharset()); + }else { + sign = createSign(orderInfo, payConfigStorage.getInputCharset()); + } try { sign = URLEncoder.encode(sign, "UTF-8"); @@ -157,6 +163,22 @@ public class AliPayService extends BasePayService { return orderInfo; } + private String getOrderInfo(PayOrder order) { + String orderInfo = "partner=\"" + this.payConfigStorage.getPartner() + "\""; + orderInfo = orderInfo + "&seller_id=\"" + this.payConfigStorage.getSeller() + "\""; + orderInfo = orderInfo + "&out_trade_no=\"" + order.getOutTradeNo() + "\""; + orderInfo = orderInfo + "&subject=\"" + order.getSubject() + "\""; + orderInfo = orderInfo + "&body=\"" + order.getBody() + "\""; + orderInfo = orderInfo + "&total_fee=\"" + order.getPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString() + "\""; + orderInfo = orderInfo + "¬ify_url=\"" + this.payConfigStorage.getNotifyUrl() + "\""; + orderInfo = orderInfo + "&service=\"mobile.securitypay.pay\""; + orderInfo = orderInfo + "&payment_type=\"1\""; + orderInfo = orderInfo + "&_input_charset=\""+ payConfigStorage.getInputCharset()+"\""; + orderInfo = orderInfo + "&it_b_pay=\"30m\""; + orderInfo = orderInfo + "&return_url=\""+payConfigStorage.getReturnUrl()+"\""; + return orderInfo; + } + /** * 支付宝创建订单信息 * create the order info From 4f788b739c7e9ed95302e799b6364a10390245d0 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Tue, 4 Jul 2017 14:22:04 +0800 Subject: [PATCH 18/31] =?UTF-8?q?=E7=A7=BB=E9=99=A4sql=20=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-demo/src/main/resources/apy_account.sql | 8 -------- 1 file changed, 8 deletions(-) diff --git a/pay-java-demo/src/main/resources/apy_account.sql b/pay-java-demo/src/main/resources/apy_account.sql index 429b2bf..e335c57 100644 --- a/pay-java-demo/src/main/resources/apy_account.sql +++ b/pay-java-demo/src/main/resources/apy_account.sql @@ -22,11 +22,3 @@ CREATE TABLE `pay_account` ( PRIMARY KEY (`pay_id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; -/*Data for the table `apy_account` */ - -insert into `apy_account`(`pay_id`,`partner`,`appid`,`public_key`,`private_key`,`notify_url`,`return_url`,`seller`,`sign_type`,`input_charset`,`pay_type`,`msg_type`,`create_by`,`create_time`) values -(1,'12******01','wxa**********ba9e9','48gf0iwuhr***********r9weh9eiut9','48gf0iwuhr***********r9weh9eiut9','http://pay.egzosn.com/payBack2.json','同步回调地址','','MD5','utf-8','wxPay','xml','egan','2017-01-20 17:07:48'), -(2,'20889119449*****','','MIGfMA0GCSqGSIb3DQEB*********gmLCUYuLkxpLQIDAQAB','IqZg51Vx8BvyypnIfKgw=*********MIICdwIBADANBgkqhkiG9w0BAQE','http://pay.egzosn.com/payBack3.json','同步回调地址','egzosn@gmail.com','RSA','utf-8','aliPay','text','egan','2017-01-20 17:11:46'), - - - From 544b2723c69bc93a1a7eada0d2777f3acc1a3696 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Tue, 4 Jul 2017 16:44:31 +0800 Subject: [PATCH 19/31] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=8B=E5=BA=97?= =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E5=BC=82=E6=AD=A5=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E5=85=AC=E9=92=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-demo/src/main/resources/apy_account.sql | 2 +- .../pay/wx/youdian/api/WxYouDianPayService.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pay-java-demo/src/main/resources/apy_account.sql b/pay-java-demo/src/main/resources/apy_account.sql index e335c57..6b4af0b 100644 --- a/pay-java-demo/src/main/resources/apy_account.sql +++ b/pay-java-demo/src/main/resources/apy_account.sql @@ -7,7 +7,7 @@ CREATE TABLE `pay_account` ( `pay_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '支付账号id', `partner` VARCHAR(32) DEFAULT NULL COMMENT '支付合作id,商户id,差不多是支付平台的账号或id', `appid` VARCHAR(32) DEFAULT NULL COMMENT '应用id', - `public_key` VARCHAR(1204) DEFAULT NULL COMMENT '支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5的情况', + `public_key` VARCHAR(1204) DEFAULT NULL COMMENT '支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况', `private_key` VARCHAR(2048) DEFAULT NULL COMMENT '支付私钥', `notify_url` VARCHAR(1024) DEFAULT NULL COMMENT '异步回调地址', `return_url` VARCHAR(1024) DEFAULT NULL COMMENT '同步回调地址', diff --git a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java index 9d402b6..39155db 100644 --- a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java +++ b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java @@ -157,7 +157,7 @@ public class WxYouDianPayService extends BasePayService { */ @Override public boolean signVerify(Map params, String sign) { - return SignUtils.valueOf(payConfigStorage.getSignType()).verify(params, sign, "&key=" + payConfigStorage.getKeyPrivate(), payConfigStorage.getInputCharset()); + return SignUtils.valueOf(payConfigStorage.getSignType()).verify(params, sign, "&key=" + payConfigStorage.getKeyPublic(), payConfigStorage.getInputCharset()); } @@ -215,17 +215,17 @@ public class WxYouDianPayService extends BasePayService { }catch (PayErrorException e){ PayError error = e.getPayError(); if ("401".equals(error.getErrorCode()) || "500".equals(error.getErrorCode())) { - // 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token - payConfigStorage.expireAccessToken(); - //进行重新登陆授权 - login(); - int sleepMillis = retrySleepMillis * (1 << retryTimes); try { + int sleepMillis = retrySleepMillis * (1 << retryTimes); log.debug(String.format("友店微信系统繁忙,(%s)ms 后重试(第%s次)", sleepMillis, retryTimes + 1)); Thread.sleep(sleepMillis); } catch (InterruptedException e1) { throw new PayErrorException(new YdPayError(-1, "友店支付服务端重试失败", e1.getMessage())); } + // 强制设置wxMpConfigStorage它的access token过期了,这样在下一次请求里就会刷新access token + payConfigStorage.expireAccessToken(); + //进行重新登陆授权 + login(); }else { throw e; } @@ -280,7 +280,7 @@ public class WxYouDianPayService extends BasePayService { */ @Override public String createSign(String content, String characterEncoding) { - return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, payConfigStorage.getKeyPublic(), characterEncoding); + return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "&source=http://life.51youdian.com", characterEncoding); } /** From 88d7e6b96264614b42a08d4edb5c6b575a794412 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Tue, 4 Jul 2017 16:56:13 +0800 Subject: [PATCH 20/31] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=8B=E5=BA=97?= =?UTF-8?q?=E6=94=AF=E4=BB=98=EF=BC=8C=E5=BC=82=E6=AD=A5=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E5=85=AC=E9=92=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-demo/src/main/webapp/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pay-java-demo/src/main/webapp/index.html b/pay-java-demo/src/main/webapp/index.html index d113293..58db5dd 100644 --- a/pay-java-demo/src/main/webapp/index.html +++ b/pay-java-demo/src/main/webapp/index.html @@ -17,7 +17,7 @@
应用id
- 支付公钥如签名类型为MD5时,当前的值与支付私钥想等 + 支付公钥支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况
支付私钥
From 9c35462fcf7f612fc89e22cc852c3aa3be4cc35a Mon Sep 17 00:00:00 2001 From: cnzzs Date: Sun, 16 Jul 2017 12:47:46 -0700 Subject: [PATCH 21/31] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E5=8D=B3?= =?UTF-8?q?=E6=97=B6=E6=94=B6=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/egzosn/pay/ali/api/AliPayService.java | 120 ++++-------------- .../pay/demo/dao/ApyAccountRepository.java | 2 +- 2 files changed, 27 insertions(+), 95 deletions(-) diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java index acaeaec..65506bb 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java @@ -36,8 +36,6 @@ public class AliPayService extends BasePayService { private final static String httpsReqUrl = "https://openapi.alipay.com/gateway.do"; //沙箱测试环境账号 private final static String devReqUrl = "https://openapi.alipaydev.com/gateway.do"; - //兼容上一版本即时收款 - private final static String httpsReqUrlBefore = "https://mapi.alipay.com/gateway.do"; /** @@ -177,21 +175,33 @@ public class AliPayService extends BasePayService { Map bizContent = new TreeMap<>(); - if (order.getTransactionType() == AliTransactionType.WAP){ - bizContent.put("product_code", "QUICK_WAP_PAY"); - orderInfo.put("return_url", payConfigStorage.getReturnUrl()); - }else if ("alipay.trade.pay".equals(order.getTransactionType().getMethod())){ - bizContent.put("scene", order.getTransactionType().toString().toLowerCase()); - bizContent.put("product_code", "FACE_TO_FACE_PAYMENT"); - bizContent.put("auth_code", order.getAuthCode()); - }else if (order.getTransactionType() != AliTransactionType.SWEEPPAY){ - bizContent.put("product_code", "QUICK_MSECURITY_PAY"); - } bizContent.put("body", order.getBody()); bizContent.put("seller_id", payConfigStorage.getSeller()); bizContent.put("subject", order.getSubject()); bizContent.put("out_trade_no", order.getOutTradeNo()); bizContent.put("total_amount", order.getPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString()); + switch ((AliTransactionType)order.getTransactionType()){ + case DIRECT: + bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY"); + orderInfo.put("return_url", payConfigStorage.getReturnUrl()); +// bizContent.remove("seller_id"); + break; + case WAP: + bizContent.put("product_code", "QUICK_WAP_PAY"); + orderInfo.put("return_url", payConfigStorage.getReturnUrl()); + break; + case BAR_CODE: + case WAVE_CODE: + bizContent.put("scene", order.getTransactionType().toString().toLowerCase()); + bizContent.put("product_code", "FACE_TO_FACE_PAYMENT"); + bizContent.put("auth_code", order.getAuthCode()); + break; + default: + if (order.getTransactionType() != AliTransactionType.SWEEPPAY) { + bizContent.put("product_code", "QUICK_MSECURITY_PAY"); + } + } + orderInfo.put("biz_content", JSON.toJSONString(bizContent)); return orderInfo; } @@ -208,70 +218,12 @@ public class AliPayService extends BasePayService { orderInfo.put("charset", payConfigStorage.getInputCharset()); DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("GMT+8")); -// DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); orderInfo.put("timestamp", df.format(new Date())); orderInfo.put("version", "1.0"); return orderInfo; } - /** - * 支付宝创建订单信息 - * create the order info - * - * @param order 支付订单 - * @return 返回过时的交易订单,兼容即时收款 - * @see PayOrder 支付订单信息 - */ - private Map getOrderBefore(PayOrder order) { - Map orderInfo = new TreeMap<>(); - // 签约合作者身份ID - orderInfo.put("partner", payConfigStorage.getPid()); - // 签约卖家支付宝账号 - orderInfo.put("seller_id", payConfigStorage.getSeller()); - - // 商户网站唯一订单号 - orderInfo.put("out_trade_no", order.getOutTradeNo()); - - // 商品名称 - orderInfo.put("subject", order.getSubject()); - - // 商品详情 - orderInfo.put("body", order.getBody()); - - // 商品金额 - orderInfo.put("total_fee", order.getPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString() ); - - // 服务器异步通知页面路径 - orderInfo.put("notify_url", payConfigStorage.getNotifyUrl() ); - - // 服务接口名称, 固定值 - orderInfo.put("service", order.getTransactionType().getType() ); - - // 支付类型, 固定值 - orderInfo.put("payment_type", "1" ); - - // 参数编码, 固定值 - orderInfo.put("_input_charset", payConfigStorage.getInputCharset()); - - // 设置未付款交易的超时时间 - // 默认30分钟,一旦超时,该笔交易就会自动被关闭。 - // 取值范围:1m~15d。 - // m-分钟,h-小时,d-天,1c-当天(无论交易何时创建,都在0点关闭)。 - // 该参数数值不接受小数点,如1.5h,可转换为90m。 - // TODO 2017/2/6 11:05 author: egan 目前写死,这一块建议配置 - orderInfo.put("it_b_pay", "30m"); - // extern_token为经过快登授权获取到的alipay_open_id,带上此参数用户将使用授权的账户进行支付 - // orderInfo.put("extern_token", extern_token ); - // 支付宝处理完请求后,当前页面跳转到商户指定页面的路径,可空 - orderInfo.put("return_url", payConfigStorage.getReturnUrl()); - - // 调用银行卡支付,需配置此参数,参与签名, 固定值 (需要签约《无线银行卡快捷支付》才能使用) -// if (order.getTransactionType().getType()) -// orderInfo.put("paymethod","expressGateway"); - - return orderInfo; - } /** @@ -329,30 +281,10 @@ public class AliPayService extends BasePayService { public String buildRequest(Map orderInfo, MethodType method) { StringBuffer formHtml = new StringBuffer(); formHtml.append("
"); - for (String key : orderInfo.keySet()) { - Object o = orderInfo.get(key); - if (null == o || "null".equals(o) || "".equals(o)) { - continue; - } - - formHtml.append(""); - - } - - } else { - String biz_content = (String)orderInfo.remove("biz_content"); - formHtml.append(getReqUrl()).append("?").append(UriVariables.getMapToParameters(orderInfo)) - .append("\" method=\"") - .append(method.name().toLowerCase()).append("\">"); - - formHtml.append(""); - } + String biz_content = (String)orderInfo.remove("biz_content"); + formHtml.append(getReqUrl()).append("?").append(UriVariables.getMapToParameters(orderInfo)) + .append("\" method=\"").append(method.name().toLowerCase()).append("\">"); + formHtml.append(""); formHtml.append("
"); formHtml.append(""); 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 b582cb8..a294e70 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 @@ -36,7 +36,7 @@ public class ApyAccountRepository { apyAccount1.setPrivateKey("MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKroe/8h5vC4L6T+B2WdXiVwGsMvUKgb2XsKix6VY3m2wcf6tyzpNRDCNykbIwGtaeo7FshN+qZxdXHLiIam9goYncBit/8ojfLGy2gLxO/PXfzGxYGs0KsDZ+ryVPPmE34ZZ8jiJpR0ygzCFl8pN3QJPJRGTJn5+FTT9EF/9zyZAgMBAAECgYAktngcYC35u7cQXDk+jMVyiVhWYU2ULxdSpPspgLGzrZyG1saOcTIi/XVX8Spd6+B6nmLQeF/FbU3rOeuD8U2clzul2Z2YMbJ0FYay9oVZFfp5gTEFpFRTVfzqUaZQBIjJe/xHL9kQVqc5xHlE/LVA27/Kx3dbC35Y7B4EVBDYAQJBAOhsX8ZreWLKPhXiXHTyLmNKhOHJc+0tFH7Ktise/0rNspojU7o9prOatKpNylp9v6kux7migcMRdVUWWiVe+4ECQQC8PqsuEz7B0yqirQchRg1DbHjh64bw9Kj82EN1/NzOUd53tP9tg+SO97EzsibK1F7tOcuwqsa7n2aY48mQ+y0ZAkBndA2xcRcnvOOjtAz5VO8G7R12rse181HjGfG6AeMadbKg30aeaGCyIxN1loiSfNR5xsPJwibGIBg81mUrqzqBAkB+K6rkaPXJR9XtzvdWb/N3235yPkDlw7Z4MiOVM3RzvR/VMDV7m8lXoeDde2zQyeMOMYy6ztwA6WgE1bhGOnQRAkEAouUBv1sVdSBlsexX15qphOmAevzYrpufKgJIRLFWQxroXMS7FTesj+f+FmGrpPCxIde1dqJ8lqYLTyJmbzMPYw==\n"); apyAccount1.setNotifyUrl("http://pay.egan.in/payBack1.json"); // 无需同步回调可不填 -// apyAccount1.setReturnUrl(""); + apyAccount1.setReturnUrl("http://pay.egan.in/payBack1.json"); apyAccount1.setInputCharset("UTF-8"); apyAccount1.setSeller("2088102169916436"); apyAccount1.setSignType(SignUtils.RSA.name()); From 4fc0f0f187ded71559ff0b7f5e1bbd4491fbc523 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 16:27:56 +0800 Subject: [PATCH 22/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/egzosn/pay/common/api/BasePayConfigStorage.java | 4 ++-- .../java/com/egzosn/pay/common/api/PayConfigStorage.java | 9 ++------- .../main/java/com/egzosn/pay/demo/entity/ApyAccount.java | 4 ++-- pay-java-demo/src/main/resources/apy_account.sql | 4 ++-- pay-java-demo/src/main/webapp/index.html | 9 ++++++--- .../java/com/egzosn/pay/fuiou/api/FuiouPayService.java | 4 ++-- 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayConfigStorage.java b/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayConfigStorage.java index 9e31da8..71da64f 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayConfigStorage.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayConfigStorage.java @@ -17,9 +17,9 @@ public abstract class BasePayConfigStorage implements PayConfigStorage{ // ali rsa_private 商户私钥,pkcs8格式 - //wx api_key 商户密钥 + //wx api_key 应用私钥(生成签名时使用) private volatile String keyPrivate ; - // 支付公钥 + // 支付平台公钥(签名校验使用) private volatile String keyPublic; //异步回调地址 private volatile String notifyUrl; diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayConfigStorage.java b/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayConfigStorage.java index cecc27e..fdbedf4 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayConfigStorage.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayConfigStorage.java @@ -67,20 +67,15 @@ import java.util.concurrent.locks.Lock; * @return 字符编码 */ String getInputCharset(); - /** - * 获取密钥 与 #getKeyPrivate 类似 - * @return 获取密钥 - */ - String getSecretKey(); /** - * 公钥 + * 支付平台公钥(签名校验使用) * @return 公钥 */ String getKeyPublic(); /** - * 私钥 + * 应用私钥(生成签名时使用) * @return 私钥 */ String getKeyPrivate(); diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/ApyAccount.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/ApyAccount.java index a22e19f..09fc1f2 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/ApyAccount.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/ApyAccount.java @@ -26,9 +26,9 @@ public class ApyAccount { // 应用id // @Column(name = "appid") private String appid; - // 支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5的情况 + // 支付平台公钥(签名校验使用),sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5的情况 private String publicKey; - // 支付私钥 + // 应用私钥(生成签名) // @Column(name = "private_key") private String privateKey; // 异步回调地址 diff --git a/pay-java-demo/src/main/resources/apy_account.sql b/pay-java-demo/src/main/resources/apy_account.sql index 6b4af0b..b61cb63 100644 --- a/pay-java-demo/src/main/resources/apy_account.sql +++ b/pay-java-demo/src/main/resources/apy_account.sql @@ -7,8 +7,8 @@ CREATE TABLE `pay_account` ( `pay_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '支付账号id', `partner` VARCHAR(32) DEFAULT NULL COMMENT '支付合作id,商户id,差不多是支付平台的账号或id', `appid` VARCHAR(32) DEFAULT NULL COMMENT '应用id', - `public_key` VARCHAR(1204) DEFAULT NULL COMMENT '支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况', - `private_key` VARCHAR(2048) DEFAULT NULL COMMENT '支付私钥', + `public_key` VARCHAR(1204) DEFAULT NULL COMMENT '支付平台公钥(签名校验使用),sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况', + `private_key` VARCHAR(2048) DEFAULT NULL COMMENT '应用私钥(生成签名)', `notify_url` VARCHAR(1024) DEFAULT NULL COMMENT '异步回调地址', `return_url` VARCHAR(1024) DEFAULT NULL COMMENT '同步回调地址', `seller` VARCHAR(256) DEFAULT NULL COMMENT '收款账号, 针对支付宝', diff --git a/pay-java-demo/src/main/webapp/index.html b/pay-java-demo/src/main/webapp/index.html index 58db5dd..4c499e5 100644 --- a/pay-java-demo/src/main/webapp/index.html +++ b/pay-java-demo/src/main/webapp/index.html @@ -17,9 +17,9 @@
应用id
- 支付公钥支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况 + 支付平台公钥(签名校验使用)支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况
- 支付私钥 + 应用私钥(生成签名)
异步回调地址友店支付用不到此参数,在友店管理端进行配置
@@ -30,6 +30,7 @@ 签名类型
编码类型(建议UTF-8) @@ -38,6 +39,7 @@ + 此处为开发者自定义,详情请查看 com.egzosn.pay.demo.entity.PayType
消息类型 支付公钥,sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5(友店支付除外)的情况
- 应用私钥(生成签名) + 应用私钥(生成签名使用)
异步回调地址友店支付用不到此参数,在友店管理端进行配置
From be92ed8e629db79d306e357d1f4385848bb11492 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:04:58 +0800 Subject: [PATCH 24/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d27062e..31b27e2 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ 服务端+网页端详细使用与简单教程请看 [pay-java-demo](pay-java-demo?dir=1&filepath=pay-java-demo) -android 例子 [pay-java-android](http://git.oschina.net/egzosn/pay-java-android) +android 例子 [pay-java-android](../pay-java-android) ##交流 From 880da275875426ac2b72e75c7c5671846e9e8e41 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:05:23 +0800 Subject: [PATCH 25/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 31b27e2..c1d33ff 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ 服务端+网页端详细使用与简单教程请看 [pay-java-demo](pay-java-demo?dir=1&filepath=pay-java-demo) -android 例子 [pay-java-android](../pay-java-android) +android 例子 [pay-java-android](/egzosn/pay-java-parent) ##交流 From a83091e18f2f7c0ab74db79e1a3f1faa918fa8ba Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:07:44 +0800 Subject: [PATCH 26/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c1d33ff..f838af8 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ 服务端+网页端详细使用与简单教程请看 [pay-java-demo](pay-java-demo?dir=1&filepath=pay-java-demo) -android 例子 [pay-java-android](/egzosn/pay-java-parent) +android 例子 [pay-java-android](//pay-java-android) ##交流 From 31813c4565e37565f945c7d056eef990ccd8dfd2 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:08:54 +0800 Subject: [PATCH 27/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f838af8..afc4fb0 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ 服务端+网页端详细使用与简单教程请看 [pay-java-demo](pay-java-demo?dir=1&filepath=pay-java-demo) -android 例子 [pay-java-android](//pay-java-android) +android 例子 [pay-java-android](/pay-java-android) ##交流 From 938749050b8461cec33b261200a7b80f4a5f4067 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:09:39 +0800 Subject: [PATCH 28/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index afc4fb0..845f6a7 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ 服务端+网页端详细使用与简单教程请看 [pay-java-demo](pay-java-demo?dir=1&filepath=pay-java-demo) -android 例子 [pay-java-android](/pay-java-android) +android 例子 [pay-java-android](../../pay-java-android) ##交流 From eaf95c3a0e17c2d215a41e33ff77e0f775292b55 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:11:26 +0800 Subject: [PATCH 29/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 845f6a7..d27062e 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ 服务端+网页端详细使用与简单教程请看 [pay-java-demo](pay-java-demo?dir=1&filepath=pay-java-demo) -android 例子 [pay-java-android](../../pay-java-android) +android 例子 [pay-java-android](http://git.oschina.net/egzosn/pay-java-android) ##交流 From 12b9d3eac34fcb46596908aa5b4cdd8a131ff60f Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 27 Jul 2017 17:15:22 +0800 Subject: [PATCH 30/31] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d27062e..3976d6d 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ android 例子 [pay-java-android](http://git.oschina.net/egzosn/pay-java-android ##交流 很希望更多志同道合友友一起扩展新的的支付接口。 -这里感谢[ouyangxiangshao](https://github.com/ouyangxiangshao) 与[Actinian](http://git.oschina.net/Actinia517) 所提交的安卓例子或者分支 +这里感谢[ouyangxiangshao](https://github.com/ouyangxiangshao),[ZhuangXiong](https://github.com/ZhuangXiong) 与[Actinian](http://git.oschina.net/Actinia517) 所提交的安卓例子或者分支 非常欢迎和感谢对本项目发起Pull Request的同学,不过本项目基于git flow开发流程,因此在发起Pull Request的时候请选择develop分支。 From f9e779f596e5c12d6d3c42cc40eff7e4cd53f0fb Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Fri, 28 Jul 2017 17:08:11 +0800 Subject: [PATCH 31/31] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/egzosn/pay/ali/api/AliPayConfigStorage.java | 4 ---- .../main/java/com/egzosn/pay/demo/entity/PayType.java | 3 +-- .../egzosn/pay/fuiou/api/FuiouPayConfigStorage.java | 10 ---------- .../pay/wx/youdian/api/WxYouDianPayConfigStorage.java | 9 +-------- .../java/com/egzosn/pay/wx/api/WxPayConfigStorage.java | 5 +---- 5 files changed, 3 insertions(+), 28 deletions(-) diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java index 7198174..afa187b 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java @@ -33,10 +33,6 @@ public class AliPayConfigStorage extends BasePayConfigStorage { this.aliPublicKey = aliPublicKey; } - @Override - public String getSecretKey() { - return aliPublicKey; - } public void setAppId(String appId) { diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/PayType.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/PayType.java index 23bbd9a..6b456b6 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/PayType.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/entity/PayType.java @@ -69,7 +69,6 @@ public enum PayType implements BasePayType { public PayService getPayService(ApyAccount apyAccount) { WxPayConfigStorage wxPayConfigStorage = new WxPayConfigStorage(); wxPayConfigStorage.setMchId(apyAccount.getPartner()); - wxPayConfigStorage.setAppSecret(apyAccount.getPublicKey()); wxPayConfigStorage.setKeyPublic(apyAccount.getPublicKey()); wxPayConfigStorage.setAppid(apyAccount.getAppid()); wxPayConfigStorage.setKeyPrivate(apyAccount.getPrivateKey()); @@ -127,6 +126,7 @@ public enum PayType implements BasePayType { @Override public PayService getPayService(ApyAccount apyAccount) { FuiouPayConfigStorage fuiouPayConfigStorage = new FuiouPayConfigStorage(); + fuiouPayConfigStorage.setKeyPublic(apyAccount.getPublicKey()); fuiouPayConfigStorage.setKeyPrivate(apyAccount.getPrivateKey()); fuiouPayConfigStorage.setNotifyUrl(apyAccount.getNotifyUrl()); fuiouPayConfigStorage.setReturnUrl(apyAccount.getReturnUrl()); @@ -140,7 +140,6 @@ public enum PayType implements BasePayType { @Override public TransactionType getTransactionType(String transactionType) { - // in.egan.pay.ali.before.bean.AliTransactionType 17年更新的版本,旧版本请自行切换 return FuiouTransactionType.valueOf(transactionType); } diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java index 498e94b..db69a38 100644 --- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java +++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayConfigStorage.java @@ -10,7 +10,6 @@ import com.egzosn.pay.common.api.BasePayConfigStorage; public class FuiouPayConfigStorage extends BasePayConfigStorage { public String mchntCd;//商户代码 - public String mchntKey;//商户密钥 /** * 应用id @@ -54,13 +53,4 @@ public class FuiouPayConfigStorage extends BasePayConfigStorage { return null; } - @Override - public String getSecretKey() { - return super.getKeyPrivate(); - } - - public void setSecretKey(String mchntKey){ - this.mchntKey = mchntKey; - setKeyPrivate(mchntKey); - } } diff --git a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java index a5bd59c..e42d1cb 100644 --- a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java +++ b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayConfigStorage.java @@ -11,20 +11,13 @@ import com.egzosn.pay.common.api.BasePayConfigStorage; */ public class WxYouDianPayConfigStorage extends BasePayConfigStorage { - public volatile String secretKey; + //账号 public volatile String seller; - public void setSecretKey(String secretKey) { - this.secretKey = secretKey; - } - @Override - public String getSecretKey() { - return secretKey; - } @Override diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayConfigStorage.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayConfigStorage.java index 1eaf01a..bac1615 100644 --- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayConfigStorage.java +++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayConfigStorage.java @@ -20,10 +20,7 @@ public class WxPayConfigStorage extends BasePayConfigStorage { public String mchId; - @Override - public String getSecretKey() { - return appSecret; - } + public void setAppSecret(String appSecret) { this.appSecret = appSecret;