| | |
| | | @Autowired |
| | | private IRechargeRecordService rechargeRecordService; |
| | | |
| | | @Autowired |
| | | private IAccountChangeDetailService accountChangeDetailService; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | @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); |
| | |
| | | out.flush(); |
| | | out.close(); |
| | | } |
| | | } |
| | | } |
| | | } else {//验签失败业务处理逻辑 |
| | | System.err.println("支付回调验签失败"); |
| | | } |