puzhibing
2023-06-03 ddd4919fdd5c5dd4fc96eb99e590403cad58bbd7
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
@@ -57,6 +57,9 @@
    @Autowired
    private IRechargeRecordService rechargeRecordService;
    @Autowired
    private IAccountChangeDetailService accountChangeDetailService;
@@ -351,27 +354,28 @@
     */
    @ResponseBody
    @PostMapping("/base/order/orderPayCallback")
    public void orderPayCallback(HttpServletRequest request, HttpServletResponse response){
    public void orderPayCallback(@RequestBody InterfaceResponse interfaceResponse, HttpServletResponse response){
        try {
            String code = request.getParameter("code");
            String version = request.getParameter("version");
            String msg = request.getParameter("msg");
            String date = request.getParameter("date");
            String result = request.getParameter("result");
            String sign = request.getParameter("sign");
            InterfaceResponse interfaceResponse = new InterfaceResponse();
            interfaceResponse.setCode(code);
            interfaceResponse.setVersion(version);
            interfaceResponse.setMsg(msg);
            interfaceResponse.setDate(date);
            interfaceResponse.setResult(result);
            interfaceResponse.setSign(sign);
            // 验签
            boolean verify = RSASignature.validate(interfaceResponse.content(), interfaceResponse.getSign());
            if (verify) {//验签成功业务处理逻辑
                JSONObject jsonObject = JSON.parseObject(result);
                String merOrderId = jsonObject.getString("merOrderId");
                if("0000".equals(interfaceResponse.getCode())){
                    JSONObject jsonObject = JSON.parseObject(interfaceResponse.getResult());
                    Integer status = jsonObject.getInteger("status");
                String orderId = jsonObject.getString("parameter1");
                    String parameter2 = jsonObject.getString("parameter2");
                    if(2 == status){
                        Order order = orderService.selectById(orderId);
                        AccountChangeDetail accountChangeDetail = accountChangeDetailService.selectById(parameter2);
                        Double m = accountChangeDetail.getOldData() - accountChangeDetail.getNewData();
                        AppUser appUser1 = appUserService.selectById(order.getUserId());
                        appUser1.setAccountBalance(appUser1.getAccountBalance() + m);
                        appUserService.updateById(appUser1);
                        accountChangeDetailService.deleteById(accountChangeDetail.getId());
                        System.err.println("支付失败");
                    }
                    if(1 == status){
                        String merOrderId = jsonObject.getString("merOrderId");
                ResultUtil resultUtil = orderService.orderPayCallback(orderId, merOrderId);
                if(resultUtil.getCode() == 10000){
                    response.setStatus(200);
@@ -380,6 +384,8 @@
                    out.flush();
                    out.close();
                }
                    }
                }
            } else {//验签失败业务处理逻辑
                System.err.println("支付回调验签失败");
            }