guohongjin
2024-04-24 6f41132aab921276f96c3247df0936b238bbd1d8
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PsychologicalCounseling
1个文件已修改
21 ■■■■■ 已修改文件
rest/src/main/java/cn/stylefeng/rest/ijpay/controller/WxPayController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);