|
|
@@ -1,5 +1,6 @@
|
|
|
package com.zhongshu.card.server.core.service.pay;
|
|
|
|
|
|
+import cn.hutool.core.util.ArrayUtil;
|
|
|
import com.github.microservice.core.util.JsonUtil;
|
|
|
import com.github.microservice.core.util.bean.BeanUtil;
|
|
|
import com.github.microservice.core.util.queue.ExecuteQueueUtil;
|
|
|
@@ -20,6 +21,7 @@ import com.github.microservice.pay.client.type.ledger.TransactionType;
|
|
|
import com.github.microservice.types.payment.PaymentChannelType;
|
|
|
import com.github.microservice.types.payment.PaymentType;
|
|
|
import com.zhongshu.card.client.model.pay.ChinaumsSenselessUserSignInfoModel;
|
|
|
+import com.zhongshu.card.client.model.pay.SatInfoModel;
|
|
|
import com.zhongshu.card.client.model.pay.UnionApplySignParam;
|
|
|
import com.zhongshu.card.client.type.ContractState;
|
|
|
import com.zhongshu.card.client.type.ShareOrderType;
|
|
|
@@ -29,6 +31,7 @@ import com.zhongshu.card.server.core.dao.pay.ShareOrderDao;
|
|
|
import com.zhongshu.card.server.core.domain.pay.ChinaumsSenselessUserSignInfo;
|
|
|
import com.zhongshu.card.server.core.domain.pay.PayAccount;
|
|
|
import com.zhongshu.card.server.core.domain.pay.ShareOrder;
|
|
|
+import com.zhongshu.card.server.core.model.pay.RefundVaFld;
|
|
|
import com.zhongshu.card.server.core.model.pay.UnionFrictionlessPayFinishModel;
|
|
|
import com.zhongshu.card.server.core.service.base.SuperService;
|
|
|
import com.zhongshu.card.server.core.service.paySetting.OrgPayAccountService;
|
|
|
@@ -43,6 +46,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StopWatch;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -272,18 +276,11 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
* 支付
|
|
|
*/
|
|
|
@SneakyThrows
|
|
|
- public ResultContent senselessPay(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark) {
|
|
|
+ public ResultContent senselessPay(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark, List<SatInfoModel> satInfoModel) {
|
|
|
StopWatch stopWatch = new StopWatch();
|
|
|
stopWatch.start("获取支付配置");
|
|
|
String projectAccountName = orgPayAccountService.queryOgPayAccount(projectOid, PaymentType.UnionFrictionlessPay);
|
|
|
//获取银联支付产品账户及需要签约的商户号
|
|
|
- String orgAccountName = orgPayAccountService.queryOgPayAccount(oid, PaymentType.UnionFrictionlessPay);
|
|
|
-
|
|
|
- com.github.microservice.pay.client.ret.ResultContent<AccountModel> orgAccountModelResultContent = payProductAccountService.get(orgAccountName);
|
|
|
- if (!orgAccountModelResultContent.getState().equals(ResultState.Success)) {
|
|
|
- return ResultContent.buildFail(orgAccountModelResultContent.getMsg());
|
|
|
- }
|
|
|
- ChinaumsSenselessConf orgConf = (ChinaumsSenselessConf) orgAccountModelResultContent.getContent().getConf();
|
|
|
|
|
|
com.github.microservice.pay.client.ret.ResultContent<AccountModel> projectAccountModelResultContent = payProductAccountService.get(projectAccountName);
|
|
|
if (!projectAccountModelResultContent.getState().equals(ResultState.Success)) {
|
|
|
@@ -311,26 +308,12 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
request.setTotalAmount(total.toBigInteger().toString());
|
|
|
request.setAttachedData(remark);
|
|
|
|
|
|
- String shareOrderNo = projectConf.getSysSourceNo() + DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyyMMddHHmmssSSS) + CommonUtil.randomCode(7);
|
|
|
-
|
|
|
VaFld vaFld = new VaFld();
|
|
|
- SatInfo satInfo = new SatInfo();
|
|
|
- satInfo.setMerId(orgConf.getMchId());
|
|
|
- satInfo.setFeeBear("Y");
|
|
|
- satInfo.setSatAmt(total.toBigInteger().toString());
|
|
|
- satInfo.setMerOrderId(shareOrderNo);
|
|
|
- vaFld.setSatInfo(List.of(satInfo));
|
|
|
- request.setVaFld(vaFld);
|
|
|
|
|
|
- //TODO 放到扩展字段里,然后收到回调的时候再处理
|
|
|
- ShareOrder shareOrder = new ShareOrder();
|
|
|
- shareOrder.setOrderNo(orderNo);
|
|
|
- shareOrder.setOid(oid);
|
|
|
- shareOrder.setProjectOid(projectOid);
|
|
|
- shareOrder.setAmount(total.toBigInteger().longValue());
|
|
|
- shareOrder.setShareOrderType(ShareOrderType.Pay);
|
|
|
- shareOrder.setShareOrderNo(shareOrderNo);
|
|
|
- shareOrderDao.save(shareOrder);
|
|
|
+ List<SatInfo> satInfos = buildSatInfo(projectOid, total, orderNo, projectConf.getSysSourceNo(), satInfoModel);
|
|
|
+ vaFld.setSatInfo(satInfos);
|
|
|
+
|
|
|
+ request.setVaFld(vaFld);
|
|
|
request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", orderNo, "prefix", projectConf.getOrderNoPrefix())));
|
|
|
payProductParameter.setMeta(BeanUtil.bean2Map(request));
|
|
|
|
|
|
@@ -354,6 +337,47 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
return ResultContent.buildFail(bodyMap.get("respDesc").toString());
|
|
|
}
|
|
|
|
|
|
+ private List<SatInfo> buildSatInfo(String projectOid, BigDecimal total, String orderNo, String sysSourceNo, List<SatInfoModel> satInfoModels) {
|
|
|
+
|
|
|
+ return satInfoModels.stream().map(model -> {
|
|
|
+ if (BigDecimal.ZERO.compareTo(model.getRatio()) >= 0) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String orgAccountName = orgPayAccountService.queryOgPayAccount(model.getOid(), PaymentType.UnionFrictionlessPay);
|
|
|
+
|
|
|
+ com.github.microservice.pay.client.ret.ResultContent<AccountModel> orgAccountModelResultContent = payProductAccountService.get(orgAccountName);
|
|
|
+ if (!orgAccountModelResultContent.getState().equals(ResultState.Success)) {
|
|
|
+ throw new RuntimeException("orgAccountModelResultContent.getMsg()");
|
|
|
+ }
|
|
|
+ ChinaumsSenselessConf orgConf = (ChinaumsSenselessConf) orgAccountModelResultContent.getContent().getConf();
|
|
|
+
|
|
|
+ String shareOrderNo = buildShareOrderNo(sysSourceNo);
|
|
|
+
|
|
|
+ SatInfo satInfo = new SatInfo();
|
|
|
+ satInfo.setMerId(orgConf.getMchId());
|
|
|
+ satInfo.setFeeBear("Y");
|
|
|
+ BigDecimal ratioTotal = total.multiply(model.getRatio());
|
|
|
+ satInfo.setSatAmt(ratioTotal.toBigInteger().toString());
|
|
|
+ satInfo.setMerOrderId(shareOrderNo);
|
|
|
+
|
|
|
+ ShareOrder shareOrder = new ShareOrder();
|
|
|
+ shareOrder.setOrderNo(orderNo);
|
|
|
+ shareOrder.setOid(model.getOid());
|
|
|
+ shareOrder.setProjectOid(projectOid);
|
|
|
+
|
|
|
+ shareOrder.setAmount(ratioTotal.toBigInteger().longValue());
|
|
|
+ shareOrder.setRatio(model.getRatio());
|
|
|
+ shareOrder.setShareOrderType(ShareOrderType.Pay);
|
|
|
+ shareOrder.setShareOrderNo(shareOrderNo);
|
|
|
+ shareOrderDao.save(shareOrder);
|
|
|
+ return satInfo;
|
|
|
+ }).toList();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String buildShareOrderNo(String sysSourceNo){
|
|
|
+ return sysSourceNo + DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyyMMddHHmmssSSS) + CommonUtil.randomCode(7);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* orderNo: 支付订单号
|
|
|
* refundOrderNo 退款订单号
|
|
|
@@ -363,13 +387,7 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
|
|
|
String projectAccountName = orgPayAccountService.queryOgPayAccount(projectOid, PaymentType.UnionFrictionlessPay);
|
|
|
//获取银联支付产品账户及需要签约的商户号
|
|
|
- String orgAccountName = orgPayAccountService.queryOgPayAccount(oid, PaymentType.UnionFrictionlessPay);
|
|
|
|
|
|
- com.github.microservice.pay.client.ret.ResultContent<AccountModel> orgAccountModelResultContent = payProductAccountService.get(orgAccountName);
|
|
|
- if (!orgAccountModelResultContent.getState().equals(ResultState.Success)) {
|
|
|
- return ResultContent.buildFail(orgAccountModelResultContent.getMsg());
|
|
|
- }
|
|
|
- ChinaumsSenselessConf orgConf = (ChinaumsSenselessConf) orgAccountModelResultContent.getContent().getConf();
|
|
|
|
|
|
com.github.microservice.pay.client.ret.ResultContent<AccountModel> projectAccountModelResultContent = payProductAccountService.get(projectAccountName);
|
|
|
if (!projectAccountModelResultContent.getState().equals(ResultState.Success)) {
|
|
|
@@ -386,31 +404,42 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
request.setRefundAmount(total.toBigInteger().toString());
|
|
|
request.setTargetOrderId(targetOrderId);
|
|
|
|
|
|
-
|
|
|
- ShareOrder shareOrder = shareOrderDao.findTopByOrderNoAndProjectOidAndOidAndShareOrderType(orderNo, projectOid, oid, ShareOrderType.Pay);
|
|
|
- String shareOrderNo = projectConf.getSysSourceNo() + DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyyMMddHHmmssSSS) + CommonUtil.randomCode(7);
|
|
|
-
|
|
|
+ //TODO 放到扩展字段里,然后收到回调的时候再处理
|
|
|
+ List<ShareOrder> shareOrderList = shareOrderDao.findByOrderNoAndProjectOidAndShareOrderType(orderNo, projectOid, ShareOrderType.Pay);
|
|
|
+ List<SatInfo> satInfos = shareOrderList.stream().map(shareOrder -> {
|
|
|
+ String orgAccountName = orgPayAccountService.queryOgPayAccount(shareOrder.getOid(), PaymentType.UnionFrictionlessPay);
|
|
|
+ com.github.microservice.pay.client.ret.ResultContent<AccountModel> orgAccountModelResultContent = payProductAccountService.get(orgAccountName);
|
|
|
+ if (!orgAccountModelResultContent.getState().equals(ResultState.Success)) {
|
|
|
+ throw new RuntimeException(orgAccountModelResultContent.getMsg());
|
|
|
+ }
|
|
|
+ ChinaumsSenselessConf orgConf = (ChinaumsSenselessConf) orgAccountModelResultContent.getContent().getConf();
|
|
|
+
|
|
|
+ String shareOrderNo = projectConf.getSysSourceNo() + DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyyMMddHHmmssSSS) + CommonUtil.randomCode(7);
|
|
|
+
|
|
|
+ SatInfo satInfo = new SatInfo();
|
|
|
+ satInfo.setMerId(orgConf.getMchId());
|
|
|
+ BigDecimal multiplyTotal = total.multiply(shareOrder.getRatio());
|
|
|
+ satInfo.setRefundAmt(multiplyTotal.toBigInteger().toString());
|
|
|
+ satInfo.setRefundOrderId(shareOrderNo);
|
|
|
+ satInfo.setOriMerOrderId(shareOrder.getShareOrderNo());
|
|
|
+
|
|
|
+ ShareOrder refundShareOrder = new ShareOrder();
|
|
|
+ refundShareOrder.setOrderNo(orderNo);
|
|
|
+ refundShareOrder.setOid(shareOrder.getOid());
|
|
|
+ refundShareOrder.setProjectOid(projectOid);
|
|
|
+ refundShareOrder.setAmount(multiplyTotal.toBigInteger().longValue());
|
|
|
+ refundShareOrder.setRatio(shareOrder.getRatio());
|
|
|
+ refundShareOrder.setShareOrderType(ShareOrderType.Refund);
|
|
|
+ refundShareOrder.setShareOrderNo(shareOrderNo);
|
|
|
+ refundShareOrder.setOriShareOrderNo(shareOrder.getShareOrderNo());
|
|
|
+ shareOrderDao.save(refundShareOrder);
|
|
|
+ return satInfo;
|
|
|
+ }).toList();
|
|
|
|
|
|
VaFld vaFld = new VaFld();
|
|
|
- SatInfo satInfo = new SatInfo();
|
|
|
- satInfo.setMerId(orgConf.getMchId());
|
|
|
-// satInfo.setFeeBear("Y");
|
|
|
- satInfo.setRefundAmt(total.toBigInteger().toString());
|
|
|
- satInfo.setRefundOrderId(shareOrderNo);
|
|
|
- satInfo.setOriMerOrderId(shareOrder.getShareOrderNo());
|
|
|
- vaFld.setSatInfo(List.of(satInfo));
|
|
|
+ vaFld.setSatInfo(satInfos);
|
|
|
request.setVaFld(vaFld);
|
|
|
|
|
|
- //TODO 放到扩展字段里,然后收到回调的时候再处理
|
|
|
- ShareOrder refundShareOrder = new ShareOrder();
|
|
|
- shareOrder.setOrderNo(orderNo);
|
|
|
- shareOrder.setOid(oid);
|
|
|
- shareOrder.setProjectOid(projectOid);
|
|
|
- shareOrder.setAmount(total.toBigInteger().longValue());
|
|
|
- shareOrder.setShareOrderType(ShareOrderType.Refund);
|
|
|
- shareOrder.setShareOrderNo(shareOrderNo);
|
|
|
- shareOrder.setOriShareOrderNo(shareOrder.getShareOrderNo());
|
|
|
- shareOrderDao.save(refundShareOrder);
|
|
|
request.setSrcReserve(JsonUtil.toJson(Map.of("userId", userId, "oid", oid, "projectOid", projectOid, "orderNo", refundOrderNo, "prefix", projectConf.getOrderNoPrefix())));
|
|
|
payProductParameter.setMeta(BeanUtil.bean2Map(request));
|
|
|
com.github.microservice.pay.client.ret.ResultContent<Object> refundResultContent = senselessPayService.refund(payProductParameter);
|
|
|
@@ -488,11 +517,12 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
unionFrictionlessPayFinishModel.setTargetOrderId((String) refundBody.get("refundTargetOrderId"));
|
|
|
|
|
|
if (handle && refundBody.get("status").equals("TRADE_SUCCESS") && refundBody.get("refundStatus").equals("SUCCESS")) {
|
|
|
+ RefundVaFld vaFld = JsonUtil.toObject(JsonUtil.toJson(refundBody.get("vaFld")), RefundVaFld.class);
|
|
|
com.github.microservice.pay.client.ret.ResultContent<List<TransactionLogModel>> listResultContent = handleRefund(projectOid,
|
|
|
oid,
|
|
|
userId,
|
|
|
new BigDecimal((String) refundBody.get("sendBackAmount")),
|
|
|
- refundOrderNo, null);
|
|
|
+ refundOrderNo, null, vaFld);
|
|
|
unionFrictionlessPayFinishModel.setTransactionLogModelList(listResultContent);
|
|
|
}
|
|
|
return ResultContent.buildContent(unionFrictionlessPayFinishModel);
|
|
|
@@ -503,11 +533,11 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
//TODO 判断支付状态
|
|
|
|
|
|
//获取项目总账
|
|
|
- PayAccount projectAccount = payAccountService.getProjectChildren(projectOid, PaymentChannelType.SecretFreePayment);
|
|
|
+// PayAccount projectAccount = payAccountService.getProjectChildren(projectOid, PaymentChannelType.SecretFreePayment);
|
|
|
//获取用户无感支付子账户
|
|
|
PayAccount userBalancePayment = payAccountService.getUserChildren(projectOid, userId, PaymentChannelType.SecretFreePayment);
|
|
|
//获取机构待结算账户
|
|
|
- PayAccount orgWaitSettle = payAccountService.getOrgChildren(projectOid, oid, PaymentChannelType.WaitSettle);
|
|
|
+// PayAccount orgWaitSettle = payAccountService.getOrgChildren(projectOid, oid, PaymentChannelType.WaitSettle);
|
|
|
// //支付:项目余额子账- 用户无感支付子账+
|
|
|
// //构建转账参数
|
|
|
// TransferTransactionsModel transferModel = new TransferTransactionsModel();
|
|
|
@@ -550,30 +580,47 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
userSourceTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户支付"));
|
|
|
payTransferModel.setSource(new TransferTransactionsModel.GeneralLedgerTransaction[]{userSourceTransaction});
|
|
|
|
|
|
- //构建入账账户
|
|
|
- TransferTransactionsModel.GeneralLedgerTransaction orgDestinationTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|
|
|
- orgDestinationTransaction.setGeneralLedgerId(orgWaitSettle.getLedgerId());
|
|
|
- orgDestinationTransaction.setOrderNumber(orderNo);
|
|
|
- orgDestinationTransaction.setTransactionType(TransactionType.Pay);
|
|
|
- orgDestinationTransaction.setTransactionStatus(TransactionStatus.Success);
|
|
|
- orgDestinationTransaction.setAmount(total.longValue());
|
|
|
- orgDestinationTransaction.setRemark(remark);
|
|
|
- orgDestinationTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户支付"));
|
|
|
- payTransferModel.setDestinations(new TransferTransactionsModel.GeneralLedgerTransaction[]{orgDestinationTransaction});
|
|
|
+ List<ShareOrder> shareOrderList = shareOrderDao.findByOrderNoAndProjectOidAndShareOrderType(orderNo, projectOid, ShareOrderType.Pay);
|
|
|
+
|
|
|
+ List<TransferTransactionsModel.GeneralLedgerTransaction> orgDestinationTransactions = shareOrderList.stream().map(shareOrder -> {
|
|
|
+ //获取机构待结算账户
|
|
|
+ PayAccount orgWaitSettle = payAccountService.getOrgChildren(projectOid, shareOrder.getOid(), PaymentChannelType.WaitSettle);
|
|
|
+ TransferTransactionsModel.GeneralLedgerTransaction orgDestinationTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|
|
|
+ orgDestinationTransaction.setGeneralLedgerId(orgWaitSettle.getLedgerId());
|
|
|
+ orgDestinationTransaction.setOrderNumber(orderNo);
|
|
|
+ orgDestinationTransaction.setTransactionType(TransactionType.Pay);
|
|
|
+ orgDestinationTransaction.setTransactionStatus(TransactionStatus.Success);
|
|
|
+ orgDestinationTransaction.setAmount(shareOrder.getAmount());
|
|
|
+ orgDestinationTransaction.setRemark(remark);
|
|
|
+ orgDestinationTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户支付"));
|
|
|
+ return orgDestinationTransaction;
|
|
|
+ }).toList();
|
|
|
+
|
|
|
+// //构建入账账户
|
|
|
+// TransferTransactionsModel.GeneralLedgerTransaction orgDestinationTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|
|
|
+// orgDestinationTransaction.setGeneralLedgerId(orgWaitSettle.getLedgerId());
|
|
|
+// orgDestinationTransaction.setOrderNumber(orderNo);
|
|
|
+// orgDestinationTransaction.setTransactionType(TransactionType.Pay);
|
|
|
+// orgDestinationTransaction.setTransactionStatus(TransactionStatus.Success);
|
|
|
+// orgDestinationTransaction.setAmount(total.longValue());
|
|
|
+// orgDestinationTransaction.setRemark(remark);
|
|
|
+// orgDestinationTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户支付"));
|
|
|
+// payTransferModel.setDestinations(new TransferTransactionsModel.GeneralLedgerTransaction[]{orgDestinationTransaction});
|
|
|
+ payTransferModel.setDestinations(orgDestinationTransactions.toArray(new TransferTransactionsModel.GeneralLedgerTransaction[]{}));
|
|
|
TransferTransactionsModels transactionsModels = new TransferTransactionsModels();
|
|
|
transactionsModels.setItems(new TransferTransactionsModel[]{payTransferModel});
|
|
|
return transactionLogService.transfers(transactionsModels);
|
|
|
}
|
|
|
|
|
|
- public com.github.microservice.pay.client.ret.ResultContent<List<TransactionLogModel>> handleRefund(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark) {
|
|
|
+ public com.github.microservice.pay.client.ret.ResultContent<List<TransactionLogModel>> handleRefund(String projectOid, String oid, String userId, BigDecimal total, String orderNo, String remark, RefundVaFld vaFld) {
|
|
|
//TODO 判断支付状态
|
|
|
|
|
|
- //获取项目总账
|
|
|
- PayAccount projectAccount = payAccountService.getProjectChildren(projectOid, PaymentChannelType.SecretFreePayment);
|
|
|
+// //获取项目总账
|
|
|
+// PayAccount projectAccount = payAccountService.getProjectChildren(projectOid, PaymentChannelType.SecretFreePayment);
|
|
|
//获取用户无感支付子账户
|
|
|
PayAccount userBalancePayment = payAccountService.getUserChildren(projectOid, userId, PaymentChannelType.SecretFreePayment);
|
|
|
//获取机构待结算账户
|
|
|
- PayAccount orgWaitSettle = payAccountService.getOrgChildren(projectOid, oid, PaymentChannelType.WaitSettle);
|
|
|
+
|
|
|
// //支付:项目余额子账+ 用户无感支付子账-
|
|
|
// //构建转账参数
|
|
|
// TransferTransactionsModel transferModel = new TransferTransactionsModel();
|
|
|
@@ -604,17 +651,36 @@ public class ChinaumsSenselessPayService extends SuperService {
|
|
|
|
|
|
//支付:机构余额子账- 用户无感支付子账+
|
|
|
//构建转账参数
|
|
|
+ List<RefundVaFld.SatDetail> satDetailList = vaFld.getSatDetail();
|
|
|
+ List<TransferTransactionsModel.GeneralLedgerTransaction> list = satDetailList.stream().map(satDetail -> {
|
|
|
+
|
|
|
+ ShareOrder shareOrderNo = shareOrderDao.findTopByShareOrderNo(satDetail.getRefundMerOrderId());
|
|
|
+ PayAccount orgWaitSettle = payAccountService.getOrgChildren(projectOid, shareOrderNo.getOid(), PaymentChannelType.WaitSettle);
|
|
|
+
|
|
|
+
|
|
|
+ TransferTransactionsModel.GeneralLedgerTransaction orgDestinationTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|
|
|
+ orgDestinationTransaction.setGeneralLedgerId(orgWaitSettle.getLedgerId());
|
|
|
+ orgDestinationTransaction.setOrderNumber(orderNo);
|
|
|
+ orgDestinationTransaction.setTransactionType(TransactionType.Refund);
|
|
|
+ orgDestinationTransaction.setTransactionStatus(TransactionStatus.Success);
|
|
|
+ orgDestinationTransaction.setAmount(shareOrderNo.getAmount());
|
|
|
+ orgDestinationTransaction.setRemark(remark);
|
|
|
+ orgDestinationTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户退款"));
|
|
|
+ return orgDestinationTransaction;
|
|
|
+ }).toList();
|
|
|
+
|
|
|
TransferTransactionsModel payTransferModel = new TransferTransactionsModel();
|
|
|
- //构建出账账户
|
|
|
- TransferTransactionsModel.GeneralLedgerTransaction orgDestinationTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|
|
|
- orgDestinationTransaction.setGeneralLedgerId(orgWaitSettle.getLedgerId());
|
|
|
- orgDestinationTransaction.setOrderNumber(orderNo);
|
|
|
- orgDestinationTransaction.setTransactionType(TransactionType.Refund);
|
|
|
- orgDestinationTransaction.setTransactionStatus(TransactionStatus.Success);
|
|
|
- orgDestinationTransaction.setAmount(total.negate().longValue());
|
|
|
- orgDestinationTransaction.setRemark(remark);
|
|
|
- orgDestinationTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户退款"));
|
|
|
- payTransferModel.setSource(new TransferTransactionsModel.GeneralLedgerTransaction[]{orgDestinationTransaction});
|
|
|
+// //构建出账账户
|
|
|
+// TransferTransactionsModel.GeneralLedgerTransaction orgDestinationTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|
|
|
+// orgDestinationTransaction.setGeneralLedgerId(orgWaitSettle.getLedgerId());
|
|
|
+// orgDestinationTransaction.setOrderNumber(orderNo);
|
|
|
+// orgDestinationTransaction.setTransactionType(TransactionType.Refund);
|
|
|
+// orgDestinationTransaction.setTransactionStatus(TransactionStatus.Success);
|
|
|
+// orgDestinationTransaction.setAmount(total.negate().longValue());
|
|
|
+// orgDestinationTransaction.setRemark(remark);
|
|
|
+// orgDestinationTransaction.setMeta(Map.of("paymentType", PaymentType.UnionFrictionlessPay, "description", "银联无感支付", "summary", "用户退款"));
|
|
|
+// payTransferModel.setSource(new TransferTransactionsModel.GeneralLedgerTransaction[]{orgDestinationTransaction});
|
|
|
+ payTransferModel.setSource(list.toArray(new TransferTransactionsModel.GeneralLedgerTransaction[]{}));
|
|
|
|
|
|
//构建入账账户
|
|
|
TransferTransactionsModel.GeneralLedgerTransaction userSourceTransaction = new TransferTransactionsModel.GeneralLedgerTransaction();
|