实现过渡板支付宝退款

This commit is contained in:
egzosn
2017-03-11 10:48:12 +08:00
parent a2518280dc
commit 608c149cc8

View File

@@ -315,9 +315,9 @@ public class AliPayService extends BasePayService {
}
@Override
public Map<String, Object> refund(String tradeNo, String outTradeNo) {
public Map<String, Object> refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
return refund(tradeNo, outTradeNo, new Callback<Map<String, Object>>() {
return refund(tradeNo, outTradeNo, refundAmount, totalAmount, new Callback<Map<String, Object>>() {
@Override
public Map<String, Object> perform(Map<String, Object> map) {
return map;
@@ -326,10 +326,18 @@ public class AliPayService extends BasePayService {
}
@Override
public <T> T refund(String tradeNo, String outTradeNo, Callback<T> callback) {
return secondaryInterface(tradeNo, outTradeNo, AliTransactionType.REFUND, callback);
}
public <T> T refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback<T> callback) {
//获取公共参数
Map<String, Object> parameters = getPublicParameters(AliTransactionType.REFUND);
Map<String, Object> bizContent = getBizContent(tradeNo, outTradeNo, null);
bizContent.put("refund_amount", refundAmount);
//设置请求参数的集合
parameters.put("biz_content", JSON.toJSONString(bizContent));
//设置签名
setSign(parameters);
return callback.perform(requestTemplate.getForObject(queryReqUrl + "?" + ClientHttpRequest.getMapToParameters(parameters), JSONObject.class));
}
@Override
public Map<String, Object> refundquery(String tradeNo, String outTradeNo) {
return refundquery(tradeNo, outTradeNo, new Callback<Map<String, Object>>() {
@@ -421,6 +429,27 @@ public class AliPayService extends BasePayService {
}
/**
* 获取biz_content。请求参数的集合 不包含下载账单
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param bizContent 请求参数的集合
* @return
*/
private Map<String, Object> getBizContent(String tradeNo, String outTradeNo, Map<String, Object> bizContent){
if (null == bizContent){
bizContent = new TreeMap<>();
}
if (null != outTradeNo){
bizContent.put("out_trade_no", outTradeNo);
}
if (null != tradeNo){
bizContent.put("trade_no", tradeNo);
}
return bizContent;
}
/**
* 获取biz_content。不包含下载账单
* @param tradeNo 支付平台订单号
@@ -428,14 +457,8 @@ public class AliPayService extends BasePayService {
* @return
*/
private String getContentToJson(String tradeNo, String outTradeNo){
Map<String, Object> bizContent = new TreeMap<>();
if (null != outTradeNo){
bizContent.put("out_trade_no", outTradeNo);
}
if (null != tradeNo){
bizContent.put("trade_no", tradeNo);
}
return JSON.toJSONString(bizContent);
return JSON.toJSONString(getBizContent(tradeNo, outTradeNo, null));
}
}