diff --git a/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/WalletServiceImpl.java b/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/WalletServiceImpl.java index 15c36b8..d7f6482 100644 --- a/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/WalletServiceImpl.java +++ b/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/service/impl/WalletServiceImpl.java @@ -335,13 +335,16 @@ if (StringUtils.isEmpty(guaranteedOrderNo)) { throw new YnceErrorException("系统异常,支付失败"); } + payment = paymentRepository.findFirstBySnOrderByIdDesc(paymentSn); + payment.setExternalId(guaranteedOrderNo); + paymentRepository.saveAndFlush(payment); // 发送 支付-------支付接口是实时返回成功或失败,判断条件是rspCode为00000 JSONObject jsonObject = this.sendChinaumsPay(order, paymentSn, guaranteedOrderNo); if (jsonObject == null || jsonObject.get("rspCode") == null || jsonObject.get("transOrderNo") == null) { throw new YnceErrorException("系统异常,支付失败"); } log.info("支付成功:" + jsonObject.toJSONString()); - payment = paymentRepository.findFirstBySnOrderByIdDesc(paymentSn); +// payment = paymentRepository.findFirstBySnOrderByIdDesc(paymentSn); String transOrderNo = jsonObject.get("transOrderNo").toString(); // 支付成功 if (jsonObject.get("rspCode").equals("00000")) { @@ -365,7 +368,7 @@ // log.error("预存款支付回调失败:请求收款失败"); // } // } -// this.handlePayStateSuccess(order, chinaumsGuaranteePayParamsDTOList); + this.handlePayStateSuccess(order, chinaumsGuaranteePayParamsDTOList); // } catch (Exception e) { // log.error(e.getMessage()); // throw new YnceErrorException("支付处理失败"); @@ -445,7 +448,7 @@ return null; } - private void handlePayStateSuccess(Order order, List chinaumsGuaranteePayParamsDTOList) { + private void handlePayStateSuccess(Order order, String guaranteedOrderNo, List chinaumsGuaranteePayParamsDTOList) { // 保存担保消费子订单信息 for (ChinaumsGuaranteePayParamsDTO chinaumsGuaranteePayParamsDTO : chinaumsGuaranteePayParamsDTOList) { @@ -456,6 +459,7 @@ BeanUtils.copyProperties(chinaumsGuaranteePayParamsDTO, chinaumsPayment, "amount"); chinaumsPayment.setAmount(new BigDecimal(chinaumsGuaranteePayParamsDTO.getAmount()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); chinaumsPayment.setOrders(order); + chinaumsPayment.setGuaranteePaymentId(guaranteedOrderNo); chinaumsPayment.setSubaccountType(SubaccountType.valueOf(chinaumsGuaranteePayParamsDTO.getMetadata().getSubaccountType())); chinaumsPaymentRepository.save(chinaumsPayment); } else { @@ -465,6 +469,7 @@ BeanUtils.copyProperties(chinaumsGuaranteePayParamsDTO, chinaumsPayment, "amount"); chinaumsPayment.setAmount(new BigDecimal(chinaumsGuaranteePayParamsDTO.getMetadata().getBrandFee()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); chinaumsPayment.setOrders(order); + chinaumsPayment.setGuaranteePaymentId(guaranteedOrderNo); chinaumsPayment.setSubaccountType(SubaccountType.BRAND_FEE); chinaumsPaymentRepository.save(chinaumsPayment); } @@ -475,6 +480,7 @@ BeanUtils.copyProperties(chinaumsGuaranteePayParamsDTO, chinaumsPayment, "amount"); chinaumsPayment.setAmount(new BigDecimal(guaranteePayMetaDataBrand.getBrandAuthFee()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); chinaumsPayment.setOrders(order); + chinaumsPayment.setGuaranteePaymentId(guaranteedOrderNo); chinaumsPayment.setSubaccountType(SubaccountType.BRAND_AUTH_FEE); chinaumsPayment.setBrandId(Long.valueOf(guaranteePayMetaDataBrand.getBrandId())); chinaumsPaymentRepository.save(chinaumsPayment); @@ -488,6 +494,7 @@ chinaumsPayment.setOutOrderNo(chinaumsGuaranteePayParamsDTO.getOutOrderNo()); chinaumsPayment.setAmount(new BigDecimal(chinaumsGuaranteePayParamsDTO.getAmount()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP)); chinaumsPayment.setOrders(order); + chinaumsPayment.setGuaranteePaymentId(guaranteedOrderNo); chinaumsPaymentRepository.save(chinaumsPayment); } }