From 1f90e71a4931c1809dd7595b90285a09f2644f33 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 29 Sep 2022 17:13:05 +0800 Subject: [PATCH] 20220902 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 38 +++++++++++++++++++++++++++++++++++--- 1 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index cb29bb9..3797798 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -74,6 +74,7 @@ private final UnipayService unipayService; private final MallMemberBankSignMapper mallMemberBankSignMapper; + private final MallMemberBankMapper mallMemberBankMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -235,10 +236,31 @@ String rcResult = ""; switch (payOrderDto.getType()) { case "1": + UnipayDto unipayDtoWx = new UnipayDto(); +// unipayDto.setAmount(new BigDecimal("0.01")); + unipayDtoWx.setAmount(orderInfo.getAmount()); + unipayDtoWx.setFrpCode("WEIXIN_APP3"); + unipayDtoWx.setTradeMerchantNo("777180800385820"); + unipayDtoWx.setOrderNo(orderInfo.getOrderNo()); + List<MallOrderItem> itemsWx = orderInfo.getItems(); + if(CollUtil.isEmpty(itemsWx)){ + unipayDtoWx.setProductName("商品"); + }else{ + unipayDtoWx.setProductName(itemsWx.get(0).getGoodsName()); + } + String unipayStrWx = unipayService.unipay(unipayDtoWx); + if("fail" == unipayStrWx){ + throw new FebsException("支付失败"); + }else{ +// JSONUtil.parseObj(unipayStr); + JSONObject jsonObject = JSONUtil.parseObj(unipayStrWx); + payResultStr = (String) jsonObject.get("r7_TrxNo"); + rcResult = (String) jsonObject.get("rc_Result"); + } + orderInfo.setPayOrderNo(payResultStr); // orderInfo.setPayOrderNo(payOrderDto.getPayOrderNo()); // orderInfo.setPayImage(payOrderDto.getPayImage()); orderInfo.setPayMethod("微信支付"); - agentProducer.sendOrderReturn(orderInfo.getId()); break; case "2": // if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) { @@ -250,7 +272,7 @@ // unipayDto.setAmount(new BigDecimal("0.01")); unipayDto.setAmount(orderInfo.getAmount()); unipayDto.setFrpCode("ALIPAY_H5"); - unipayDto.setTradeMerchantNo("777180800385820"); + unipayDto.setTradeMerchantNo("777184100385821"); unipayDto.setOrderNo(orderInfo.getOrderNo()); List<MallOrderItem> items = orderInfo.getItems(); if(CollUtil.isEmpty(items)){ @@ -372,7 +394,17 @@ }else{ agreementPayDto.setOrderDesc(itemsGoods.get(0).getGoodsName()); } - agreementPayDto.setBankNo(payOrderDto.getBankNo()); + Long bankId = payOrderDto.getBankId() == null ? 0L : payOrderDto.getBankId(); + MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(bankId); + if(ObjectUtil.isEmpty(mallMemberBank)){ + throw new FebsException("银行卡未添加"); + } + String bankNo = mallMemberBank.getBankNo(); + MallMemberBankSign mallMemberBankSign = mallMemberBankSignMapper.selectOneByMemberIdAndBankCardNo(member.getId(), bankNo); + if(ObjectUtil.isEmpty(mallMemberBankSign)){ + throw new FebsException("银行卡未签约"); + } + agreementPayDto.setBankNo(bankNo); String agreementPayStr = unipayService.agreementPay(agreementPayDto); if("fail".equals(agreementPayStr)){ -- Gitblit v1.9.1