gongzuming
2024-10-24 3db677d8ad84f04b84ba2c74f7fc0dd7e5df239d
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());