mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 19:15:35 +08:00
订单分账逻辑
This commit is contained in:
@@ -68,6 +68,9 @@ public class AdapayCallbackRecord implements Serializable {
|
||||
@JsonIgnore
|
||||
private String expend;
|
||||
|
||||
/**
|
||||
* 手续费
|
||||
*/
|
||||
private BigDecimal feeAmt;
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.huifu.adapay.model.PaymentConfirm;
|
||||
import com.huifu.adapay.model.PaymentReverse;
|
||||
import com.huifu.adapay.model.Refund;
|
||||
import com.jsowell.adapay.common.CreateAdaPaymentParam;
|
||||
import com.jsowell.adapay.common.DivMember;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.domain.vo.AuthorizedDeptVO;
|
||||
@@ -869,6 +870,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
|
||||
/**
|
||||
* 订单分账逻辑
|
||||
* 只有开通结算账户的运营商才走分账逻辑
|
||||
*/
|
||||
private void ledgerAccount(OrderBasicInfo orderBasicInfo) throws BaseAdaPayException {
|
||||
// 查询运营商有没有开通结算账户
|
||||
@@ -879,18 +881,39 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
|
||||
}
|
||||
|
||||
// 查询订单的交易id
|
||||
String paymentId = "";
|
||||
AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderBasicInfo.getOrderCode());
|
||||
if (adapayCallbackRecord == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_ADAPAY_CALLBACK_IS_NULL_ERROR);
|
||||
}
|
||||
String paymentId = adapayCallbackRecord.getPaymentId();
|
||||
|
||||
// 金额
|
||||
String settleAmount = AdapayUtil.formatAmount(orderBasicInfo.getSettleAmount());
|
||||
|
||||
// 调汇付的分账接口 确认交易
|
||||
Map<String, Object> confirm = Maps.newHashMap();
|
||||
confirm.put("payment_id", paymentId);
|
||||
confirm.put("order_no", "jsdk_confirm_" + System.currentTimeMillis());
|
||||
confirm.put("confirm_amt", "0.01");
|
||||
confirm.put("description", "description");
|
||||
confirm.put("div_members", "");
|
||||
Map<String, Object> response = PaymentConfirm.create(confirm);
|
||||
Map<String, Object> confirmParams = Maps.newHashMap();
|
||||
|
||||
// Adapay生成的支付对象id
|
||||
confirmParams.put("payment_id", paymentId);
|
||||
|
||||
// 请求订单号,只能为英文、数字或者下划线的一种或多种组合,保证在app_id下唯一
|
||||
confirmParams.put("order_no", "java_sdk_paymemt_confirm_" + System.currentTimeMillis());
|
||||
|
||||
// 确认金额,必须大于0,保留两位小数点,如0.10、100.05等。必须小于等于原支付金额-已确认金额-已撤销金额。
|
||||
confirmParams.put("confirm_amt", settleAmount);
|
||||
|
||||
// 附加说明
|
||||
String description = "分账信息:[订单编号:" + orderBasicInfo.getOrderCode() + ", 结算账号:" + adapayMemberAccount.getAdapayMemberId() + "]";
|
||||
confirmParams.put("description", description);
|
||||
|
||||
// 分账对象信息
|
||||
DivMember divMember = new DivMember();
|
||||
divMember.setMember_id(adapayMemberAccount.getAdapayMemberId());
|
||||
divMember.setAmount(settleAmount);
|
||||
divMember.setFee_flag(Constants.Y);
|
||||
confirmParams.put("div_members", Lists.newArrayList(divMember));
|
||||
Map<String, Object> paymentConfirm = PaymentConfirm.create(confirmParams);
|
||||
logger.info("调分账接口param:{}, result:{}", JSON.toJSONString(confirmParams), JSON.toJSONString(paymentConfirm));
|
||||
// 保存分账接口返回的信息
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user