类预订单泛型约束本版本暂时移除

This commit is contained in:
egzosn
2019-11-25 20:10:03 +08:00
parent 5e7e9a95ad
commit b38c2b7f2a
13 changed files with 50 additions and 46 deletions

View File

@@ -26,7 +26,7 @@ import java.util.*;
* date 2017/3/5 20:36
* </pre>
*/
public abstract class BasePayService<PC extends PayConfigStorage, O extends PayOrder> implements PayService<PC, O> {
public abstract class BasePayService<PC extends PayConfigStorage> implements PayService<PC> {
protected final Log LOG = LogFactory.getLog(getClass());
protected PC payConfigStorage;
@@ -138,7 +138,7 @@ public abstract class BasePayService<PC extends PayConfigStorage, O extends PayO
* @return 对应页面重定向信息
*/
@Override
public String toPay(O order) {
public <O extends PayOrder> String toPay(O order) {
Map orderInfo = orderInfo(order);
return buildRequest(orderInfo, MethodType.POST);
}
@@ -150,7 +150,7 @@ public abstract class BasePayService<PC extends PayConfigStorage, O extends PayO
* @return 返回图片信息,支付时需要的
*/
@Override
public BufferedImage genQrPay(O order) {
public <O extends PayOrder> BufferedImage genQrPay(O order) {
return MatrixToImageWriter.writeInfoToJpgBuff(getQrPay(order));
}
@@ -463,7 +463,7 @@ public abstract class BasePayService<PC extends PayConfigStorage, O extends PayO
* @param orderInfo 订单信息
* @return 处理后订单信息
*/
public Map<String, Object> preOrderHandler(Map<String, Object> orderInfo, O payOrder){
public <O extends PayOrder> Map<String, Object> preOrderHandler(Map<String, Object> orderInfo, O payOrder){
return orderInfo;
}

View File

@@ -20,7 +20,7 @@ import java.util.Map;
* date 2016-5-18 14:09:01
* </pre>
*/
public interface PayService<PC extends PayConfigStorage, O extends PayOrder> {
public interface PayService<PC extends PayConfigStorage> {
/**
@@ -88,7 +88,7 @@ public interface PayService<PC extends PayConfigStorage, O extends PayOrder> {
* @return 订单信息
* @see PayOrder 支付订单信息
*/
Map<String, Object> orderInfo(O order);
<O extends PayOrder>Map<String, Object> orderInfo(O order);
/**
* 页面转跳支付, 返回对应页面重定向信息
@@ -96,7 +96,7 @@ public interface PayService<PC extends PayConfigStorage, O extends PayOrder> {
* @param order 订单信息
* @return 对应页面重定向信息
*/
String toPay(O order);
<O extends PayOrder>String toPay(O order);
/**
* 创建签名
@@ -160,14 +160,14 @@ public interface PayService<PC extends PayConfigStorage, O extends PayOrder> {
* @param order 发起支付的订单信息
* @return 返回图片信息,支付时需要的
*/
BufferedImage genQrPay(O order);
<O extends PayOrder>BufferedImage genQrPay(O order);
/**
* 获取输出二维码信息,
*
* @param order 发起支付的订单信息
* @return 返回二维码信息,,支付时需要的
*/
String getQrPay(O order);
<O extends PayOrder>String getQrPay(O order);
/**
* 刷卡付,pos主动扫码付款(条码付)
@@ -175,7 +175,7 @@ public interface PayService<PC extends PayConfigStorage, O extends PayOrder> {
* @param order 发起支付的订单信息
* @return 返回支付结果
*/
Map<String, Object> microPay(O order);
<O extends PayOrder>Map<String, Object> microPay(O order);
/**
* 交易查询接口
@@ -462,6 +462,6 @@ public interface PayService<PC extends PayConfigStorage, O extends PayOrder> {
* @param payOrder 订单信息
* @return 处理后订单信息
*/
Map<String, Object> preOrderHandler(Map<String, Object> orderInfo, O payOrder);
<O extends PayOrder>Map<String, Object> preOrderHandler(Map<String, Object> orderInfo, O payOrder);
}

View File

@@ -52,7 +52,9 @@ public class HttpRequestTemplate {
protected HttpHost httpProxy;
HttpConfigStorage configStorage;
protected HttpConfigStorage configStorage;
private SSLConnectionSocketFactory sslsf;
/**
* 获取代理带代理地址的 HttpHost
* @return 获取代理带代理地址的 HttpHost
@@ -73,9 +75,9 @@ public class HttpRequestTemplate {
.custom()
//网络提供者
.setDefaultCredentialsProvider(createCredentialsProvider(configStorage))
.setConnectionManager(connectionManager(configStorage))
//设置httpclient的SSLSocketFactory
.setSSLSocketFactory(createSSL(configStorage))
.setConnectionManager(connectionManager(configStorage))
.setDefaultRequestConfig(createRequestConfig(configStorage))
.build();
if (null == connectionManager) {
@@ -114,36 +116,38 @@ public class HttpRequestTemplate {
* @return SSLConnectionSocketFactory Layered socket factory for TLS/SSL connections.
*/
public SSLConnectionSocketFactory createSSL( HttpConfigStorage configStorage){
if (null != sslsf){
return sslsf;
}
if (null == configStorage.getKeystore()){
try {
return new SSLConnectionSocketFactory(SSLContext.getDefault());
return sslsf = new SSLConnectionSocketFactory(SSLContext.getDefault());
} catch (NoSuchAlgorithmException e) {
LOG.error(e);
}
}
//读取本机存放的PKCS12证书文件
//读取本机存放的PKCS12证书文件
try(InputStream instream = configStorage.getKeystoreInputStream()){
//指定读取证书格式为PKCS12
KeyStore keyStore = KeyStore.getInstance("PKCS12");
//指定读取证书格式为PKCS12
KeyStore keyStore = KeyStore.getInstance("PKCS12");
char[] password = configStorage.getStorePassword().toCharArray();
//指定PKCS12的密码
keyStore.load(instream, password);
// 实例化密钥库 & 初始化密钥工厂
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, password);
// 创建 SSLContext
SSLContext sslcontext = SSLContexts.custom()
.loadKeyMaterial(keyStore, password).build();
char[] password = configStorage.getStorePassword().toCharArray();
//指定PKCS12的密码
keyStore.load(instream, password);
// 实例化密钥库 & 初始化密钥工厂
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, password);
// 创建 SSLContext
SSLContext sslcontext = SSLContexts.custom()
.loadKeyMaterial(keyStore, password).build();
//指定TLS版本
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext, new String[]{"TLSv1"}, null,
new DefaultHostnameVerifier());
//指定TLS版本
sslsf = new SSLConnectionSocketFactory(
sslcontext, new String[]{"TLSv1"}, null,
new DefaultHostnameVerifier());
return sslsf;
return sslsf;
} catch (IOException e) {
LOG.error(e);
} catch (GeneralSecurityException e) {
@@ -168,7 +172,7 @@ public class HttpRequestTemplate {
// 需要用户认证的代理服务器
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
AuthScope.ANY,
AuthScope.ANY,
new UsernamePasswordCredentials(configStorage.getAuthUsername(), configStorage.getAuthPassword()));
@@ -348,9 +352,9 @@ public class HttpRequestTemplate {
}
httpRequest.setResponseType(responseType);
try (CloseableHttpResponse response = getHttpClient().execute(httpRequest)) {
return httpRequest.handleResponse(response);
return httpRequest.handleResponse(response);
}catch (IOException e){
throw new PayErrorException(new PayException("IOException", e.getLocalizedMessage()));
throw new PayErrorException(new PayException("IOException", e.getLocalizedMessage()));
}finally {
httpRequest.releaseConnection();
}
@@ -368,6 +372,6 @@ public class HttpRequestTemplate {
* @return 类型对象
*/
public <T>T doExecute(String uri, Object request, Class<T> responseType, MethodType method){
return doExecute(URI.create(uri), request, responseType, method);
return doExecute(URI.create(uri), request, responseType, method);
}
}