From 6f41132aab921276f96c3247df0936b238bbd1d8 Mon Sep 17 00:00:00 2001 From: guohongjin <guohongjin@test.com> Date: 星期三, 24 四月 2024 19:29:32 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PsychologicalCounseling --- rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java | 21 ++++++++++++++------- 1 files changed, 14 insertions(+), 7 deletions(-) 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 9b6c80c..b93effb 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 @@ -2,6 +2,7 @@ import cn.hutool.core.net.NetUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import cn.stylefeng.guns.modular.business.dto.request.OrderPayRequest; import cn.stylefeng.guns.modular.business.entity.CounsellingOrder; import cn.stylefeng.guns.modular.business.entity.CourseOrder; @@ -47,6 +48,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; @Slf4j @@ -85,23 +88,23 @@ @ResponseBody public ResponseData appPay(@RequestBody @Validated WxAppPayRequest req) { // 支付金额 - String totalAmount = ""; + BigDecimal totalAmount = BigDecimal.valueOf(0); // 订单编号判断订单类型 if (req.getOrderNo().contains(OrderTypeEnum.MENTAL_TEST.getCode())) { // 心理测试订单 OrderMentalTest order = orderMentalTestService.getOrderByNo(req.getOrderNo()); - totalAmount = order.getPayAmount().toString(); + totalAmount = order.getPayAmount(); } else if (req.getOrderNo().contains(OrderTypeEnum.CONSULT_ONE.getCode())) { // 心理咨询1V1订单 OrderConsultOne order = orderConsultOneService.getOrderByNo(req.getOrderNo()); - totalAmount = order.getPayAmount().toString(); + totalAmount = order.getPayAmount(); }else if (req.getOrderNo().startsWith(OrderTypeEnum.COURSE_ORDER.getCode())){ CourseOrder courseOrder = this.courseOrderService.getCourseOrderByNo(req.getOrderNo()); - totalAmount = courseOrder.getPayAmount().toString(); + totalAmount = courseOrder.getPayAmount(); } else if (req.getOrderNo().startsWith(OrderTypeEnum.COUNSELLING_ORDER.getCode())) { CounsellingOrder counsellingOrder = this.counsellingOrderService.getCounsellingOrderByNo(req.getOrderNo()); - totalAmount = counsellingOrder.getPayAmount().toString(); + totalAmount = counsellingOrder.getPayAmount(); } // 设置支付配置 @@ -115,6 +118,10 @@ // 获取微信支付配置 WxPayApiConfig wxPayApiConfig = WxPayApiConfigKit.getWxPayApiConfig(); + // 支付金额X100求整 + String totalFee = totalAmount.multiply(BigDecimal.valueOf(100)) + .setScale(0, RoundingMode.HALF_UP) + .toPlainString(); // 组装支付参数 Map<String, String> params = UnifiedOrderModel .builder() @@ -125,13 +132,13 @@ .attach(req.getSubject()) //.out_trade_no(WxPayKit.generateStr()) .out_trade_no(req.getOrderNo()) - .total_fee(totalAmount) + .total_fee(totalFee) .spbill_create_ip(ip) .notify_url(notifyUrl) .trade_type(TradeType.APP.getTradeType()) .build() .createSign(wxPayApiConfig.getPartnerKey(), SignType.HMACSHA256); - + log.info("微信APP支付请求params:{}", JSONUtil.toJsonStr(params)); String xmlResult = WxPayApi.pushOrder(false, params); log.info("微信APP支付结果xml:{}", xmlResult); -- Gitblit v1.7.1