From efbd81a9433e4cf5cde0092464070edaf1267694 Mon Sep 17 00:00:00 2001 From: "egzosn@gmail.com" <930928lI1> Date: Thu, 28 Sep 2017 10:01:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=94=AF=E4=BB=98=E6=95=99?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pay-java-ali/README.md | 29 +++++++ .../pay/ali/api/AliPayConfigStorage.java | 2 +- .../com/egzosn/pay/ali/api/AliPayService.java | 3 +- pay-java-common/pom.xml | 1 + .../pay/common/http/ClientHttpRequest.java | 1 + .../pay/demo/dao/ApyAccountRepository.java | 19 +++-- .../egzosn/pay/demo/service/PayResponse.java | 20 ++--- pay-java-union/pom.xml | 24 ++++++ .../pay/union/api/UnionPayConfigStorage.java | 85 +++++++++++++++++++ pay-java-wx/README.md | 29 ++++++- .../egzosn/pay/wx/api/WxPayConfigStorage.java | 2 +- .../com/egzosn/pay/wx/api/WxPayService.java | 3 +- pom.xml | 1 + 13 files changed, 194 insertions(+), 25 deletions(-) create mode 100644 pay-java-union/pom.xml create mode 100644 pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java diff --git a/pay-java-ali/README.md b/pay-java-ali/README.md index 2f74608..f1219ba 100644 --- a/pay-java-ali/README.md +++ b/pay-java-ali/README.md @@ -23,6 +23,32 @@ ``` +#### 网络请求配置 + +```java + + HttpConfigStorage httpConfigStorage = new HttpConfigStorage(); + /* 网路代理配置 根据需求进行设置**/ + //http代理地址 + httpConfigStorage.setHttpProxyHost("192.168.1.69"); + //代理端口 + httpConfigStorage.setHttpProxyPort(3308); + //代理用户名 + httpConfigStorage.setHttpProxyUsername("user"); + //代理密码 + httpConfigStorage.setHttpProxyPassword("password"); + /* /网路代理配置 根据需求进行设置**/ + + /* 网络请求ssl证书 根据需求进行设置**/ + //设置ssl证书路径 + httpConfigStorage.setKeystorePath("证书绝对路径"); + //设置ssl证书对应的密码 + httpConfigStorage.setStorePassword("证书对应的密码"); + /* /网络请求ssl证书**/ + +``` + + ####创建支付服务 @@ -30,6 +56,9 @@ //支付服务 PayService service = new AliPayService(aliPayConfigStorage); + //设置网络请求配置根据需求进行设置 + //service.setRequestTemplateConfigStorage(httpConfigStorage) + ``` ####创建支付订单信息 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 afa187b..8598b24 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 @@ -3,7 +3,7 @@ package com.egzosn.pay.ali.api; import com.egzosn.pay.common.api.BasePayConfigStorage; /** - * 支付客户端配置存储 + * 支付配置存储 * author egan * * email egzosn@gmail.com 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 65506bb..a09aed9 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 @@ -23,7 +23,7 @@ import java.text.SimpleDateFormat; import java.util.*; /** - * 支付宝支付通知 + * 支付宝支付服务 * @author egan * * email egzosn@gmail.com @@ -293,7 +293,6 @@ public class AliPayService extends BasePayService { /** * 生成二维码支付 - * 暂未实现或无此功能 * @param order 发起支付的订单信息 * @return 返回图片信息,支付时需要的 */ diff --git a/pay-java-common/pom.xml b/pay-java-common/pom.xml index 15ea70e..af7381f 100644 --- a/pay-java-common/pom.xml +++ b/pay-java-common/pom.xml @@ -34,6 +34,7 @@ log4j log4j + 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 85ecb23..a0673b8 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 @@ -121,6 +121,7 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme } + @Override public T handleResponse(HttpResponse response) throws ClientProtocolException, IOException { final StatusLine statusLine = response.getStatusLine(); 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 a294e70..1d59f06 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 @@ -48,18 +48,21 @@ public class ApyAccountRepository { ApyAccount apyAccount2 = new ApyAccount(); apyAccount2.setPayId(2); - apyAccount2.setPartner("208******978307"); - apyAccount2.setAppid("201*******73474"); - apyAccount2.setPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ*********VGi60j8Ue1efIlzPXV9je9Hf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmR"); - apyAccount2.setPrivateKey("MIICdwIBADANm**********Zpmz2oK8dAxH/iqyqxb4r9IODsMgzziNBgkqhkiG9w0BAQEFAASCAcmBhTDnqQZE0jeJ9yTAemSqJefIMHBTG+MvONrWg"); - apyAccount2.setNotifyUrl("http://pay.egan.in/payBack2.json"); - // 无需同步回调可不填 app填这个就可以 - apyAccount2.setReturnUrl("m.alipay.com"); - apyAccount2.setSeller("egzosn@gmail.com"); + apyAccount2.setPartner("2088102169916436"); + apyAccount2.setAppid("2016080400165436"); + // TODO 2017/2/9 16:20 author: egan sign_type只有单一key时public_key与private_key相等,比如sign_type=MD5的情况 + apyAccount2.setPublicKey("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtIlhP1ju6g7fMIcp5cR+v7bk7RUI+irR3HUm0en39K/UnGByAulGFLZU9//IwIu3xCTfGkRHWV8v9iMJhNmxWqbxwehblTCl4f4uEDz9nECc1QzOesGPx6nMsbAx8+3j/Z2p1OCk+Gszs/nUBEjVY/l8NOQoE5kENyWl0WBTFPPONWm8V02YO8dNx0u29egh0dk17OeS+i5G0F+OY7xWnfjSrOqPYAtoo9ccEQUIbhiWz5X3TqmkzjNL3JojsvrymLym97z0COYfl1RlP8tqYhNKLM0FmVndRfcO9HgTx1mO4tj2hsDZN/AnAb3vULaMlESxIg+i6yUBpEOiwj+zLQIDAQAB"); + apyAccount2.setPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCKA8XdHGExkLnb2Z3mF+6HQUorznXT0XE0GDiRtR+bIM/lE1o6UvAi2vSL5VT1Ob2+yzaSB2zDbfZJrzWcWveU8emN/xVd/yodUbzWnSQkI0k7suLeZDDCcxjT3g5JFSbcWmUec+OFt4n3Ymvrz0rriXfMV4MYlAmru+2UpiyA18SPXUiWWtHXhM4mJ5qAK6Xy2Xpg8fbqcbBLnV5GMipzno2VU0K1WKSe0qhOjPN7vvyZcRXRo5HGd76/Dhc/LhWgM/Ff2oaqQWhSo0tj33/2xmOLxueZaJw5Tx6sBxaBpIaX1huASmeFNgRNb1hSUwbVqkJKuvyEMQvTcz+9wqd9AgMBAAECggEAbtec33ndbUtImZLqx1LNFP+QrCICa324JxiUxiDrI1F05gtm2ZSmm7ex03D5jIE1LLhUOW+RIFt+A6udqNc+I/ctlgcZiAZYMnfk65AE6KkWNcXzgpyAtIpvlCiw3G0KasqGj7CPOGMxgOcguaAgEY60Ef7uoJy0L6KcqlfTQh3X26lHSyduTT/eFQmGstNnfZSnoSgdWoGYJcYwxeI/FZM/AF+qQxqurrB/MWihA+41dko2s+pG/gsnv3JtPiU7uxmzIhkKKo34bNgne6YtLibzamSe2RQNnqRykasrKEibtrUtFoyyzHRhUEjhW4la9je0H3weeyEIqYYrwq3kmQKBgQDUpKh2rmj54ovN7YAk0RkFj495od7IKN4EXRfjeiZHVrsJ97LNzYh2ldh8LRuHOGNP1jI5lBA6UL+VdjObtAiP0a3i5mLgREQ6vU4aQVEgVXiFTiFpgiwURHk3uX7S7DiOolvChmO9UTR91vaATMsTo4/uBLAkC0tQhxLrP/LAIwKBgQCmJ7tBQ9PgKeZCVcfEJQTSUwYeQD+TozjmkBCyn4S6U3pntZAj9XTUVKRiu1pvRCZZ8xjSHQ+xut8wcO4cBCUxSslDWD84HAAj5Aae80Ws7vBq6gS9G3ko1kVxLOOfA/74rB49BUEOcx9P6E2MWVSYhvtzyPvYi0PvLDQGRx2j3wKBgCRzPTVq3C/Jd7GK/qZQ+XsMismMx8WDy9rvokKqE5my8kjZHttMWhIJyZwvl0Jslgl/bAiWqtl0MgMKyfnsuHL+vFHisBxFV3TCMnspqyBhxlEDfZK6b5fhzO2SbHz3ZRJ+HkCQDNTM8LSJfqOrhjwNk4R3ZUIodXaOUN3mjlQFAoGASUJ7betaIBxZSiZITlOELLgummf5oD73d7FNq3RqMT1dWxzS0QgI2xX25RF2bli+ECr/ZqUpplOe1Nz2H6Q0QeeXlfny5epypWCFCtB4iCdSGdHVBQx3/2l6dMw2EIbShRJewsjuRlC8HZ9vkdJRWm8pr4OOh4vgCDSVO69fgkECgYEA0sjX815xMCwO1PDf+7/DNfJ5a2bYdMkVRe6y6a/Dzf83bJDdYZsOKlmSim49kPKEYU9MAT6Mst0Et9GpbzYDIZ4wj6aL01ckYvI42nhn2iylzYz+rOsg8mircFVcwiOh27BoNm8xpMFNzaY743gn37B8n3PaFboXWMO96y2rl8k="); + apyAccount2.setNotifyUrl("http://pay.egan.in/payBack1.json"); + // 无需同步回调可不填 + apyAccount2.setReturnUrl("http://192.168.1.58:9096/payBack2.json"); apyAccount2.setInputCharset("UTF-8"); + apyAccount2.setSeller("2088102169916436"); apyAccount2.setSignType(SignUtils.RSA2.name()); apyAccount2.setPayType(PayType.aliPay); apyAccount2.setMsgType(MsgType.text); + //设置测试环境 + apyAccount2.setTest(true); apyAccounts.put(apyAccount2.getPayId(), apyAccount2); ApyAccount apyAccount3 = new ApyAccount(); diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/service/PayResponse.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/service/PayResponse.java index dc3391a..e556fa1 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/service/PayResponse.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/service/PayResponse.java @@ -64,17 +64,17 @@ public class PayResponse { */ public HttpConfigStorage getHttpConfigStorage(ApyAccount apyAccount){ HttpConfigStorage httpConfigStorage = new HttpConfigStorage(); - /* - //http代理地址 - httpConfigStorage.setHttpProxyHost("192.168.1.69"); - //代理端口 - httpConfigStorage.setHttpProxyPort(3308); - //代理用户名 - httpConfigStorage.setHttpProxyUsername("user"); - //代理密码 - httpConfigStorage.setHttpProxyPassword("password"); + /* 网路代理配置 根据需求进行设置*/ +// //http代理地址 +// httpConfigStorage.setHttpProxyHost("192.168.1.69"); +// //代理端口 +// httpConfigStorage.setHttpProxyPort(3308); +// //代理用户名 +// httpConfigStorage.setHttpProxyUsername("user"); +// //代理密码 +// httpConfigStorage.setHttpProxyPassword("password"); + - */ //设置ssl证书路径 httpConfigStorage.setKeystorePath(apyAccount.getKeystorePath()); //设置ssl证书对应的密码 diff --git a/pay-java-union/pom.xml b/pay-java-union/pom.xml new file mode 100644 index 0000000..ea9810e --- /dev/null +++ b/pay-java-union/pom.xml @@ -0,0 +1,24 @@ + + + + pay-java-parent + com.egzosn + 2.0.4-SNAPSHOT + + 4.0.0 + + pay-java-union + + + + + + com.egzosn + pay-java-common + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..0b847ee --- /dev/null +++ b/pay-java-union/src/main/java/com/egzosn/pay/union/api/UnionPayConfigStorage.java @@ -0,0 +1,85 @@ +package com.egzosn.pay.union.api; + +import com.egzosn.pay.common.api.BasePayConfigStorage; + +/** + * 支付客户端配置存储 + * author egan + * + * email egzosn@gmail.com + * date 2016-5-18 14:09:01 + */ +public class UnionPayConfigStorage extends BasePayConfigStorage { + + // 商户PID + public volatile String merId ; + // 商户签约拿到的pid,partner_id的简称,合作伙伴身份等同于 partner + public volatile String pid ; + //partner_id的简称,合作伙伴身份 +// public volatile String partner ; + + // 商户收款账号 + public volatile String seller; + //公钥 + private volatile String aliPublicKey; + //全渠道固定值 + public static String version = "5.0.0"; + + public String getAliPublicKey() { + return aliPublicKey; + } + + public void setAliPublicKey(String aliPublicKey) { + setKeyPublic(aliPublicKey); + this.aliPublicKey = aliPublicKey; + } + + + + @Override + public String getAppid() { + return null; + } + + /** + * @see #getPid() + * @return 合作者id + */ + @Deprecated + @Override + public String getPartner() { + return pid; + } + + + /** + * 设置合作者id + * @see #setPid(String) + * @param partner 合作者id + */ + @Deprecated + public void setPartner(String partner) { + this.pid = partner; + } + + @Override + public String getPid() { + return pid; + } + + public void setPid(String pid) { + this.pid = pid; + } + + public String getSeller() { + return seller; + } + + public void setSeller(String seller) { + this.seller = seller; + } + + + + +} diff --git a/pay-java-wx/README.md b/pay-java-wx/README.md index 092e31d..eccad0f 100644 --- a/pay-java-wx/README.md +++ b/pay-java-wx/README.md @@ -20,14 +20,41 @@ ``` +#### 网络请求配置 + +```java + + HttpConfigStorage httpConfigStorage = new HttpConfigStorage(); + /* 网路代理配置 根据需求进行设置**/ + //http代理地址 + httpConfigStorage.setHttpProxyHost("192.168.1.69"); + //代理端口 + httpConfigStorage.setHttpProxyPort(3308); + //代理用户名 + httpConfigStorage.setHttpProxyUsername("user"); + //代理密码 + httpConfigStorage.setHttpProxyPassword("password"); + /* /网路代理配置 根据需求进行设置**/ + + /* 网络请求ssl证书 根据需求进行设置**/ + //设置ssl证书路径 + httpConfigStorage.setKeystorePath("证书绝对路径"); + //设置ssl证书对应的密码 + httpConfigStorage.setStorePassword("证书对应的密码"); + /* /网络请求ssl证书**/ + +``` ####创建支付服务 -```java +```java //支付服务 PayService service = new WxPayService(wxPayConfigStorage); + //设置网络请求配置根据需求进行设置 + //service.setRequestTemplateConfigStorage(httpConfigStorage) + ``` ####创建支付订单信息 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 bac1615..a4afd52 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 @@ -3,7 +3,7 @@ package com.egzosn.pay.wx.api; import com.egzosn.pay.common.api.BasePayConfigStorage; /** - * 支付客户端配置存储 + * 微信配置存储 * @author egan * *
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 41d03de..58a6c0e 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
@@ -24,7 +24,7 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
- *  支付宝支付通知
+ *   微信支付服务
  * @author  egan
  * 
  * email egzosn@gmail.com
@@ -320,7 +320,6 @@ public class WxPayService extends BasePayService {
 
     /**
      * 获取输出二维码,用户返回给支付端,
-     * 暂未实现或无此功能
      * @param order 发起支付的订单信息
      * @return 返回图片信息,支付时需要的
      */
diff --git a/pom.xml b/pom.xml
index a53b228..7f6889d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,7 @@
         pay-java-wx-youdian
         pay-java-fuiou
         pay-java-demo
+        pay-java-union