From 84db62345692b2e134bb103049f6ae173d7776a0 Mon Sep 17 00:00:00 2001
From: Fuzx <412605202@qq.com>
Date: Thu, 25 Jan 2018 09:37:58 +0800
Subject: [PATCH] =?UTF-8?q?1.Payoneer=20=E6=8E=A5=E5=8F=A3=E5=88=9D?=
=?UTF-8?q?=E6=AD=A5=E5=AE=8C=E6=88=90?=
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/common/api/AdvancedPayService.java | 2 +-
.../pay/common/http/HttpRequestTemplate.java | 118 +++++-------------
pay-java-demo/pom.xml | 2 +-
.../pay/demo/controller/PayController.java | 6 +-
.../pay/demo/dao/ApyAccountRepository.java | 1 +
pay-java-fuiou/pom.xml | 2 +-
.../java/com/egzosn/pay/payoneer/Test.java | 30 +++--
.../pay/payoneer/api/PayoneerPayService.java | 14 +--
.../payoneer/bean/PayoneerRequestBean.java | 13 +-
pay-java-union/pom.xml | 2 +-
pay-java-wx-youdian/pom.xml | 2 +-
pay-java-wx/pom.xml | 2 +-
14 files changed, 76 insertions(+), 122 deletions(-)
diff --git a/pay-java-ali/pom.xml b/pay-java-ali/pom.xml
index 97f86f5..f1d2256 100644
--- a/pay-java-ali/pom.xml
+++ b/pay-java-ali/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.6
+ 2.0.7-SNAPSHOT
4.0.0
pay-java-ali
diff --git a/pay-java-common/pom.xml b/pay-java-common/pom.xml
index 30aeb65..84efcdf 100644
--- a/pay-java-common/pom.xml
+++ b/pay-java-common/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.6
+ 2.0.7-SNAPSHOT
4.0.0
jar
diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/api/AdvancedPayService.java b/pay-java-common/src/main/java/com/egzosn/pay/common/api/AdvancedPayService.java
index f45d8da..dc1e5ee 100644
--- a/pay-java-common/src/main/java/com/egzosn/pay/common/api/AdvancedPayService.java
+++ b/pay-java-common/src/main/java/com/egzosn/pay/common/api/AdvancedPayService.java
@@ -28,5 +28,5 @@ public interface AdvancedPayService extends PayService{
* @param payOrder 订单信息
* @return 返回请求结果
*/
- Map charge(String payeeId,PayOrder payOrder);
+ Map charges(String payeeId,PayOrder payOrder);
}
diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/http/HttpRequestTemplate.java b/pay-java-common/src/main/java/com/egzosn/pay/common/http/HttpRequestTemplate.java
index c73c696..a566a80 100644
--- a/pay-java-common/src/main/java/com/egzosn/pay/common/http/HttpRequestTemplate.java
+++ b/pay-java-common/src/main/java/com/egzosn/pay/common/http/HttpRequestTemplate.java
@@ -1,33 +1,26 @@
package com.egzosn.pay.common.http;
-import com.alibaba.fastjson.JSON;
import com.egzosn.pay.common.bean.MethodType;
import com.egzosn.pay.common.util.str.StringUtils;
+import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.AuthCache;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.conn.ssl.DefaultHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
-import org.apache.http.entity.ContentType;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.auth.BasicScheme;
-import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
-import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import java.io.*;
import java.net.URI;
import java.security.GeneralSecurityException;
import java.security.KeyStore;
+import java.util.List;
import java.util.Map;
/**
@@ -115,9 +108,9 @@ public class HttpRequestTemplate {
if (StringUtils.isNotBlank(configStorage.getHttpProxyHost())) {
- URI uri = URI.create(configStorage.getHttpProxyHost());
+// URI uri = URI.create(configStorage.getHttpProxyHost());
//http代理地址设置
- httpProxy = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme());;
+ httpProxy = new HttpHost(configStorage.getHttpProxyHost(),configStorage.httpProxyPort);;
}
@@ -128,7 +121,7 @@ public class HttpRequestTemplate {
// 需要用户认证的代理服务器
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
- new AuthScope(httpProxy.getHostName(), httpProxy.getPort()),
+ AuthScope.ANY,
new UsernamePasswordCredentials(configStorage.getHttpProxyUsername(), configStorage.getHttpProxyPassword()));
@@ -178,14 +171,15 @@ public class HttpRequestTemplate {
public T postForObject(String uri, Object request, Class responseType, Map uriVariables) {
return doExecute(URI.create(UriVariables.getUri(uri, uriVariables)), request, responseType, MethodType.POST);
}
- public T postForObjectAndBasicAuth(String uri, Object request, Class responseType, Object... uriVariables) {
- return doExecuteAndBasicAuth(URI.create(UriVariables.getUri(uri, uriVariables)), request, responseType, MethodType.POST);
- }
public T postForObject(URI uri, Object request, Class responseType){
return doExecute(uri, request, responseType, MethodType.POST);
}
+ public T postForObject(String uri, Object request, List headeres, Class responseType, Object... uriVariables){
+ return doExecute(URI.create(UriVariables.getUri(uri, uriVariables)), request,headeres, responseType, MethodType.POST);
+ }
+
/**
@@ -239,11 +233,28 @@ public class HttpRequestTemplate {
*/
public T doExecute(URI uri, Object request, Class responseType, MethodType method){
ClientHttpRequest httpRequest = new ClientHttpRequest(uri ,method, request);
- httpRequest.setProxy(httpProxy).setResponseType(responseType);
-
+ httpRequest.setResponseType(responseType);
try (CloseableHttpResponse response = httpClient.execute(httpRequest)) {
return httpRequest.handleResponse(response);
- }catch ( IOException e){
+ }catch (IOException e){
+ e.printStackTrace();
+ }finally {
+ httpRequest.releaseConnection();
+ }
+ return null;
+ }
+
+ public T doExecute(URI uri, Object request, List headers, Class responseType, MethodType method){
+ ClientHttpRequest httpRequest = new ClientHttpRequest(uri ,method, request);
+ httpRequest.setResponseType(responseType);
+ if(headers != null){
+ for(Header header : headers){
+ httpRequest.addHeader(header);
+ }
+ }
+ try (CloseableHttpResponse response = httpClient.execute(httpRequest)) {
+ return httpRequest.handleResponse(response);
+ }catch (IOException e){
e.printStackTrace();
}finally {
httpRequest.releaseConnection();
@@ -251,51 +262,6 @@ public class HttpRequestTemplate {
return null;
}
- /**
- * http 请求执行
- * @param uri 地址
- * @param request 请求数据
- * @param responseType 响应类型
- * @param method 请求方法
- * @param 响应类型
- * @return 类型对象
- */
- public T doExecuteAndBasicAuth(URI uri, Object request, Class responseType, MethodType method){
- //todo 研究研究
- CredentialsProvider credsProvider = new BasicCredentialsProvider();
- credsProvider.setCredentials(
- new AuthScope(uri.getHost(), uri.getPort()),
- new UsernamePasswordCredentials("Huodull6190", "12BkDT8152Zj"));
-
- CloseableHttpClient hc = HttpClients.custom()
- .setDefaultCredentialsProvider(credsProvider).build();
-
-// ClientHttpRequest httpRequest = new ClientHttpRequest(uri ,method, request);
-// httpRequest.setProxy(httpProxy).setResponseType(responseType);
- AuthCache authCache = new BasicAuthCache();
- BasicScheme basicAuth = new BasicScheme();
- HttpHost host = new HttpHost(uri.getHost(),uri.getPort(),uri.getScheme());
- authCache.put(host, basicAuth);
-
- HttpClientContext context = HttpClientContext.create();
-// context.setCredentialsProvider(credsProvider);
- context.setAuthCache(authCache);
-
- HttpPost httpPost = new HttpPost(uri.toString());
- StringEntity entity = new StringEntity(JSON.toJSONString(request), ContentType.APPLICATION_JSON);
- httpPost.setEntity(entity);
-
- try (CloseableHttpResponse response = hc.execute(host,httpPost,context)) {
-
- return (T)JSON.parseObject(EntityUtils.toString(response.getEntity()));
- }catch ( IOException e){
- e.printStackTrace();
- }finally {
- httpPost.releaseConnection();
- }
- return null;
- }
-
/**
* http 请求执行
* @param uri 地址
@@ -308,30 +274,4 @@ public class HttpRequestTemplate {
public T doExecute(String uri, Object request, Class responseType, MethodType method){
return doExecute(URI.create(uri), request, responseType, method);
}
-
- /**
- * 创建Basic Auth
- * @param uri
-// * @param username
-// * @param password
- * @return
- */
- private HttpClientContext createBasicAuthContext(URI uri) {
-// CredentialsProvider credsProvider = new BasicCredentialsProvider();
-// Credentials defaultCreds = new UsernamePasswordCredentials(username, password);
-// credsProvider.setCredentials(new AuthScope(uri.getHost(), uri.getPort()), defaultCreds);
-
- AuthCache authCache = new BasicAuthCache();
- BasicScheme basicAuth = new BasicScheme();
- HttpHost host = new HttpHost(uri.getHost(),uri.getPort(),uri.getScheme());
- authCache.put(host, basicAuth);
-
- HttpClientContext context = HttpClientContext.create();
-// context.setCredentialsProvider(credsProvider);
- context.setAuthCache(authCache);
- return context;
- }
-
-
-
}
diff --git a/pay-java-demo/pom.xml b/pay-java-demo/pom.xml
index c4830b4..b82db34 100644
--- a/pay-java-demo/pom.xml
+++ b/pay-java-demo/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.6
+ 2.0.7-SNAPSHOT
4.0.0
war
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 3eb8305..7b58a6b 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
@@ -76,11 +76,11 @@ public class PayController {
* @param payOrder 订单信息
* @return 收款请求结果
*/
- @RequestMapping("charge")
- public Map charge(Integer payId,String payeeId,PayOrder payOrder){
+ @RequestMapping("charges")
+ public Map charges(Integer payId,String payeeId,PayOrder payOrder){
PayResponse payResponse = service.getPayResponse(payId);
PayoneerPayService service = (PayoneerPayService) payResponse.getService();
- return service.charge(payeeId,payOrder);
+ return service.charges(payeeId,payOrder);
}
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 f212923..d43e5a1 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
@@ -107,6 +107,7 @@ public class ApyAccountRepository {
apyAccount5.setInputCharset("UTF-8");
apyAccount5.setPayType(PayType.payoneer);
apyAccount5.setMsgType(MsgType.json);
+ apyAccount5.setTest(true);
apyAccounts.put(apyAccount5.getPayId(), apyAccount5);
}
//_____________________________________________________________
diff --git a/pay-java-fuiou/pom.xml b/pay-java-fuiou/pom.xml
index 7d0448b..70cf625 100644
--- a/pay-java-fuiou/pom.xml
+++ b/pay-java-fuiou/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.6
+ 2.0.7-SNAPSHOT
4.0.0
pay-java-fuiou
diff --git a/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/Test.java b/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/Test.java
index c35f0c3..514c078 100644
--- a/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/Test.java
+++ b/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/Test.java
@@ -1,7 +1,8 @@
-package com.egzosn.pay.common.http;
+package com.egzosn.pay.payoneer;
import com.alibaba.fastjson.JSON;
-import org.apache.http.HttpEntity;
+import com.egzosn.pay.common.bean.CurType;
+import com.egzosn.pay.payoneer.bean.PayoneerRequestBean;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
@@ -32,14 +33,19 @@ import java.net.URI;
public class Test {
public static void main(String[] args) throws Exception {
- URI uri = URI.create("https://api.sandbox.payoneer.com/v2/programs/100086190/payees/login-link");
+// URI uri = URI.create("https://api.sandbox.payoneer.com/v2/programs/100086190/payees/registration-link");
+ URI uri = URI.create("https://api.sandbox.payoneer.com/v2/programs/100086190/charges");
HttpHost target = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme());
+ HttpPost httpPost = new HttpPost(uri.toString());
+
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
- new AuthScope(target.getHostName(), target.getPort()),
+ new AuthScope(uri.getHost(), uri.getPort()),
new UsernamePasswordCredentials("Huodull6190", "12BkDT8152Zj"));
+
CloseableHttpClient httpclient = HttpClients.custom()
- .setDefaultCredentialsProvider(credsProvider).build();
+ .setDefaultCredentialsProvider(credsProvider)
+ .build();
try {
// Create AuthCache instance
@@ -51,14 +57,20 @@ public class Test {
// Add AuthCache to the execution context
HttpClientContext localContext = HttpClientContext.create();
+// localContext.setCredentialsProvider(credsProvider);
localContext.setAuthCache(authCache);
- HttpPost httpPost = new HttpPost("https://api.sandbox.payoneer.com/v2/programs/100086190/payees/login-link");
- StringEntity entity = new StringEntity(JSON.toJSONString(Pay), ContentType.APPLICATION_JSON);
+// BasicHttpContext localContext = new BasicHttpContext();
+// localContext.setAttribute(ClientContext.AUTH_CACHE,authCache);
+
+// PayoneerRequestBean bean = new PayoneerRequestBean("666");
+ PayoneerRequestBean bean = new PayoneerRequestBean("6666","1","566002", CurType.USD,"66");
+ StringEntity entity = new StringEntity(JSON.toJSONString(bean), ContentType.APPLICATION_JSON);
+ httpPost.setEntity(entity);
+
- httpPost.setEntity();
System.out.println("Executing request " + httpPost.getRequestLine() + " to target " + target);
- for (int i = 0; i < 3; i++) {
+ for (int i = 0; i < 1; i++) {
CloseableHttpResponse response = httpclient.execute(target, httpPost, localContext);
try {
System.out.println("----------------------------------------");
diff --git a/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/api/PayoneerPayService.java b/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/api/PayoneerPayService.java
index acab0b2..5851cf6 100644
--- a/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/api/PayoneerPayService.java
+++ b/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/api/PayoneerPayService.java
@@ -106,8 +106,8 @@ public class PayoneerPayService extends BasePayService implements AdvancedPaySer
* @return 返回请求结果
*/
@Override
- public Map charge(String payeeId,PayOrder payOrder){
- PayoneerRequestBean params = new PayoneerRequestBean(payeeId,payOrder.getPrice(),payOrder.getOutTradeNo(),payOrder.getCurType(),payOrder.getBody());
+ public Map charges(String payeeId,PayOrder payOrder){
+ PayoneerRequestBean params = new PayoneerRequestBean(payeeId,payOrder.getPrice().toString(),payOrder.getOutTradeNo(),payOrder.getCurType(),payOrder.getBody());
JSONObject response = getHttpRequestTemplate().postForObject(getUrlChargesLink(),params,JSONObject.class);
if(response != null && "0".equals(response.getString("code"))){
return response;
@@ -429,22 +429,22 @@ public class PayoneerPayService extends BasePayService implements AdvancedPaySer
}
public String getUrlLoginLink() {
- return payConfigStorage.isTest()?SANDBOX_DOMAIN+urlLoginLink:RELEASE_DOMAIN+urlLoginLink;
+ return (payConfigStorage.isTest()?SANDBOX_DOMAIN:RELEASE_DOMAIN)+urlLoginLink;
}
public String getUrlRegistrationLink() {
- return payConfigStorage.isTest()?SANDBOX_DOMAIN+urlRegistrationLink:RELEASE_DOMAIN+urlRegistrationLink;
+ return (payConfigStorage.isTest()?SANDBOX_DOMAIN:RELEASE_DOMAIN)+urlRegistrationLink;
}
public String getUrlChargesLink() {
- return payConfigStorage.isTest()?SANDBOX_DOMAIN+urlChargesLink:RELEASE_DOMAIN+urlChargesLink;
+ return (payConfigStorage.isTest()?SANDBOX_DOMAIN:RELEASE_DOMAIN)+urlChargesLink;
}
public String getUrlCancelChargesLink() {
- return payConfigStorage.isTest()?SANDBOX_DOMAIN+urlCancelChargesLink:RELEASE_DOMAIN+urlCancelChargesLink;
+ return (payConfigStorage.isTest()?SANDBOX_DOMAIN:RELEASE_DOMAIN)+urlCancelChargesLink;
}
public String getUrlStatusLink() {
- return payConfigStorage.isTest()?SANDBOX_DOMAIN+urlStatusLink:RELEASE_DOMAIN+urlStatusLink;
+ return (payConfigStorage.isTest()?SANDBOX_DOMAIN:RELEASE_DOMAIN)+urlStatusLink;
}
}
diff --git a/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/bean/PayoneerRequestBean.java b/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/bean/PayoneerRequestBean.java
index a88155b..d4d8862 100644
--- a/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/bean/PayoneerRequestBean.java
+++ b/pay-java-payoneer/src/main/java/com/egzosn/pay/payoneer/bean/PayoneerRequestBean.java
@@ -3,8 +3,6 @@ package com.egzosn.pay.payoneer.bean;
import com.alibaba.fastjson.annotation.JSONField;
import com.egzosn.pay.common.bean.CurType;
-import java.math.BigDecimal;
-
/**
* @author Fuzx
* @create 2018 2018/1/22 0022
@@ -14,7 +12,10 @@ public class PayoneerRequestBean {
}
- public PayoneerRequestBean(String payeeId, BigDecimal amount, String clientReferenceId, CurType currency, String description) {
+ public PayoneerRequestBean(String payeeId) {
+ this.payeeId = payeeId;
+ }
+ public PayoneerRequestBean(String payeeId, String amount, String clientReferenceId, CurType currency, String description) {
this.payeeId = payeeId;
this.amount = amount;
this.clientReferenceId = clientReferenceId;
@@ -30,7 +31,7 @@ public class PayoneerRequestBean {
/**
* 收款金额
*/
- private BigDecimal amount;
+ private String amount;
/**
* 订单id
*/
@@ -53,11 +54,11 @@ public class PayoneerRequestBean {
this.payeeId = payeeId;
}
- public BigDecimal getAmount() {
+ public String getAmount() {
return amount;
}
- public void setAmount(BigDecimal amount) {
+ public void setAmount(String amount) {
this.amount = amount;
}
diff --git a/pay-java-union/pom.xml b/pay-java-union/pom.xml
index b17afb9..5eac662 100644
--- a/pay-java-union/pom.xml
+++ b/pay-java-union/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.6
+ 2.0.7-SNAPSHOT
4.0.0
diff --git a/pay-java-wx-youdian/pom.xml b/pay-java-wx-youdian/pom.xml
index e6c1cea..efbe4a7 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.6
+ 2.0.7-SNAPSHOT
4.0.0
pay-java-wx-youdian
diff --git a/pay-java-wx/pom.xml b/pay-java-wx/pom.xml
index 381e7dd..32827f7 100644
--- a/pay-java-wx/pom.xml
+++ b/pay-java-wx/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.6
+ 2.0.7-SNAPSHOT
4.0.0
pay-java-wx