From ddca8e96ee1aa47ba33fcf3a9a1e7e964d63ad8b Mon Sep 17 00:00:00 2001 From: 陶杰 <1378534974@qq.com> Date: 星期四, 31 十月 2024 17:15:43 +0800 Subject: [PATCH] fix: 钱包供应商财务1 --- src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java | 36 +++++++++++++++++++++++++----------- 1 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java index e93b82a..911682e 100644 --- a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java +++ b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java @@ -540,15 +540,6 @@ request.setTransactionId(o.getPaymentTrId()); request.setNotifyUrl(PyamentV3Configurer.notify_url_refund); - AmountReq amount = new AmountReq(); - int oa = prepareAmount(o.getPaymentAmount()); - amount.setTotal((long)oa); - amount.setRefund((long)oa); - amount.setCurrency("CNY"); - request.setAmount(amount); - // 调用接口 - refundService.create(request); - o.setRefundAmount(o.getPaymentAmount()); o.setRefundNo(request.getOutRefundNo()); o.setRefundTime(LocalDateTime.now()); @@ -562,6 +553,16 @@ deliveryOrderService.refundDelete(orderId); releasePrepayLock(o); + + //最后调用微信退款接口,防止回滚 + AmountReq amount = new AmountReq(); + int oa = prepareAmount(o.getPaymentAmount()); + amount.setTotal((long)oa); + amount.setRefund((long)oa); + amount.setCurrency("CNY"); + request.setAmount(amount); + // 调用接口 + refundService.create(request); } public String refundOrderSub(Order o, BigDecimal refundAmount){ @@ -702,8 +703,8 @@ InitiateBatchTransferRequest request = new InitiateBatchTransferRequest(); request.setAppid(dto.getAppId()); request.setOutBatchNo(transfer.getId());//【商家批次单号】 商户系统内部的商家批次单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一 - request.setBatchName(transfer.getName());//【批次名称】 该笔批量转账的名称 - request.setBatchRemark(transfer.getRemarks());//【批次备注】 转账说明,UTF8编码,最多允许32个字符 + request.setBatchName(subString(transfer.getName(), 32));//【批次名称】 该笔批量转账的名称 + request.setBatchRemark(subString(transfer.getRemarks(), 32));//【批次备注】 转账说明,UTF8编码,最多允许32个字符 List<TransferDetailReqDTO> details = dto.getDetails(); transfer.setTotalNum(details.size()); @@ -748,6 +749,19 @@ return transfer.getId(); } + private String subString(String str, int len){ + if(StringUtils.isEmpty(str)){ + return str; + } + + int length = str.length(); + if(length > len){ + return str.substring(0, len - 1); + } + + return str; + } + public void checkTransferStatus(Transfer transfer) {//定时任务验证转账状态 GetTransferBatchByOutNoRequest request = new GetTransferBatchByOutNoRequest(); request.setOutBatchNo(transfer.getId()); -- Gitblit v1.9.3