| | |
| | | package com.ruoyi.web.controller.api; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.utils.CodeGenerateUtils; |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | | import com.ruoyi.system.model.TCourseOrder; |
| | | import com.ruoyi.system.service.TCourseOrderService; |
| | | import com.ruoyi.system.wxPay.enums.TradeStateEnum; |
| | | import com.ruoyi.system.wxPay.model.WeixinPayProperties; |
| | | import com.ruoyi.system.wxPay.utils.WxTimeUtils; |
| | | import com.ruoyi.system.wxPay.utils.WxV3Pay; |
| | | import com.wechat.pay.contrib.apache.httpclient.util.AesUtil; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.poi.ss.formula.functions.T; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.BufferedReader; |
| | | import java.io.PrintWriter; |
| | | import java.math.BigDecimal; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 微信相关接口 |
| | |
| | | @Autowired |
| | | private WeixinPayProperties weixinPayProperties; |
| | | |
| | | @Autowired |
| | | private TCourseOrderService courseOrderService; |
| | | |
| | | |
| | | /** |
| | | * 按实际修改 |
| | | */ |
| | | @ApiOperation("订单支付") |
| | | @PostMapping("orderPay") |
| | | public R<Map<String, Object>> orderPay(@RequestParam(value = "inspectionId") String inspectionId) { |
| | | |
| | | // TSysOtherConfig sysOtherConfig = sysOtherConfigService.getById(1); |
| | | // if (Objects.isNull(sysOtherConfig.getAiPrice())) { |
| | | // return R.fail("系统未配置AI支付价格"); |
| | | // } |
| | | // |
| | | // String userId = tokenService.getLoginUserApplet().getUserId(); |
| | | // TSysAppUser sysAppUser = sysAppUserService.getById(userId); |
| | | // // 价格 |
| | | // Long totalPrice = sysOtherConfig.getAiPrice().multiply(new BigDecimal(100)).longValue(); |
| | | // // 生成订单号 |
| | | // String orderNo = CodeGenerateUtils.generateOrderSn(); |
| | | // // 查询用户信息 用户openid |
| | | // String openId = sysAppUser.getOpenId(); |
| | | // // 存储支付记录 |
| | | // sysPayRecordService.saveData(orderNo, userId, sysOtherConfig.getAiPrice(), 1); |
| | | // // 调用支付方法 |
| | | // Map<String, Object> result = wxV3Pay.jsApi(orderNo, totalPrice, openId,"AI检测报告支付",""); |
| | | // log.info("支付参数:{}", result); |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 支付回调 |
| | |
| | | String trade_state = jsonInfo.getString("trade_state"); |
| | | String success_time = jsonInfo.getString("success_time"); |
| | | // 查询订单 |
| | | // TSysPayRecord sysPayRecord = sysPayRecordService.getOne(Wrappers.lambdaQuery(TSysPayRecord.class) |
| | | // .eq(TSysPayRecord::getOrderNo, out_trade_no).last("LIMIT 1")); |
| | | |
| | | TCourseOrder order = courseOrderService.getOne(Wrappers.lambdaQuery(TCourseOrder.class) |
| | | .eq(TCourseOrder::getOrderNumber, out_trade_no).last("LIMIT 1")); |
| | | if (trade_state.equals(TradeStateEnum.SUCCESS.name())) { |
| | | log.info("回调成功"); |
| | | // 订单号查询订单 |
| | | // sysPayRecord.setPayState(2); |
| | | // sysPayRecord.setPayTime(WxTimeUtils.dateToLocalDateTime(WxTimeUtils.toRfc3339Date(success_time))); |
| | | // sysPayRecord.setTransactionId(transaction_id); |
| | | // sysPayRecordService.updateById(sysPayRecord); |
| | | // |
| | | // // 处理检测报告为可见 |
| | | // TSysInspection sysInspection = sysInspectionService.getById(sysPayRecord.getInspectionId()); |
| | | // sysInspection.setIsPay(1); |
| | | // sysInspectionService.updateById(sysInspection); |
| | | order.setPayStatus(2); |
| | | order.setPayTime(WxTimeUtils.dateToLocalDateTime(WxTimeUtils.toRfc3339Date(success_time))); |
| | | order.setTransactionId(transaction_id); |
| | | courseOrderService.updateById(order); |
| | | |
| | | PrintWriter out = response.getWriter(); |
| | | out.print("SUCCESS"); |