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