From 0e3064b8722b33ee2cf67f8fac581a8b0e04832b Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 22 Dec 2023 18:15:58 +0800 Subject: [PATCH] 富文本框输入版本变化 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java | 9 ++ src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java | 2 src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java | 136 +++++++++++++++++++++++++-------------------- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 4 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java | 14 ++-- src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java | 2 src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java | 2 7 files changed, 94 insertions(+), 75 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java index 6074666..a3ec9a6 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallOrderInfo.java @@ -32,7 +32,7 @@ private String payOrderNo; - private String payResult; + private Integer payResult; /** * 状态 1-待支付2-待发货3-待收货4-已完成5-退款中6-已退款7-已取消 diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java index 1e55041..eab70aa 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAppServiceImpl.java @@ -123,6 +123,7 @@ orderInfo.setIsApp(AppContants.IS_APP_ORDER); orderInfo.setOrderTime(new Date()); orderInfo.setMemberId(addOrderDto.getMemberId()); + orderInfo.setPayResult(2); //会员结算 orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); mallOrderInfoMapper.insert(orderInfo); @@ -212,6 +213,7 @@ orderInfo.setIsApp(AppContants.IS_APP_ORDER); orderInfo.setOrderTime(new Date()); orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); + orderInfo.setPayResult(2); if (CollUtil.isEmpty(addOrderDto.getItems())) { throw new FebsException("商品明细不能为空。"); } @@ -256,6 +258,7 @@ orderInfo.setIsApp(AppContants.IS_APP_ORDER); orderInfo.setOrderTime(new Date()); orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); + orderInfo.setPayResult(2); if (CollUtil.isEmpty(addOrderDto.getItems())) { throw new FebsException("商品明细不能为空。"); } @@ -333,8 +336,10 @@ if(!flag){ throw new FebsException("请打开微信付款码!"); } - MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); + if(OrderStatusEnum.FINISH.getValue() == (mallOrderInfo.getStatus())){ + throw new FebsException("已支付"); + } mallOrderInfo.setTakeCode(wxPayCode); List<ApiGetOrderOrderItemVo> appOrderItemByOrderId = mallOrderItemMapper.getAppOrderItemByOrderId(orderId); if(CollUtil.isEmpty(appOrderItemByOrderId)){ @@ -342,7 +347,7 @@ }else{ mallOrderInfo.setName(appOrderItemByOrderId.get(0).getGoodsName()); } - mallOrderInfo.setPayResult("2"); +// mallOrderInfo.setPayResult(2); mallOrderInfoMapper.updateById(mallOrderInfo); // 发起付款码支付请求 String payResult = xcxCodePayService.pay(mallOrderInfo); 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 4516640..e8d3ee8 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 @@ -379,7 +379,7 @@ orderInfo.setPayMethod("余额支付"); orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); orderInfo.setPayTime(new Date()); - orderInfo.setPayResult("1"); + orderInfo.setPayResult(1); orderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue()); // boolean hasTc = false; @@ -430,7 +430,7 @@ orderInfo.setPayMethod("积分支付"); orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); orderInfo.setPayTime(new Date()); - orderInfo.setPayResult("1"); + orderInfo.setPayResult(1); mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue()); break; diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java index 4e0702e..a2612c3 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java @@ -480,19 +480,17 @@ @Override public void syAppOrderPayDoneQueue(String orderNo) { - LambdaQueryWrapper<MallOrderInfo> query = new LambdaQueryWrapper<>(); - query.eq(MallOrderInfo::getOrderNo, orderNo); - MallOrderInfo orderInfo = mallOrderInfoMapper.selectOne(query); + MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(orderNo); if(ObjectUtil.isEmpty(orderInfo)){ return; } - if ("1".equals(orderInfo.getPayResult())) { + if (OrderStatusEnum.FINISH.getValue() == orderInfo.getStatus()) { return; } - orderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); - orderInfo.setPayResult("1"); - orderInfo.setPayTime(DateUtil.date()); - mallOrderInfoMapper.updateById(orderInfo); +// orderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); +// orderInfo.setPayResult(1); +// orderInfo.setPayTime(DateUtil.date()); +// mallOrderInfoMapper.updateById(orderInfo); if(ObjectUtil.isEmpty(orderInfo.getMemberId())){ return; diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java index de14692..c0d2b1d 100644 --- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java +++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java @@ -254,7 +254,7 @@ if (order != null && OrderStatusEnum.WAIT_PAY.getValue() == order.getStatus()) { log.debug("检查支付金额payMoney={},order.getPayMoney()={}", payMoney, order.getAmount()); order.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); - order.setPayResult("1"); + order.setPayResult(1); order.setPayTime(new Date()); order.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_WAIT.getValue()); mallOrderInfoMapper.updateById(order); diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java index 71ad72c..6a403c6 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImpl.java @@ -100,7 +100,7 @@ } orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue()); - orderInfo.setPayResult("1"); + orderInfo.setPayResult(1); orderInfo.setPayTime(new Date()); orderInfo.setPayTradeNo(params.get("trade_no")); orderInfoMapper.updateById(orderInfo); diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java index 950130a..f5980d6 100644 --- a/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/pay/service/impl/xcxCodePayServiceImpl.java @@ -13,6 +13,7 @@ import cc.mrbird.febs.pay.util.WeixinServiceUtil; import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -46,43 +47,45 @@ private final DataDictionaryCustomMapper dataDictionaryCustomMapper; private final WeixinServiceUtil weixinServiceUtil; private final AgentProducer agentProducer; + private final WxPayService wxPayService; private static final String PAY_SUCCESS = "SUCCESS"; private static final String PAY_USERPAYING = "USERPAYING"; + private static final String PAY_FAIL = "FAIL"; @Override public String pay(MallOrderInfo mallOrderInfo) { - String appId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.XCX_APP_ID.getType(), - DataDictionaryEnum.XCX_APP_ID.getCode() - ).getValue(); - String mchId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.XCX_MCH_ID.getType(), - DataDictionaryEnum.XCX_MCH_ID.getCode() - ).getValue(); - String paySecret = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.XCX_MCH_KEY.getType(), - DataDictionaryEnum.XCX_MCH_KEY.getCode() - ).getValue(); - String keyPath = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getType(), - DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getCode() - ).getValue(); - String notifyUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( - DataDictionaryEnum.XCX_NOTICE_URL.getType(), - DataDictionaryEnum.XCX_NOTICE_URL.getCode() - ).getValue(); - WxPayConfig payConfig = new WxPayConfig(); - payConfig.setAppId(StrUtil.trim(appId)); - payConfig.setMchId(StrUtil.trim(mchId)); - payConfig.setMchKey(StrUtil.trim(paySecret)); - payConfig.setKeyPath(StrUtil.trim(keyPath)); - payConfig.setNotifyUrl(StrUtil.trim(notifyUrl)); +// String appId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( +// DataDictionaryEnum.XCX_APP_ID.getType(), +// DataDictionaryEnum.XCX_APP_ID.getCode() +// ).getValue(); +// String mchId = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( +// DataDictionaryEnum.XCX_MCH_ID.getType(), +// DataDictionaryEnum.XCX_MCH_ID.getCode() +// ).getValue(); +// String paySecret = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( +// DataDictionaryEnum.XCX_MCH_KEY.getType(), +// DataDictionaryEnum.XCX_MCH_KEY.getCode() +// ).getValue(); +// String keyPath = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( +// DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getType(), +// DataDictionaryEnum.XCX_MCH_KEY_PATH_P12.getCode() +// ).getValue(); +// String notifyUrl = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( +// DataDictionaryEnum.XCX_NOTICE_URL.getType(), +// DataDictionaryEnum.XCX_NOTICE_URL.getCode() +// ).getValue(); +// WxPayConfig payConfig = new WxPayConfig(); +// payConfig.setAppId(StrUtil.trim(appId)); +// payConfig.setMchId(StrUtil.trim(mchId)); +// payConfig.setMchKey(StrUtil.trim(paySecret)); +// payConfig.setKeyPath(StrUtil.trim(keyPath)); +// payConfig.setNotifyUrl(StrUtil.trim(notifyUrl)); // 可以指定是否使用沙箱环境 - payConfig.setUseSandboxEnv(false); - - WxPayService wxPayService = new WxPayServiceImpl(); - wxPayService.setConfig(payConfig); +// payConfig.setUseSandboxEnv(false); +// +// WxPayService wxPayService = new WxPayServiceImpl(); +// wxPayService.setConfig(payConfig); WxPayMicropayRequest request = new WxPayMicropayRequest(); /** * @@ -99,8 +102,8 @@ String sign = WXPayUtil.generateSignature(map, config.getKey()); map.put("sign", sign); */ - request.setAppid(appId); - request.setMchId(mchId); +// request.setAppid(appId); +// request.setMchId(mchId); request.setNonceStr(RandomStringGenerator.getRandomStringByLength(32)); request.setBody(mallOrderInfo.getName()); request.setOutTradeNo(mallOrderInfo.getOrderNo()); @@ -110,7 +113,7 @@ request.setAuthCode(mallOrderInfo.getTakeCode()); try { - request.setSign(Signature.getSign(request,paySecret)); + request.setSign(Signature.getSign(request,wxPayService.getConfig().getMchKey())); } catch (IllegalAccessException e) { e.printStackTrace(); throw new FebsException("签名异常"); @@ -128,38 +131,51 @@ if(PAY_SUCCESS.equals(returnCode) && PAY_SUCCESS.equals(resultCode)){ log.info("微信免密支付成功"); + MallOrderInfo orderInfo = mallOrderInfoMapper.selectByOrderNo(mallOrderInfo.getOrderNo()); + if(ObjectUtil.isNotEmpty(orderInfo)){ + if (OrderStatusEnum.FINISH.getValue() != orderInfo.getStatus()) { + orderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); + orderInfo.setPayResult(1); + orderInfo.setPayTime(DateUtil.date()); + mallOrderInfoMapper.updateById(orderInfo); + } + } agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo); return PAY_SUCCESS; - } else if (PAY_USERPAYING.equals(errCode)){//等待用户输入密码 - for(int i = 0; i < 4; i++){ - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - //调用微信的查询接口 - /** - * 交易成功判断条件: return_code、result_code和trade_state都为SUCCESS - */ - WxPayOrderQueryRequest wxPayOrderQueryRequest = new WxPayOrderQueryRequest(); - wxPayOrderQueryRequest.setOutTradeNo(outTradeNo); - WxPayOrderQueryResult wxPayOrderQueryResult = wxPayService.queryOrder(wxPayOrderQueryRequest); - String returnCodePaying = wxPayOrderQueryResult.getReturnCode(); - String resultCodePaying = wxPayOrderQueryResult.getResultCode(); - String tradeTypePaying = wxPayOrderQueryResult.getTradeType(); - if(PAY_SUCCESS.equals(tradeTypePaying)&& PAY_SUCCESS.equals(returnCodePaying)&& PAY_SUCCESS.equals(resultCodePaying)){ - log.info("微信加密支付成功!"); - agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo); - return PAY_SUCCESS; - } - log.info("正在支付" + wxPayOrderQueryResult.getDetail()); - } } - log.error("微信支付失败!"); +// else if (PAY_USERPAYING.equals(errCode)){//等待用户输入密码 +// for(int i = 0; i < 4; i++){ +// try { +// Thread.sleep(5000); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// //调用微信的查询接口 +// /** +// * 交易成功判断条件: return_code、result_code和trade_state都为SUCCESS +// */ +// WxPayOrderQueryRequest wxPayOrderQueryRequest = new WxPayOrderQueryRequest(); +// wxPayOrderQueryRequest.setOutTradeNo(outTradeNo); +// log.info("付款码支付订单查询"); +// WxPayOrderQueryResult wxPayOrderQueryResult = wxPayService.queryOrder(wxPayOrderQueryRequest); +// String returnCodePaying = wxPayOrderQueryResult.getReturnCode(); +// String resultCodePaying = wxPayOrderQueryResult.getResultCode(); +// String tradeTypePaying = wxPayOrderQueryResult.getTradeType(); +// if(PAY_SUCCESS.equals(tradeTypePaying)&& PAY_SUCCESS.equals(returnCodePaying)&& PAY_SUCCESS.equals(tradeTypePaying)){ +// log.info("微信加密支付成功!"); +// agentProducer.sendSyAppOrderPayDoneQueue(outTradeNo); +// return PAY_SUCCESS; +// } +// log.info("正在支付" + wxPayOrderQueryResult.getDetail()); +// } +// } + else if(PAY_FAIL.equals(resultCode)){ + return errCodeDes; + } return errCodeDes; } catch (WxPayException e) { e.printStackTrace(); - throw new FebsException("支付异常"); + throw new FebsException(e.getErrCodeDes()); } } @@ -174,7 +190,7 @@ return; } orderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); - orderInfo.setPayResult("1"); + orderInfo.setPayResult(1); orderInfo.setPayTime(DateUtil.date()); orderInfo.setPayTradeNo(params.get("transaction_id")); mallOrderInfoMapper.updateById(orderInfo); -- Gitblit v1.9.1