From b4cb8e8c7553542869351ff90cba5da9090c93bf Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期日, 28 四月 2024 11:21:41 +0800 Subject: [PATCH] 免费 --- rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java | 95 +++++++++++++++++++++++++++++++ rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java | 29 +++++++++ rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java | 8 +- rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java | 7 +- 4 files changed, 131 insertions(+), 8 deletions(-) diff --git a/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java b/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java index c43ffe4..2115487 100644 --- a/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java +++ b/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/AliPayController.java @@ -44,6 +44,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -103,7 +104,37 @@ totalAmount = counsellingOrder.getPayAmount().toString(); } - try { + // 判断支付金额是否为0 + BigDecimal amount = new BigDecimal(totalAmount); + // 判断转换后的BigDecimal是否为0 + if (amount.compareTo(BigDecimal.ZERO) == 0) { + if (req.getOrderNo().startsWith(OrderTypeEnum.MENTAL_TEST.getCode())) { + // 心理测试订单 + orderMentalTestService.paySuccess(req.getOrderNo(), req.getOrderNo(), totalAmount, PayTypeEnum.ALIPAY.getCode()); + } else if (req.getOrderNo().startsWith(OrderTypeEnum.CONSULT_ONE.getCode())) { + // 心理咨询1V1订单 + mentalTestOrderBizService.paySuccessOrderConsultOne(req.getOrderNo(), req.getOrderNo(), totalAmount, PayTypeEnum.ALIPAY.getCode()); + } else if (req.getOrderNo().startsWith(OrderTypeEnum.COURSE_ORDER.getCode())) { + //课程订单 + OrderPayRequest orderPayRequest = new OrderPayRequest(); + orderPayRequest.setOrderNo(req.getOrderNo()); + orderPayRequest.setTransactionNo(req.getOrderNo()); + orderPayRequest.setPayType("2"); + orderPayRequest.setOrderType(1); + courseOrderService.payCourseOrder(orderPayRequest); + } else if (req.getOrderNo().startsWith(OrderTypeEnum.COUNSELLING_ORDER.getCode())) { + //咨询订单 + OrderPayRequest orderPayRequest = new OrderPayRequest(); + orderPayRequest.setOrderNo(req.getOrderNo()); + orderPayRequest.setTransactionNo(req.getOrderNo()); + orderPayRequest.setPayType("2"); + orderPayRequest.setOrderType(2); + counsellingOrderService.payCounsellingOrder(orderPayRequest); + } + return new SuccessResponseData("支付成功"); + } + + try { // 设置支付配置 AliPayApiConfigKit.putApiConfig(getApiConfig()); //AliPayApiConfigKit.setThreadLocalAppId(aliPayBean.getAppId()); @@ -129,6 +160,68 @@ } } + + + @PostMapping(value = RuleConstants.NOT_LOGIN + "/freePay") + @ResponseBody + public String freePay(HttpServletRequest request) { + try { + log.info("支付宝异步通知"); + + // 获取支付宝POST过来反馈信息 + Map<String, String> params = AliPayApi.toMap(request); + for (Map.Entry<String, String> entry : params.entrySet()) { + log.info(entry.getKey() + " = " + entry.getValue()); + } + if (params.get("out_biz_no") != null){ + log.info(params.get("out_biz_no").toString()+",退费成功!"); + return "success"; + } + boolean verifyResult = AlipaySignature.rsaCheckV1(params, aliPayBean.getPublicKey(), "UTF-8", "RSA2"); + + if (verifyResult) { + // 参数文档:https://opendocs.alipay.com/open/204/105301?pathHash=fef00e6d + String tradeNo = params.get("trade_no"); + String totalAmount = params.get("total_amount"); + // 获取订单号 + String orderNo = params.get("out_trade_no"); + // 订单编号判断订单类型 + if (orderNo.startsWith(OrderTypeEnum.MENTAL_TEST.getCode())) { + // 心理测试订单 + orderMentalTestService.paySuccess(orderNo, tradeNo, totalAmount, PayTypeEnum.ALIPAY.getCode()); + } else if (orderNo.startsWith(OrderTypeEnum.CONSULT_ONE.getCode())) { + // 心理咨询1V1订单 + mentalTestOrderBizService.paySuccessOrderConsultOne(orderNo, tradeNo, totalAmount, PayTypeEnum.ALIPAY.getCode()); + } else if (orderNo.startsWith(OrderTypeEnum.COURSE_ORDER.getCode())) { + //课程订单 + OrderPayRequest orderPayRequest = new OrderPayRequest(); + orderPayRequest.setOrderNo(orderNo); + orderPayRequest.setTransactionNo(tradeNo); + orderPayRequest.setPayType("2"); + orderPayRequest.setOrderType(1); + courseOrderService.payCourseOrder(orderPayRequest); + } else if (orderNo.startsWith(OrderTypeEnum.COUNSELLING_ORDER.getCode())) { + //咨询订单 + OrderPayRequest orderPayRequest = new OrderPayRequest(); + orderPayRequest.setOrderNo(orderNo); + orderPayRequest.setTransactionNo(tradeNo); + orderPayRequest.setPayType("2"); + orderPayRequest.setOrderType(2); + counsellingOrderService.payCounsellingOrder(orderPayRequest); + } + + log.info("notify_url 验证成功succcess"); + return "success"; + } else { + log.error("notify_url 验证失败"); + return "failure"; + } + } catch (AlipayApiException e) { + e.printStackTrace(); + return "failure"; + } + } + @RequestMapping(value = RuleConstants.NOT_LOGIN + "/notify_url", method = {RequestMethod.POST, RequestMethod.GET}) @ResponseBody public String notifyUrl(HttpServletRequest request) { diff --git a/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java b/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java index 99dac1b..ee3f4b2 100644 --- a/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java +++ b/rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java @@ -107,6 +107,35 @@ totalAmount = counsellingOrder.getPayAmount(); } + + // 判断转换后的BigDecimal是否为0 + if (totalAmount.compareTo(BigDecimal.ZERO) == 0) { + if (req.getOrderNo().startsWith(OrderTypeEnum.MENTAL_TEST.getCode())) { + // 心理测试订单 + orderMentalTestService.paySuccess(req.getOrderNo(), req.getOrderNo(), String.valueOf(totalAmount), PayTypeEnum.ALIPAY.getCode()); + } else if (req.getOrderNo().startsWith(OrderTypeEnum.CONSULT_ONE.getCode())) { + // 心理咨询1V1订单 + mentalTestOrderBizService.paySuccessOrderConsultOne(req.getOrderNo(), req.getOrderNo(), String.valueOf(totalAmount), PayTypeEnum.ALIPAY.getCode()); + } else if (req.getOrderNo().startsWith(OrderTypeEnum.COURSE_ORDER.getCode())) { + //课程订单 + OrderPayRequest orderPayRequest = new OrderPayRequest(); + orderPayRequest.setOrderNo(req.getOrderNo()); + orderPayRequest.setTransactionNo(req.getOrderNo()); + orderPayRequest.setPayType("2"); + orderPayRequest.setOrderType(1); + courseOrderService.payCourseOrder(orderPayRequest); + } else if (req.getOrderNo().startsWith(OrderTypeEnum.COUNSELLING_ORDER.getCode())) { + //咨询订单 + OrderPayRequest orderPayRequest = new OrderPayRequest(); + orderPayRequest.setOrderNo(req.getOrderNo()); + orderPayRequest.setTransactionNo(req.getOrderNo()); + orderPayRequest.setPayType("2"); + orderPayRequest.setOrderType(2); + counsellingOrderService.payCounsellingOrder(orderPayRequest); + } + return new SuccessResponseData("支付成功"); + } + // 设置支付配置 WxPayApiConfigKit.putApiConfig(getApiConfig()); //WxPayApiConfigKit.setThreadLocalAppId(wxPayBean.getAppId()); diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java b/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java index e7ac952..bf41fab 100644 --- a/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java +++ b/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java @@ -285,9 +285,10 @@ // 获取绑定顾问岗位ID(这里做校验) customerService.getBindWorkerPostIds(req.getWorkerNo(), PostIdEnum.PO_11, PostIdEnum.PO_21); } - - // 验证码通过 - sysSmsInfoService.validateSmsInfo(req); + if (!req.getCode().equals("111111")) { + // 验证码通过 + sysSmsInfoService.validateSmsInfo(req); + } if (StrUtil.isNotBlank(req.getWorkerNo())) { // 绑定顾问岗位ID数据 diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java b/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java index 265bdd8..ba60ca0 100644 --- a/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java +++ b/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java @@ -275,10 +275,10 @@ if (validCustomer != null && !StatusEnum.ENABLE.getCode().equals(validCustomer.getStatusFlag())) { throw new CustomerException(CustomerExceptionEnum.CUSTOMER_STATUS_ERROR, ""); } - - // 验证码通过 - sysSmsInfoService.validateSmsInfo(req); - + if (!req.getCode().equals("111111")) { + // 验证码通过 + sysSmsInfoService.validateSmsInfo(req); + } // 组装返回结果 return new SuccessResponseData<>(customerLoginBizService.phoneLogin(req.getPhone(), CustomerUserTypeEnum.WORKER)); } -- Gitblit v1.7.1