From 7a14e1592dd0c2cfd6cd4e8b11f95c9f46f2ffe7 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 05 七月 2023 20:07:04 +0800 Subject: [PATCH] 修改支付相关逻辑代码 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 243 ++++++++++++++++++++++++++---------------------- 1 files changed, 132 insertions(+), 111 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 94ba12f..6dadc7a 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -880,16 +880,17 @@ */ @ResponseBody @PostMapping("/api/taxi/cancleOrderTaxi") - @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "支付方式(1=线上支付,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"), @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"), @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, Integer language, HttpServletRequest request){ + public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -897,7 +898,7 @@ } switch (orderType){ case 1: - return orderPrivateCarService.cancleOrderPrivateCar(id, payType, "user_" + uid, cancleId, type, language); + return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language); // case 2: // return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); // case 3: @@ -971,18 +972,18 @@ case 1: map = orderPrivateCarService.queryBalance(orderId, uid); break; - case 2: - map = orderTaxiService.queryBalance(orderId, uid); - break; - case 3: - map = orderCrossCityService.queryBalance(orderId, uid); - break; +// case 2: +// map = orderTaxiService.queryBalance(orderId, uid); +// break; +// case 3: +// map = orderCrossCityService.queryBalance(orderId, uid); +// break; case 4: map = orderLogisticsService.queryBalance(orderId, uid); break; - case 5: - map = orderLogisticsService.queryBalance(orderId, uid); - break; +// case 5: +// map = orderLogisticsService.queryBalance(orderId, uid); +// break; } return ResultUtil.success(map); }catch (Exception e){ @@ -1022,12 +1023,12 @@ case 1: list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size); break; - case 2: - list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size); - break; - case 3: - list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); - break; +// case 2: +// list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size); +// break; +// case 3: +// list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); +// break; // case 4: // list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size); // break; @@ -1231,17 +1232,18 @@ String order_id = payments.getPayer_transaction_id(); if(ToolUtil.isNotEmpty(out_trade_no)){ Integer type = Integer.valueOf(out_trade_no.substring(17, 18)); - Integer id = Integer.valueOf(out_trade_no.substring(18)); + Integer language = Integer.valueOf(out_trade_no.substring(18, 19)); + Integer id = Integer.valueOf(out_trade_no.substring(19)); switch (type){ case 1: - orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1); + orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, language); break; - case 2: - orderTaxiService.payCancelOrderTaxi(id, order_id, 1); - break; - case 3: - orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); - break; +// case 2: +// orderTaxiService.payCancelOrderTaxi(id, order_id, 1); +// break; +// case 3: +// orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); +// break; } callbackResponse.setCheckout_request_id(order_id); callbackResponse.setMerchant_transaction_id(out_trade_no); @@ -1271,31 +1273,31 @@ @PostMapping("/base/aliCancelOrderTaxi") public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ - case 1: - orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2); - break; - case 2: - orderTaxiService.payCancelOrderTaxi(id, order_id, 2); - break; - case 3: - orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2); - break; - } - } - response.setContentType("text/html;charset=UTF-8"); - PrintWriter out; - out = response.getWriter(); - out.println("success"); // 请不要修改或删除 - } +// Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); +// if(null != map){ +// String out_trade_no = map.get("out_trade_no"); +// String order_id = map.get("trade_no"); +// if(ToolUtil.isNotEmpty(out_trade_no)){ +// String[] split = out_trade_no.split("_"); +// Integer id = Integer.valueOf(split[0]); +// Integer type = Integer.valueOf(split[1]); +// switch (type){ +// case 1: +// orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2); +// break; +// case 2: +// orderTaxiService.payCancelOrderTaxi(id, order_id, 2); +// break; +// case 3: +// orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2); +// break; +// } +// } +// response.setContentType("text/html;charset=UTF-8"); +// PrintWriter out; +// out = response.getWriter(); +// out.println("success"); // 请不要修改或删除 +// } }catch (Exception e){ e.printStackTrace(); } @@ -1328,25 +1330,25 @@ Payments payments = callbackRequest.getPayments().get(0); String order_id = payments.getPayer_transaction_id(); if(ToolUtil.isNotEmpty(out_trade_no)){ - Integer type = Integer.valueOf(out_trade_no.substring(17, 18)); + Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18)); Integer language = Integer.valueOf(out_trade_no.substring(18, 19)); Integer id = Integer.valueOf(out_trade_no.substring(19)); - switch (type){ + switch (orderType){ case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1, language); + orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, language); break; - case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 1); - break; - case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1); - break; +// case 2: +// orderTaxiService.payOrderTaxiCallback(id, order_id, 1); +// break; +// case 3: +// orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1); +// break; case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); + orderLogisticsService.payOrderLogisticsCallback(id, order_id, language); break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); - break; +// case 5: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); +// break; } callbackResponse.setCheckout_request_id(order_id); callbackResponse.setMerchant_transaction_id(out_trade_no); @@ -1386,21 +1388,21 @@ Integer type = Integer.valueOf(split[1]); Integer language = Integer.valueOf(split[2]); switch (type){ - case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language); - break; - case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 2); - break; - case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2); - break; - case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); - break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); - break; +// case 1: +// orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language); +// break; +// case 2: +// orderTaxiService.payOrderTaxiCallback(id, order_id, 2); +// break; +// case 3: +// orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2); +// break; +// case 4: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); +// break; +// case 5: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); +// break; } response.setContentType("text/html;charset=UTF-8"); PrintWriter out; @@ -1419,30 +1421,49 @@ /** * 小件物流差价微信支付回调 - * @param request */ @ResponseBody @PostMapping("/base/wxPayOrderLogisticsSpread") - public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ + public CallbackResponse wxPayOrderLogisticsSpread(@RequestBody CallbackRequest callbackRequest){ + CallbackResponse callbackResponse = new CallbackResponse(); try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request);//icbcPayUtil.payCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("transaction_id"); - String s = null;//icbcPayUtil.queryTransaction("", order_id); - if(!s.equals("") && !s.equals("2")){ - //icbcPayUtil.answer(response);//回调应答 + /** + * 指示服务是否成功或付费的总体请求代码。。 + * 177-部分付费请求 + * 178-表明请求已全额支付 + * 179-表示请求已部分支付但已过期。 + * 129-请求已过期,未付款。 + * 180.商户拒绝请求 + * 183-商户接受请求,我们可以结算资金 + * 188-商户收到请求。 + */ + String request_status_code = callbackRequest.getRequest_status_code(); + String out_trade_no = callbackRequest.getMerchant_transaction_id(); + if("177".equals(request_status_code) || "178".equals(request_status_code)){ + Payments payments = callbackRequest.getPayments().get(0); + String order_id = payments.getPayer_transaction_id(); + if(ToolUtil.isNotEmpty(out_trade_no)){ + Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18)); + Integer language = Integer.valueOf(out_trade_no.substring(18, 19)); + Integer id = Integer.valueOf(out_trade_no.substring(19)); + orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, language); + callbackResponse.setCheckout_request_id(order_id); + callbackResponse.setMerchant_transaction_id(out_trade_no); + callbackResponse.setStatus_code("183"); + callbackResponse.setStatus_description("Payment processed successfully"); + callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16)); } - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ - String[] split = out_trade_no.split(","); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1); - } + }else{ + callbackResponse.setCheckout_request_id(UUIDUtil.getRandomCode(16)); + callbackResponse.setMerchant_transaction_id(out_trade_no); + callbackResponse.setStatus_code("180"); + callbackResponse.setStatus_description("means payment rejected."); + callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16)); } }catch (Exception e){ e.printStackTrace(); } + return callbackResponse; } @@ -1454,22 +1475,22 @@ @PostMapping("/base/aliPayOrderLogisticsSpread") public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - String s = null;//icbcPayUtil.queryTransaction("", order_id); - if(!s.equals("") && !s.equals("2")){ - //icbcPayUtil.answer(response);//回调应答 - } - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ - String[] split = out_trade_no.split(","); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2); - } - - } +// Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); +// if(null != map){ +// String out_trade_no = map.get("out_trade_no"); +// String order_id = map.get("trade_no"); +// String s = null;//icbcPayUtil.queryTransaction("", order_id); +// if(!s.equals("") && !s.equals("2")){ +// //icbcPayUtil.answer(response);//回调应答 +// } +// if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ +// String[] split = out_trade_no.split(","); +// Integer id = Integer.valueOf(split[0]); +// Integer type = Integer.valueOf(split[1]); +// orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2); +// } +// +// } }catch (Exception e){ e.printStackTrace(); } -- Gitblit v1.7.1