| | |
| | | private TransactionsMapper transactionsMapper; |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Refund wxRefund(RefundDTO refundDTO) { |
| | | try { |
| | | // 发送退款请求 |
| | |
| | | WxPayRefundRequest request = new WxPayRefundRequest(); |
| | | request.setOutTradeNo(refundDTO.getOrderId()); |
| | | request.setOutRefundNo(refNum); |
| | | request.setTotalFee(BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString())); |
| | | request.setRefundFee(BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString())); |
| | | // request.setTotalFee(BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString())); |
| | | // request.setRefundFee(BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString())); |
| | | System.out.println("实际总金额" + BaseWxPayRequest.yuanToFen(refundDTO.getTotalAmount().toString())); |
| | | System.out.println("实际退款金额" + BaseWxPayRequest.yuanToFen(refundDTO.getRefundAmount().toString())); |
| | | |
| | | request.setTotalFee(1); |
| | | request.setRefundFee(1); |
| | | WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request); |
| | | if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) { |
| | | //存储退款记录 与 流水记录 |
| | | Refund refund = new Refund(); |
| | | refund.setId(Constants.getUUID()); |
| | | refund.setCreateDate(new Date()); |
| | | refund.setMemberId(refundDTO.getMemberId()); |
| | | refund.setMoney(refundDTO.getRefundAmount()); |
| | | refund.setOnlineOrderid(refNum); |
| | | refund.setPayWay(Constants.ZERO); |
| | | refund.setStatus(Constants.TWO); |
| | | refund.setDoneDate(new Date()); |
| | | refund.setCreator(refundDTO.getCreator()); |
| | | refund.setType(refundDTO.getType()); |
| | | refund.setObjId(refundDTO.getOrderId()); |
| | | refund.setReason(refundDTO.getReason()); |
| | | refund.setCanBalance(refundDTO.getCanBalance()); |
| | | refundMapper.insert(refund); |
| | | //存储交易流水表 |
| | | Transactions transactions = new Transactions(); |
| | | transactions.setId(Constants.getUUID()); |
| | | transactions.setMemberId(refundDTO.getMemberId()); |
| | | transactions.setCreateDate(new Date()); |
| | | transactions.setIsdeleted(Constants.ZERO); |
| | | transactions.setOrderId(refundDTO.getOrderId()); |
| | | transactions.setMoney(refundDTO.getRefundAmount()); |
| | | transactions.setType(refundDTO.getType()==Constants.transactionsType.refund?Constants.transactionsType.platformRefund:Constants.transactionsType.refund); |
| | | transactions.setType(refundDTO.getType()==Constants.TRANSACTIONS_TYPE.REFUND.getKey()?Constants.TRANSACTIONS_TYPE.PLATFORMREFUND.getKey():Constants.REFUND_TYPE.BACK.getKey()); |
| | | transactions.setPreOrderid(refundDTO.getOrderId()); |
| | | transactions.setOnlineOrderid(refNum); |
| | | transactions.setDoneDate(new Date()); |
| | | transactions.setTitle("退款"); |
| | | transactions.setContent(refundDTO.getType()==Constants.transactionsType.refund?"平台退款":"结算退款"); |
| | | transactions.setTitle(Constants.TRANSACTIONS_TYPE.get(transactions.getType()).getName()); |
| | | transactions.setContent(Constants.TRANSACTIONS_TYPE.get(transactions.getType()).getInfo()); |
| | | transactions.setBalance(BigDecimal.ZERO); |
| | | transactions.setObjId(refund.getId()); |
| | | transactions.setObjType(Constants.ONE); |