From 8392493854d03fbcc8df911c3f5e7b1430579853 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 23 Aug 2022 17:24:40 +0800 Subject: [PATCH] 20220822 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 41 insertions(+), 5 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 baf7cbb..1deb5c2 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 @@ -1,5 +1,6 @@ package cc.mrbird.febs.mall.service.impl; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.*; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; @@ -16,18 +17,23 @@ import cc.mrbird.febs.mall.vo.OrderDetailVo; import cc.mrbird.febs.mall.vo.OrderListVo; import cc.mrbird.febs.mall.vo.OrderRefundVo; +import cc.mrbird.febs.pay.model.UnipayDto; import cc.mrbird.febs.pay.service.IPayService; +import cc.mrbird.febs.pay.service.UnipayService; import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -61,6 +67,7 @@ private final AgentProducer agentProducer; private final IPayService payService; private final IMallAchieveService mallAchieveService; + private final UnipayService unipayService; @Override @Transactional(rollbackFor = Exception.class) @@ -198,6 +205,13 @@ this.baseMapper.updateById(orderInfo); } + public static void main(String[] args) { + String unipayStr = "{\"r1_MerchantNo\":\"888118000001971\",\"rd_Pic\":\"\",\"r6_FrpCode\":\"ALIPAY_H5\",\"r7_TrxNo\":\"100222082332490699\",\"r0_Version\":\"1.0\",\"r3_Amount\":\"0.01\",\"r4_Cur\":\"1\",\"r2_OrderNo\":\"2022082212510288174\",\"rb_CodeMsg\":\"\",\"hmac\":\"1659BB77DEDDF9956EA4D6DF227C3B14\",\"ra_Code\":100,\"rc_Result\":\"<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title></title></head><body><script type='text/javascript'>location.href='https://qr.alipay.com/bax019737vbdwoisxcdp00a2';</script></body></html>\"}"; + JSONObject jsonObject = JSONUtil.parseObj(unipayStr); + String r7_trxNo = (String) jsonObject.get("r7_TrxNo"); + System.out.println(r7_trxNo); + } + @Override @Transactional(rollbackFor = Exception.class) public Map<String, Object> payOrder(PayOrderDto payOrderDto) { @@ -212,6 +226,7 @@ } String payResultStr = ""; + String rcResult = ""; switch (payOrderDto.getType()) { case "1": // orderInfo.setPayOrderNo(payOrderDto.getPayOrderNo()); @@ -220,12 +235,32 @@ agentProducer.sendOrderReturn(orderInfo.getId()); break; case "2": - if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) { - payResultStr = orderInfo.getPayOrderNo(); - } else { - payResultStr = payService.aliPay(orderInfo); +// if (StrUtil.isNotBlank(orderInfo.getPayOrderNo())) { +// payResultStr = orderInfo.getPayOrderNo(); +// } else { +// payResultStr = payService.aliPay(orderInfo); +// } + UnipayDto unipayDto = new UnipayDto(); +// unipayDto.setAmount(new BigDecimal("0.01")); + unipayDto.setAmount(orderInfo.getAmount()); + unipayDto.setFrpCode("ALIPAY_H5"); + unipayDto.setTradeMerchantNo("777180800385820"); + unipayDto.setOrderNo(orderInfo.getOrderNo()); + List<MallOrderItem> items = orderInfo.getItems(); + if(CollUtil.isEmpty(items)){ + unipayDto.setProductName("商品"); + }else{ + unipayDto.setProductName(items.get(0).getGoodsName()); } - + String unipayStr = unipayService.unipay(unipayDto); + if("fail" == unipayStr){ + throw new FebsException("支付失败"); + }else{ + JSONUtil.parseObj(unipayStr); + JSONObject jsonObject = JSONUtil.parseObj(unipayStr); + payResultStr = (String) jsonObject.get("r7_TrxNo"); + rcResult = (String) jsonObject.get("rc_Result"); + } orderInfo.setPayOrderNo(payResultStr); orderInfo.setPayMethod("支付宝支付"); agentProducer.sendOrderReturn(orderInfo.getId()); @@ -303,6 +338,7 @@ map.put("orderInfo", payResultStr); map.put("orderNo", orderInfo.getOrderNo()); map.put("orderId", orderInfo.getId()); + map.put("rcResult", rcResult); return map; } -- Gitblit v1.9.1