适用于延时分账场景的支付确认
This commit is contained in:
parent
3cb9c512ac
commit
bd01807460
|
|
@ -21,6 +21,7 @@ import javax.annotation.Resource;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -34,6 +35,45 @@ public class AdapayService {
|
||||||
@Resource
|
@Resource
|
||||||
private AdapayProperties adapayProperties;
|
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;
|
private String feeMode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 包含所有必填参数的构造器,其它参数按需set
|
* 包含所有[必填参数]的构造器,其它参数按需set
|
||||||
*
|
*
|
||||||
* @param orderNo [必填项]请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
* @param orderNo [必填项]请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
||||||
* @param payAmt [必填项]交易金额,必须大于0,保留两位小数点,如"0.10"、"100.05"
|
* @param payAmt [必填项]交易金额,必须大于0,保留两位小数点,如"0.10"、"100.05"
|
||||||
|
|
@ -80,4 +80,19 @@ public class PayParam {
|
||||||
String jsonString = JSON.toJSONString(this);
|
String jsonString = JSON.toJSONString(this);
|
||||||
return JSON.parseObject(jsonString);
|
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