支付宝退款兼容

This commit is contained in:
egzosn
2021-12-04 22:02:55 +08:00
parent 5b6af98ac8
commit 7a989a7a15
3 changed files with 23 additions and 14 deletions

View File

@@ -32,7 +32,6 @@ import com.egzosn.pay.ali.bean.OrderSettle;
import com.egzosn.pay.common.api.BasePayService;
import com.egzosn.pay.common.bean.AssistOrder;
import com.egzosn.pay.common.bean.BillType;
import com.egzosn.pay.common.bean.MethodType;
import com.egzosn.pay.common.bean.NoticeParams;
import com.egzosn.pay.common.bean.Order;
@@ -499,11 +498,11 @@ public class AliPayService extends BasePayService<AliPayConfigStorage> {
/**
* 交易关闭接口
*
* @param assistOrder 关闭订单
* @param assistOrder 关闭订单
* @return 返回支付方交易关闭后的结果
*/
@Override
public Map<String, Object> close(AssistOrder assistOrder){
public Map<String, Object> close(AssistOrder assistOrder) {
return secondaryInterface(assistOrder.getTradeNo(), assistOrder.getOutTradeNo(), AliTransactionType.CLOSE);
}
@@ -554,12 +553,14 @@ public class AliPayService extends BasePayService<AliPayConfigStorage> {
//获取公共参数
Map<String, Object> parameters = getPublicParameters(AliTransactionType.REFUND);
setAppAuthToken(parameters, refundOrder.getAttrs());
Map<String, Object> bizContent = getBizContent(refundOrder.getTradeNo(), refundOrder.getOutTradeNo(), null);
if (!StringUtils.isEmpty(refundOrder.getRefundNo())) {
bizContent.put("out_request_no", refundOrder.getRefundNo());
}
OrderParaStructure.loadParameters(bizContent, AliPayConst.OUT_REQUEST_NO, refundOrder.getRefundNo());
bizContent.put("refund_amount", Util.conversionAmount(refundOrder.getRefundAmount()));
bizContent.putAll(refundOrder.getAttrs());
OrderParaStructure.loadParameters(bizContent, AliPayConst.REFUND_REASON, refundOrder.getDescription());
OrderParaStructure.loadParameters(bizContent, AliPayConst.REFUND_REASON, refundOrder);
OrderParaStructure.loadParameters(bizContent,"refund_royalty_parameters", refundOrder);
OrderParaStructure.loadParameters(bizContent, AliPayConst.QUERY_OPTIONS, refundOrder);
//设置请求参数的集合
parameters.put(BIZ_CONTENT, JSON.toJSONString(bizContent));
//设置签名
@@ -584,13 +585,8 @@ public class AliPayService extends BasePayService<AliPayConfigStorage> {
Map<String, Object> parameters = getPublicParameters(AliTransactionType.REFUNDQUERY);
setAppAuthToken(parameters, refundOrder.getAttrs());
Map<String, Object> bizContent = getBizContent(refundOrder.getTradeNo(), refundOrder.getOutTradeNo(), null);
if (!StringUtils.isEmpty(refundOrder.getRefundNo())) {
bizContent.put("out_request_no", refundOrder.getRefundNo());
}
OrderParaStructure.loadParameters(parameters, "biz_type", refundOrder);
OrderParaStructure.loadParameters(parameters, "refund_reason", refundOrder.getDescription());
OrderParaStructure.loadParameters(parameters, "store_id", refundOrder);
OrderParaStructure.loadParameters(parameters, "terminal_id", refundOrder);
OrderParaStructure.loadParameters(bizContent, AliPayConst.OUT_REQUEST_NO, refundOrder.getRefundNo());
OrderParaStructure.loadParameters(bizContent, AliPayConst.QUERY_OPTIONS, refundOrder);
// bizContent.putAll(refundOrder.getAttrs());
//设置请求参数的集合
parameters.put(BIZ_CONTENT, JSON.toJSONString(bizContent));

View File

@@ -60,4 +60,12 @@ public final class AliPayConst {
* 收款方信息
*/
public static final String ALIPAY_CERT_SN_FIELD = "alipay_cert_sn";
/**
* 业务扩展参数
*/
public static final String EXTEND_PARAMS = "extend_params";
public static final String BIZ_TYPE = "biz_type";
public static final String REFUND_REASON = "refund_reason";
public static final String QUERY_OPTIONS = "query_options";
public static final String OUT_REQUEST_NO = "out_request_no";
}

View File

@@ -84,6 +84,11 @@ public enum AliTransactionType implements TransactionType {
* 退款查询
*/
REFUNDQUERY("alipay.trade.fastpay.refund.query"),
/**
* 收单退款冲退完成通知
* 退款存在退到银行卡场景下时,收单会根据银行回执消息发送退款完成信息
*/
REFUND_DEPOSITBACK_COMPLETED ("alipay.trade.refund.depositback.completed"),
/**
* 下载对账单
*/