mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-06-08 10:24:03 +08:00
补全注释
This commit is contained in:
@@ -5,8 +5,11 @@ import com.egzosn.pay.common.api.BasePayConfigStorage;
|
||||
/**
|
||||
* 支付客户端配置存储
|
||||
* @author egan
|
||||
* @email egzosn@gmail.com
|
||||
* @date 2016-5-18 14:09:01
|
||||
*
|
||||
* <pre>
|
||||
* email egzosn@gmail.com
|
||||
* date 2016-5-18 14:09:01
|
||||
* </pre>
|
||||
*/
|
||||
public class WxPayConfigStorage extends BasePayConfigStorage {
|
||||
|
||||
@@ -36,16 +39,17 @@ public class WxPayConfigStorage extends BasePayConfigStorage {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*
|
||||
* 合作商唯一标识
|
||||
* @see #getPid() 代替者
|
||||
*/
|
||||
@Deprecated
|
||||
@Override
|
||||
public String getPartner() {
|
||||
return mchId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
* @see #getPartner() 代替者
|
||||
*/
|
||||
@Override
|
||||
public String getPid() {
|
||||
return mchId;
|
||||
|
||||
@@ -29,8 +29,10 @@ import java.util.*;
|
||||
/**
|
||||
* 支付宝支付通知
|
||||
* @author egan
|
||||
* @email egzosn@gmail.com
|
||||
* @date 2016-5-18 14:09:01
|
||||
* <pre>
|
||||
* email egzosn@gmail.com
|
||||
* date 2016-5-18 14:09:01
|
||||
* </pre>
|
||||
*/
|
||||
public class WxPayService extends BasePayService {
|
||||
protected final Log log = LogFactory.getLog(WxPayService.class);
|
||||
@@ -38,7 +40,6 @@ public class WxPayService extends BasePayService {
|
||||
|
||||
|
||||
|
||||
public final static String httpsVerifyUrl = "https://gw.tenpay.com/gateway";
|
||||
public final static String uri = "https://api.mch.weixin.qq.com/";
|
||||
// public final static String unifiedOrderUrl = "https://api.mch.weixin.qq.com/pay/unifiedorder";
|
||||
// public final static String orderqueryUrl = "https://api.mch.weixin.qq.com/pay/orderquery";
|
||||
@@ -54,19 +55,21 @@ public class WxPayService extends BasePayService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 微信支付V2版本所需
|
||||
* 当前版本不需要 ?
|
||||
* @return
|
||||
* 根据交易类型获取url
|
||||
* @param transactionType 交易类型
|
||||
* @return 请求url
|
||||
*/
|
||||
public String getHttpsVerifyUrl() {
|
||||
return httpsVerifyUrl + "/verifynotifyid.xml";
|
||||
}
|
||||
|
||||
private String getUrl(TransactionType transactionType){
|
||||
|
||||
return uri + transactionType.getMethod();
|
||||
}
|
||||
|
||||
/**
|
||||
* 回调校验
|
||||
*
|
||||
* @param params 回调回来的参数集
|
||||
* @return 签名校验 true通过
|
||||
*/
|
||||
@Override
|
||||
public boolean verify(Map<String, String> params) {
|
||||
if (!"SUCCESS".equals(params.get("return_code"))){
|
||||
@@ -89,9 +92,9 @@ public class WxPayService extends BasePayService {
|
||||
|
||||
|
||||
/**
|
||||
* 支付宝需要,微信是否也需要再次校验来源,进行订单查询
|
||||
* 微信是否也需要再次校验来源,进行订单查询
|
||||
* @param id 商户单号
|
||||
* @return
|
||||
* @return true通过
|
||||
*/
|
||||
@Override
|
||||
public boolean verifySource(String id) {
|
||||
@@ -111,7 +114,7 @@ public class WxPayService extends BasePayService {
|
||||
|
||||
/**
|
||||
* 获取公共参数
|
||||
* @return
|
||||
* @return 公共参数
|
||||
*/
|
||||
private Map<String,Object> getPublicParameters() {
|
||||
|
||||
@@ -127,11 +130,11 @@ public class WxPayService extends BasePayService {
|
||||
|
||||
|
||||
/**
|
||||
* 获取支付平台所需的订单信息
|
||||
* 返回创建的订单信息
|
||||
*
|
||||
* @param order 支付订单
|
||||
* @return
|
||||
* @see PayOrder
|
||||
* @return 订单信息
|
||||
* @see PayOrder 支付订单信息
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> orderInfo(PayOrder order) {
|
||||
@@ -190,7 +193,7 @@ public class WxPayService extends BasePayService {
|
||||
/**
|
||||
* 生成并设置签名
|
||||
* @param parameters 请求参数
|
||||
* @return
|
||||
* @return 请求参数
|
||||
*/
|
||||
private Map<String, Object> setSign(Map<String, Object> parameters){
|
||||
parameters.put("sign_type", payConfigStorage.getSignType());
|
||||
@@ -203,13 +206,20 @@ public class WxPayService extends BasePayService {
|
||||
* 签名
|
||||
* @param content 需要签名的内容 不包含key
|
||||
* @param characterEncoding 字符编码
|
||||
* @return
|
||||
* @return 签名结果
|
||||
*/
|
||||
@Override
|
||||
public String createSign(String content, String characterEncoding) {
|
||||
return SignUtils.valueOf(payConfigStorage.getSignType().toUpperCase()).createSign(content, "&key=" + payConfigStorage.getKeyPrivate(), characterEncoding).toUpperCase();
|
||||
}
|
||||
|
||||
/**
|
||||
* 将请求参数或者请求流转化为 Map
|
||||
*
|
||||
* @param parameterMap 请求参数
|
||||
* @param is 请求流
|
||||
* @return 获得回调的请求参数
|
||||
*/
|
||||
@Override
|
||||
public Map<String, String> getParameter2Map(Map<String, String[]> parameterMap, InputStream is) {
|
||||
TreeMap<String, String> map = new TreeMap();
|
||||
@@ -221,24 +231,38 @@ public class WxPayService extends BasePayService {
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取输出消息,用户返回给支付端
|
||||
*
|
||||
* @param code 状态
|
||||
* @param message 消息
|
||||
* @return 返回输出消息
|
||||
*/
|
||||
@Override
|
||||
public PayOutMessage getPayOutMessage(String code, String message) {
|
||||
return PayOutMessage.XML().code(code.toUpperCase()).content(message).build();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 针对web端的即时付款
|
||||
* 暂未实现或无此功能
|
||||
* 获取输出消息,用户返回给支付端, 针对于web端
|
||||
*
|
||||
* @param orderInfo 发起支付的订单信息
|
||||
* @param method 请求方式 "post" "get",
|
||||
* @return
|
||||
* @param method 请求方式 "post" "get",
|
||||
* @return 获取输出消息,用户返回给支付端, 针对于web端
|
||||
* @see MethodType 请求类型
|
||||
*/
|
||||
@Override
|
||||
public String buildRequest(Map<String, Object> orderInfo, MethodType method) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取输出二维码,用户返回给支付端,
|
||||
*
|
||||
* @param order 发起支付的订单信息
|
||||
* @return 返回图片信息,支付时需要的
|
||||
*/
|
||||
@Override
|
||||
public BufferedImage genQrPay(PayOrder order) {
|
||||
Map<String, Object> orderInfo = orderInfo(order);
|
||||
@@ -252,10 +276,11 @@ public class WxPayService extends BasePayService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易查询接口
|
||||
* @param transactionId 支付平台订单号
|
||||
* 交易查询接口
|
||||
*
|
||||
* @param transactionId 微信支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @return
|
||||
* @return 返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> query(String transactionId, String outTradeNo) {
|
||||
@@ -273,8 +298,8 @@ public class WxPayService extends BasePayService {
|
||||
* @param transactionId 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @param callback 处理器
|
||||
* @param <T>
|
||||
* @return
|
||||
* @param <T> 返回类型
|
||||
* @return 处理过后的类型对象,返回查询回来的结果集,支付方原值返回
|
||||
*/
|
||||
@Override
|
||||
public <T> T query(String transactionId, String outTradeNo, Callback<T> callback) {
|
||||
@@ -282,7 +307,13 @@ public class WxPayService extends BasePayService {
|
||||
return secondaryInterface(transactionId, outTradeNo, WxTransactionType.QUERY, callback);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param transactionId 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @return 返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> close(String transactionId, String outTradeNo) {
|
||||
|
||||
@@ -293,7 +324,15 @@ public class WxPayService extends BasePayService {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 交易关闭接口
|
||||
*
|
||||
* @param transactionId 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @param callback 处理器
|
||||
* @param <T> 返回类型
|
||||
* @return 处理过后的类型对象,返回支付方交易关闭后的结果
|
||||
*/
|
||||
@Override
|
||||
public <T> T close(String transactionId, String outTradeNo, Callback<T> callback) {
|
||||
return secondaryInterface(transactionId, outTradeNo, WxTransactionType.CLOSE, callback);
|
||||
@@ -305,7 +344,7 @@ public class WxPayService extends BasePayService {
|
||||
* @param outTradeNo 商户单号
|
||||
* @param refundAmount 退款金额
|
||||
* @param totalAmount 总金额
|
||||
* @return
|
||||
* @return 返回支付方申请退款后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> refund(String transactionId, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
|
||||
@@ -326,8 +365,8 @@ public class WxPayService extends BasePayService {
|
||||
* @param refundAmount 退款金额
|
||||
* @param totalAmount 总金额
|
||||
* @param callback 处理器
|
||||
* @param <T>
|
||||
* @return
|
||||
* @param <T> 返回类型
|
||||
* @return 处理过后的类型对象, 返回支付方申请退款后的结果
|
||||
*/
|
||||
@Override
|
||||
public <T> T refund(String transactionId, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback<T> callback) {
|
||||
@@ -350,6 +389,13 @@ public class WxPayService extends BasePayService {
|
||||
return callback.perform(requestTemplate.postForObject(getUrl(WxTransactionType.REFUND), XML.getMap2Xml(parameters), JSONObject.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询退款
|
||||
*
|
||||
* @param transactionId 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @return 返回支付方查询退款后的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> refundquery(String transactionId, String outTradeNo) {
|
||||
return refundquery(transactionId, outTradeNo, new Callback<Map<String, Object>>() {
|
||||
@@ -360,6 +406,15 @@ public class WxPayService extends BasePayService {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询退款
|
||||
*
|
||||
* @param transactionId 支付平台订单号
|
||||
* @param outTradeNo 商户单号
|
||||
* @param callback 处理器
|
||||
* @param <T> 返回类型
|
||||
* @return 处理过后的类型对象,返回支付方查询退款后的结果
|
||||
*/
|
||||
@Override
|
||||
public <T> T refundquery(String transactionId, String outTradeNo, Callback<T> callback) {
|
||||
return secondaryInterface(transactionId, outTradeNo, WxTransactionType.REFUNDQUERY, callback);
|
||||
@@ -369,7 +424,7 @@ public class WxPayService extends BasePayService {
|
||||
* 目前只支持日账单
|
||||
* @param billDate 账单类型,商户通过接口或商户经开放平台授权后其所属服务商通过接口可以获取以下账单类型:trade、signcustomer;trade指商户基于支付宝交易收单的业务账单;signcustomer是指基于商户支付宝余额收入及支出等资金变动的帐务账单;
|
||||
* @param billType 账单时间:日账单格式为yyyy-MM-dd,月账单格式为yyyy-MM。
|
||||
* @return
|
||||
* @return 返回支付方下载对账单的结果
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> downloadbill(Date billDate, String billType) {
|
||||
@@ -386,8 +441,8 @@ public class WxPayService 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) {
|
||||
@@ -413,8 +468,8 @@ public class WxPayService extends BasePayService {
|
||||
* @param outTradeNoBillType 商户单号或者 账单类型
|
||||
* @param transactionType 交易类型
|
||||
* @param callback 处理器
|
||||
* @param <T>
|
||||
* @return
|
||||
* @param <T> 返回类型
|
||||
* @return 返回支付方对应接口的结果
|
||||
*/
|
||||
@Override
|
||||
public <T> T secondaryInterface(Object transactionIdOrBillDate, String outTradeNoBillType, TransactionType transactionType, Callback<T> callback) {
|
||||
|
||||
@@ -20,9 +20,13 @@ package com.egzosn.pay.wx.bean;
|
||||
import com.egzosn.pay.common.bean.result.PayError;
|
||||
|
||||
/**
|
||||
* 微信支付异常
|
||||
* @author: egan
|
||||
* @email egzosn@gmail.com
|
||||
* @date 2017/3/6 17:31
|
||||
* <pre>
|
||||
*
|
||||
* email egzosn@gmail.com
|
||||
* date 2017/3/6 17:31
|
||||
* </pre>
|
||||
*/
|
||||
public class WxPayError implements PayError {
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@ import com.egzosn.pay.common.bean.TransactionType;
|
||||
/**
|
||||
* 微信交易类型
|
||||
* @author egan
|
||||
* @email egzosn@gmail.com
|
||||
* @date 2016/10/19 22:58
|
||||
*
|
||||
* email egzosn@gmail.com
|
||||
* date 2016/10/19 22:58
|
||||
*/
|
||||
public enum WxTransactionType implements TransactionType {
|
||||
//公众号支付
|
||||
|
||||
Reference in New Issue
Block a user