补全注释

This commit is contained in:
egzosn
2017-04-25 22:33:27 +08:00
parent f814835b28
commit c3c23b836e
69 changed files with 849 additions and 2430 deletions

View File

@@ -4,9 +4,10 @@ import com.egzosn.pay.common.api.BasePayConfigStorage;
/**
* 支付客户端配置存储
* @author egan
* @email egzosn@gmail.com
* @date 2016-5-18 14:09:01
* author egan
*
* email egzosn@gmail.com
* date 2016-5-18 14:09:01
*/
public class AliPayConfigStorage extends BasePayConfigStorage {
@@ -57,9 +58,11 @@ public class AliPayConfigStorage extends BasePayConfigStorage {
return pid;
}
/**
* 设置合作者id
* @see #setPid(String)
* @return 合作者id
* @param partner 合作者id
*/
@Deprecated
public void setPartner(String partner) {

View File

@@ -28,8 +28,9 @@ import java.util.*;
/**
* 支付宝支付通知
* @author egan
* @email egzosn@gmail.com
* @date 2017-2-22 20:09
*
* email egzosn@gmail.com
* date 2017-2-22 20:09
*/
public class AliPayService extends BasePayService {
protected final Log log = LogFactory.getLog(AliPayService.class);
@@ -44,7 +45,7 @@ public class AliPayService extends BasePayService {
/**
* 获取对应的请求地址
* @return
* @return 请求地址
*/
public String getReqUrl(){
return payConfigStorage.isTest() ? devReqUrl : httpsReqUrl;
@@ -64,6 +65,12 @@ public class AliPayService extends BasePayService {
return getReqUrl() + "?service=notify_verify";
}
/**
* 回调校验
*
* @param params 回调回来的参数集
* @return 签名校验 true通过
*/
@Override
public boolean verify(Map<String, String> params) {
@@ -95,9 +102,10 @@ public class AliPayService extends BasePayService {
/**
* 校验数据来源
*
* @param id 业务id, 数据的真实性.
* @return
* @return true通过
*/
@Override
public boolean verifySource(String id) {
@@ -110,7 +118,7 @@ public class AliPayService extends BasePayService {
/**
* 生成并设置签名
* @param parameters 请求参数
* @return
* @return 请求参数
*/
private Map<String, Object> setSign(Map<String, Object> parameters){
parameters.put("sign_type", payConfigStorage.getSignType());
@@ -120,12 +128,13 @@ public class AliPayService extends BasePayService {
return parameters;
}
/**
* 返回创建的订单信息
*
* @param order 支付订单
* @return
* @see PayOrder
* @return 订单信息
* @see PayOrder 支付订单信息
*/
@Override
public Map<String, Object> orderInfo(PayOrder order) {
@@ -139,8 +148,8 @@ public class AliPayService extends BasePayService {
* create the order info
*
* @param order 支付订单
* @return
* @see PayOrder
* @return 返回支付宝预下单信息
* @see PayOrder 支付订单信息
*/
private Map<String, Object> getOrder(PayOrder order) {
@@ -179,7 +188,7 @@ public class AliPayService extends BasePayService {
/**
* 获取公共请求参数
* @param transactionType 交易类型
* @return
* @return 放回公共请求参数
*/
private Map<String, Object> getPublicParameters(TransactionType transactionType ){
Map<String, Object> orderInfo = new TreeMap<>();
@@ -199,8 +208,8 @@ public class AliPayService extends BasePayService {
* create the order info
*
* @param order 支付订单
* @return
* @see PayOrder
* @return 返回过时的交易订单,兼容即时收款
* @see PayOrder 支付订单信息
*/
private Map<String, Object> getOrderBefore(PayOrder order) {
Map<String, Object> orderInfo = new TreeMap<>();
@@ -254,8 +263,12 @@ public class AliPayService extends BasePayService {
}
/**
* 将请求参数或者请求流转化为 Map
* @param parameterMap 请求参数
* @param is 请求流
* @return 获得回调的请求参数
*/
@Override
public Map<String, String> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
@@ -273,11 +286,23 @@ public class AliPayService extends BasePayService {
return params;
}
/**
* 获取输出消息,用户返回给支付端
* @param code 状态
* @param message 消息
* @return 返回输出消息
*/
@Override
public PayOutMessage getPayOutMessage(String code, String message) {
return PayOutMessage.TEXT().content(code.toLowerCase()).build();
}
/**
*
* @param orderInfo 发起支付的订单信息
* @param method 请求方式 "post" "get",
* @return 获取输出消息,用户返回给支付端, 针对于web端
*/
@Override
public String buildRequest(Map<String, Object> orderInfo, MethodType method) {
@@ -322,7 +347,7 @@ public class AliPayService extends BasePayService {
* 生成二维码支付
* 暂未实现或无此功能
* @param order 发起支付的订单信息
* @return
* @return 返回图片信息,支付时需要的
*/
@Override
public BufferedImage genQrPay(PayOrder order) {
@@ -344,7 +369,7 @@ public class AliPayService extends BasePayService {
* 交易查询接口
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return
* @return 返回查询回来的结果集,支付方原值返回
*/
@Override
public Map<String, Object> query(String tradeNo, String outTradeNo) {
@@ -357,13 +382,14 @@ public class AliPayService extends BasePayService {
});
}
/**
*
* 交易查询接口,带处理器
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param callback 处理器
* @param <T>
* @return
* @param <T> 返回类型
* @return 返回查询回来的结果集
*/
@Override
public <T> T query(String tradeNo, String outTradeNo, Callback<T> callback) {
@@ -371,7 +397,13 @@ public class AliPayService extends BasePayService {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.QUERY, callback);
}
/**
* 交易关闭接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return 返回支付方交易关闭后的结果
*/
@Override
public Map<String, Object> close(String tradeNo, String outTradeNo) {
@@ -382,12 +414,28 @@ public class AliPayService extends BasePayService {
}
});
}
/**
* 交易关闭接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方交易关闭后的结果
*/
@Override
public <T> T close(String tradeNo, String outTradeNo, Callback<T> callback) {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.CLOSE, callback);
}
/**
* 申请退款接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param refundAmount 退款金额
* @param totalAmount 总金额
* @return 返回支付方申请退款后的结果
*/
@Override
public Map<String, Object> refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
@@ -398,7 +446,17 @@ public class AliPayService extends BasePayService {
}
});
}
/**
* 申请退款接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param refundAmount 退款金额
* @param totalAmount 总金额
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方申请退款后的结果
*/
@Override
public <T> T refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback<T> callback) {
//获取公共参数
@@ -412,7 +470,13 @@ public class AliPayService extends BasePayService {
setSign(parameters);
return callback.perform(requestTemplate.getForObject(getReqUrl() + "?" + UriVariables.getMapToParameters(parameters), JSONObject.class));
}
/**
* 查询退款
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return 返回支付方查询退款后的结果
*/
@Override
public Map<String, Object> refundquery(String tradeNo, String outTradeNo) {
return refundquery(tradeNo, outTradeNo, new Callback<Map<String, Object>>() {
@@ -422,7 +486,15 @@ public class AliPayService extends BasePayService {
}
});
}
/**
* 查询退款
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方查询退款后的结果
*/
@Override
public <T> T refundquery(String tradeNo, String outTradeNo, Callback<T> callback) {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.REFUNDQUERY, callback);
@@ -432,7 +504,7 @@ public class AliPayService extends BasePayService {
* 目前只支持日账单
* @param billDate 账单类型商户通过接口或商户经开放平台授权后其所属服务商通过接口可以获取以下账单类型trade、signcustomertrade指商户基于支付宝交易收单的业务账单signcustomer是指基于商户支付宝余额收入及支出等资金变动的帐务账单
* @param billType 账单时间日账单格式为yyyy-MM-dd月账单格式为yyyy-MM。
* @return
* @return 返回支付方下载对账单的结果
*/
@Override
public Map<String, Object> downloadbill(Date billDate, String billType) {
@@ -449,8 +521,8 @@ public class AliPayService extends BasePayService {
* @param billDate 账单时间:具体请查看对应支付平台
* @param billType 账单类型,具体请查看对应支付平台
* @param callback 处理器
* @param <T>
* @return
* @param <T> 返回类型
* @return 返回支付方下载对账单的结果
*/
@Override
public <T> T downloadbill(Date billDate, String billType, Callback<T> callback) {
@@ -478,8 +550,8 @@ public class AliPayService extends BasePayService {
* @param outTradeNoBillType 商户单号或者 账单类型
* @param transactionType 交易类型
* @param callback 处理器
* @param <T>
* @return
* @param <T> 返回类型
* @return 返回支付方对应接口的结果
*/
@Override
public <T> T secondaryInterface(Object tradeNoOrBillDate, String outTradeNoBillType, TransactionType transactionType, Callback<T> callback) {
@@ -514,7 +586,7 @@ public class AliPayService extends BasePayService {
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param bizContent 请求参数的集合
* @return
* @return 请求参数的集合 不包含下载账单
*/
private Map<String, Object> getBizContent(String tradeNo, String outTradeNo, Map<String, Object> bizContent){
if (null == bizContent){
@@ -533,7 +605,7 @@ public class AliPayService extends BasePayService {
* 获取biz_content。不包含下载账单
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return
* @return 获取biz_content。不包含下载账单
*/
private String getContentToJson(String tradeNo, String outTradeNo){

View File

@@ -14,8 +14,9 @@ import com.egzosn.pay.common.bean.TransactionType;
* </pre>
*
* @author egan
* @email egzosn@gmail.com
* @date 2016/10/19 22:58
*
* email egzosn@gmail.com
* date 2016/10/19 22:58
*/
public enum AliTransactionType implements TransactionType {
//app支付 //手机网站支付
@@ -45,7 +46,7 @@ public enum AliTransactionType implements TransactionType {
/**
* 获取接口名称
* @return
* @return 接口名称
*/
@Override
public String getMethod() {

View File

@@ -29,8 +29,10 @@ import java.util.*;
/**
* 支付宝支付通知
* @author egan
* @email egzosn@gmail.com
* @date 2016-5-18 14:09:01
*
* email egzosn@gmail.com
* date 2016-5-18 14:09:01
*
* @see com.egzosn.pay.ali.api.AliPayService
*/
public class AliPayService extends BasePayService {
@@ -53,6 +55,12 @@ public class AliPayService extends BasePayService {
return httpsReqUrl + "?service=notify_verify";
}
/**
* 回调校验
*
* @param params 回调回来的参数集
* @return 签名校验 true通过
*/
@Override
public boolean verify(Map<String, String> params) {
@@ -69,7 +77,12 @@ public class AliPayService extends BasePayService {
return false;
}
/**
* 校验数据来源
*
* @param id 业务id, 数据的真实性.
* @return true通过
*/
@Override
public boolean verifySource(String id) {
return "true".equals(requestTemplate.getForObject( getHttpsVerifyUrl() + "partner=" + payConfigStorage.getPid() + "&notify_id=" + id, String.class));
@@ -91,16 +104,11 @@ public class AliPayService extends BasePayService {
/**
* 生成并设置签名
* @param parameters 请求参数
* @return
* @return 订单信息
*/
private Map<String, Object> setSign(Map<String, Object> parameters){
parameters.put("sign_type", payConfigStorage.getSignType());
String sign = createSign(SignUtils.parameterText(parameters, "&", "sign", "appId"), payConfigStorage.getInputCharset());
/* try {
sign = URLEncoder.encode(sign, payConfigStorage.getInputCharset());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}*/
parameters.put("sign", sign);
return parameters;
@@ -109,7 +117,7 @@ public class AliPayService extends BasePayService {
/**
* 获取公共请求参数
* @param transactionType 交易类型
* @return
* @return 公共请求参数
*/
private Map<String, Object> getPublicParameters(TransactionType transactionType ){
Map<String, Object> orderInfo = new TreeMap<>();
@@ -127,12 +135,13 @@ public class AliPayService extends BasePayService {
}
/**
* 返回创建的订单信息
*
* @param order 支付订单
* @return
* @see PayOrder
* @return 订单信息
* @see PayOrder 支付订单信息
*/
@Override
public Map<String, Object> orderInfo(PayOrder order) {
@@ -156,7 +165,7 @@ public class AliPayService extends BasePayService {
* create the order info
*
* @param order 支付订单
* @return
* @return 订单信息
* @see PayOrder
*/
private Map<String, Object> getOrder(PayOrder order) {
@@ -198,7 +207,13 @@ public class AliPayService extends BasePayService {
}
/**
* 将请求参数或者请求流转化为 Map
*
* @param parameterMap 请求参数
* @param is 请求流
* @return 获得回调的请求参数
*/
@Override
public Map<String, String> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
@@ -218,12 +233,25 @@ public class AliPayService extends BasePayService {
return params;
}
/**
* 获取输出消息,用户返回给支付端
*
* @param code 状态
* @param message 消息
* @return 返回输出消息
*/
@Override
public PayOutMessage getPayOutMessage(String code, String message) {
return PayOutMessage.TEXT().content(code.toLowerCase()).build();
}
/**
* 获取输出消息,用户返回给支付端, 针对于web端
*
* @param orderInfo 发起支付的订单信息
* @param method 请求方式 "post" "get",
* @return 获取输出消息,用户返回给支付端, 针对于web端
* @see MethodType 请求类型
*/
@Override
public String buildRequest(Map<String, Object> orderInfo, MethodType method) {
@@ -258,7 +286,7 @@ public class AliPayService extends BasePayService {
* 生成二维码支付
* 暂未实现或无此功能
* @param orderInfo 发起支付的订单信息
* @return
* @return 返回图片信息,支付时需要的
*/
@Override
public BufferedImage genQrPay(PayOrder orderInfo) {
@@ -270,7 +298,7 @@ public class AliPayService extends BasePayService {
* 交易查询接口
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return
* @return 返回查询回来的结果集,支付方原值返回
*/
@Override
public Map<String, Object> query(String tradeNo, String outTradeNo) {
@@ -284,12 +312,12 @@ public class AliPayService extends BasePayService {
}
/**
*
* 交易查询接口,带处理器
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param callback 处理器
* @param <T>
* @return
* @param <T> 返回类型
* @return 返回查询回来的结果集
*/
@Override
public <T> T query(String tradeNo, String outTradeNo, Callback<T> callback) {
@@ -297,7 +325,13 @@ public class AliPayService extends BasePayService {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.QUERY, callback);
}
/**
* 交易关闭接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return 返回支付方交易关闭后的结果
*/
@Override
public Map<String, Object> close(String tradeNo, String outTradeNo) {
@@ -308,12 +342,28 @@ public class AliPayService extends BasePayService {
}
});
}
/**
* 交易关闭接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方交易关闭后的结果
*/
@Override
public <T> T close(String tradeNo, String outTradeNo, Callback<T> callback) {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.CLOSE, callback);
}
/**
* 申请退款接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param refundAmount 退款金额
* @param totalAmount 总金额
* @return 返回支付方申请退款后的结果
*/
@Override
public Map<String, Object> refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
@@ -324,7 +374,17 @@ public class AliPayService extends BasePayService {
}
});
}
/**
* 申请退款接口
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param refundAmount 退款金额
* @param totalAmount 总金额
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方申请退款后的结果
*/
@Override
public <T> T refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback<T> callback) {
//获取公共参数
@@ -338,6 +398,14 @@ public class AliPayService extends BasePayService {
setSign(parameters);
return callback.perform(requestTemplate.getForObject(queryReqUrl + "?" + UriVariables.getMapToParameters(parameters), JSONObject.class));
}
/**
* 查询退款
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return 返回支付方查询退款后的结果
*/
@Override
public Map<String, Object> refundquery(String tradeNo, String outTradeNo) {
return refundquery(tradeNo, outTradeNo, new Callback<Map<String, Object>>() {
@@ -348,6 +416,15 @@ public class AliPayService extends BasePayService {
});
}
/**
* 查询退款
*
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方查询退款后的结果
*/
@Override
public <T> T refundquery(String tradeNo, String outTradeNo, Callback<T> callback) {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.REFUNDQUERY, callback);
@@ -357,7 +434,7 @@ public class AliPayService extends BasePayService {
* 目前只支持日账单
* @param billDate 账单类型商户通过接口或商户经开放平台授权后其所属服务商通过接口可以获取以下账单类型trade、signcustomertrade指商户基于支付宝交易收单的业务账单signcustomer是指基于商户支付宝余额收入及支出等资金变动的帐务账单
* @param billType 账单时间日账单格式为yyyy-MM-dd月账单格式为yyyy-MM。
* @return
* @return 返回支付方下载对账单的结果
*/
@Override
public Map<String, Object> downloadbill(Date billDate, String billType) {
@@ -374,8 +451,8 @@ public class AliPayService extends BasePayService {
* @param billDate 账单时间:具体请查看对应支付平台
* @param billType 账单类型,具体请查看对应支付平台
* @param callback 处理器
* @param <T>
* @return
* @param <T> 返回类型
* @return 返回支付方下载对账单的结果
*/
@Override
public <T> T downloadbill(Date billDate, String billType, Callback<T> callback) {
@@ -403,8 +480,8 @@ public class AliPayService extends BasePayService {
* @param outTradeNoBillType 商户单号或者 账单类型
* @param transactionType 交易类型
* @param callback 处理器
* @param <T>
* @return
* @param <T> 返回类型
* @return 返回支付方对应接口的结果
*/
@Override
public <T> T secondaryInterface(Object tradeNoOrBillDate, String outTradeNoBillType, TransactionType transactionType, Callback<T> callback) {
@@ -435,7 +512,7 @@ public class AliPayService extends BasePayService {
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param bizContent 请求参数的集合
* @return
* @return 请求参数的集合 不包含下载账单
*/
private Map<String, Object> getBizContent(String tradeNo, String outTradeNo, Map<String, Object> bizContent){
if (null == bizContent){
@@ -454,7 +531,7 @@ public class AliPayService extends BasePayService {
* 获取biz_content。不包含下载账单
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @return
* @return 请求参数的集合 不包含下载账单
*/
private String getContentToJson(String tradeNo, String outTradeNo){

View File

@@ -14,8 +14,10 @@ import com.egzosn.pay.common.bean.TransactionType;
* </pre>
*
* @author egan
* @email egzosn@gmail.com
* @date 2016/10/19 22:58
*
* email egzosn@gmail.com
* date 2016/10/19 22:58
*
* @see com.egzosn.pay.ali.bean.AliTransactionType
*/
@Deprecated
@@ -42,7 +44,7 @@ public enum AliTransactionType implements TransactionType {
/**
* 获取接口名称
* @return
* @return 接口名称
*/
@Override
public String getMethod() {

View File

@@ -1,54 +0,0 @@
package com.egzosn.pay.ali.before.util;
/**
* @author egan
* @email egzosn@gmail.com
* @date 2016-5-24
*/
import com.egzosn.pay.common.before.api.RequestExecutor;
import com.egzosn.pay.common.before.bean.result.PayError;
import com.egzosn.pay.common.exception.PayErrorException;
import com.egzosn.pay.common.before.util.http.Utf8ResponseHandler;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import java.io.IOException;
/**
* 简单的GET请求执行器请求的参数是String, 返回的结果也是String
* @author Daniel Qian
* @source chanjarster/weixin-java-tools
*
*/
@Deprecated
public class SimpleGetRequestExecutor implements RequestExecutor<String, String> {
@Override
public String execute(CloseableHttpClient httpclient, HttpHost httpProxy, String uri, String queryParam) throws IOException, PayErrorException {
if (queryParam != null) {
if (uri.indexOf('?') == -1) {
uri += '?';
}
uri += uri.endsWith("?") ? queryParam : '&' + queryParam;
}
HttpGet httpGet = new HttpGet(uri);
if (httpProxy != null) {
RequestConfig config = RequestConfig.custom().setProxy(httpProxy).build();
httpGet.setConfig(config);
}
try (CloseableHttpResponse response = httpclient.execute(httpGet)) {
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
if ("true".equals(responseContent)){ return responseContent; }
throw new PayErrorException(new PayError(100101, responseContent));
}
}
}