多笔退款退款接口实现

This commit is contained in:
egan
2018-01-15 23:00:41 +08:00
parent 8f5f3e8eaa
commit 87ab7f1a5d
11 changed files with 378 additions and 49 deletions

View File

@@ -198,17 +198,19 @@ public interface PayService {
/**
* 申请退款接口
*
* 废弃
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param refundAmount 退款金额
* @param totalAmount 总金额
* @return 返回支付方申请退款后的结果
* @see #refund(RefundOrder)
*/
@Deprecated
Map<String, Object> refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount);
/**
* 申请退款接口
*
* 废弃
* @param tradeNo 支付平台订单号
* @param outTradeNo 商户单号
* @param refundAmount 退款金额
@@ -216,9 +218,28 @@ public interface PayService {
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方申请退款后的结果
* @see #refund(RefundOrder, Callback)
*/
@Deprecated
<T>T refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount, Callback<T> callback);
/**
* 申请退款接口
*
* @param refundOrder 退款订单信息
* @return 返回支付方申请退款后的结果
*/
Map<String, Object> refund(RefundOrder refundOrder);
/**
* 申请退款接口
*
* @param refundOrder 退款订单信息
* @param callback 处理器
* @param <T> 返回类型
* @return 返回支付方申请退款后的结果
*/
<T>T refund(RefundOrder refundOrder, Callback<T> callback);
/**
* 查询退款
*

View File

@@ -0,0 +1,112 @@
package com.egzosn.pay.common.bean;
import java.math.BigDecimal;
import java.util.Date;
/**
* 退款订单信息
* @author: egan
* <pre>
* email egzosn@gmail.com
* date 2018/1/15 21:40
* </pre>
*/
public class RefundOrder {
/**
* 退款单号,每次进行退款的单号,此处唯一
*/
private String refundNo;
/**
* 支付平台订单号,交易号
*/
private String tradeNo;
/**
* 商户单号
*/
private String outTradeNo;
/**
* 退款金额
*/
private BigDecimal refundAmount;
/**
* 订单总金额
*/
private BigDecimal totalAmount;
/**
* 交易日期
*/
private Date orderDate;
public String getRefundNo() {
return refundNo;
}
public void setRefundNo(String refundNo) {
this.refundNo = refundNo;
}
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
public BigDecimal getRefundAmount() {
return refundAmount;
}
public void setRefundAmount(BigDecimal refundAmount) {
this.refundAmount = refundAmount;
}
public BigDecimal getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(BigDecimal totalAmount) {
this.totalAmount = totalAmount;
}
public Date getOrderDate() {
return orderDate;
}
public void setOrderDate(Date orderDate) {
this.orderDate = orderDate;
}
public RefundOrder() {
}
public RefundOrder(String refundNo, String tradeNo, BigDecimal refundAmount) {
this.refundNo = refundNo;
this.tradeNo = tradeNo;
this.refundAmount = refundAmount;
}
public RefundOrder(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
this.tradeNo = tradeNo;
this.outTradeNo = outTradeNo;
this.refundAmount = refundAmount;
this.totalAmount = totalAmount;
}
public RefundOrder(String refundNo, String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
this.refundNo = refundNo;
this.tradeNo = tradeNo;
this.outTradeNo = outTradeNo;
this.refundAmount = refundAmount;
this.totalAmount = totalAmount;
}
}