适用于延时分账场景的支付确认
This commit is contained in:
parent
3cb9c512ac
commit
bd01807460
|
|
@ -21,6 +21,7 @@ import javax.annotation.Resource;
|
|||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -34,6 +35,45 @@ public class AdapayService {
|
|||
@Resource
|
||||
private AdapayProperties adapayProperties;
|
||||
|
||||
/**
|
||||
* 支付确认
|
||||
* 适用于延时分账的场景。只有已支付完成且延时分账的Payment对象,才支持调用创建支付确认对象。
|
||||
* 支持一次全额或多次部分确认,多次部分确认时,当前确认金额 + 已确认金额 + 已撤销金额不能大于原支付金额。
|
||||
*
|
||||
* @param paymentId [必填] String(64) Adapay生成的支付对象id
|
||||
* @param orderNo [必填] String(64) 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
||||
* @param confirmAmt [必填] String(14) 确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额
|
||||
* @return 成功时同步返回一个包含 支付确认对象的JSON https://docs.adapay.tech/api/trade.html#id54
|
||||
*/
|
||||
public Map<String, Object> paymentConfirm(@NotNull String paymentId, @NotNull String orderNo, @NotNull String confirmAmt) throws BaseAdaPayException {
|
||||
return paymentConfirm(paymentId, orderNo, confirmAmt, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付确认
|
||||
* 适用于延时分账的场景。只有已支付完成且延时分账的Payment对象,才支持调用创建支付确认对象。
|
||||
* 支持一次全额或多次部分确认,多次部分确认时,当前确认金额 + 已确认金额 + 已撤销金额不能大于原支付金额。
|
||||
*
|
||||
* @param paymentId [必填] String(64) Adapay生成的支付对象id
|
||||
* @param orderNo [必填] String(64) 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
||||
* @param confirmAmt [必填] String(14) 确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额
|
||||
* @param description String(128) 附加说明
|
||||
* @param feeMode String(1) 手续费收取模式:O-商户手续费账户扣取手续费,I-交易金额中扣取手续费;值为空时,默认值为I;若为O时,分账对象列表中不支持传入手续费承担方
|
||||
* @param divMembers 分账对象信息列表,一次请求最多仅支持7个分账方。json对象 形式,详见 分账对象信息列表
|
||||
* @return 成功时同步返回一个包含 支付确认对象的JSON https://docs.adapay.tech/api/trade.html#id54
|
||||
*/
|
||||
public Map<String, Object> paymentConfirm(@NotNull String paymentId, @NotNull String orderNo, @NotNull String confirmAmt,
|
||||
String description, String feeMode, List<DivMember> divMembers) throws BaseAdaPayException {
|
||||
Map<String, Object> confirmParams = new HashMap<>();
|
||||
confirmParams.put("payment_id", paymentId);
|
||||
confirmParams.put("order_no", orderNo);
|
||||
confirmParams.put("confirm_amt", confirmAmt);
|
||||
confirmParams.put("div_members", divMembers);
|
||||
confirmParams.put("fee_mode", feeMode);
|
||||
confirmParams.put("description", description);
|
||||
return PaymentConfirm.create(confirmParams);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建余额支付请求
|
||||
* 商户利用该接口进行余额支付,支持同一商户下的商户-用户,用户-商户,用户-用户间的账户余额支付
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public class PayParam {
|
|||
private String feeMode;
|
||||
|
||||
/**
|
||||
* 包含所有必填参数的构造器,其它参数按需set
|
||||
* 包含所有[必填参数]的构造器,其它参数按需set
|
||||
*
|
||||
* @param orderNo [必填项]请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
||||
* @param payAmt [必填项]交易金额,必须大于0,保留两位小数点,如"0.10"、"100.05"
|
||||
|
|
@ -80,4 +80,19 @@ public class PayParam {
|
|||
String jsonString = JSON.toJSONString(this);
|
||||
return JSON.parseObject(jsonString);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造一个延迟分账的支付参数
|
||||
*
|
||||
* @param orderNo [必填项]请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
||||
* @param payAmt [必填项]交易金额,必须大于0,保留两位小数点,如"0.10"、"100.05"
|
||||
* @param goodsTittle [必填项]商品名称
|
||||
* @param goodsDesc [必填项]商品描述信息,微信小程序和微信公众号该字段最大长度42个字符
|
||||
* @return 支付参数
|
||||
*/
|
||||
public static PayParam createDelayPay(String orderNo, String payAmt, String goodsTittle, String goodsDesc) {
|
||||
PayParam payParam = new PayParam(orderNo, payAmt, goodsTittle, goodsDesc);
|
||||
payParam.setPayMode("delay");
|
||||
return payParam;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue