From 7558a21c1ae1b48b0888f3e3906eb4ba6a68b06f Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 03 八月 2023 11:30:34 +0800 Subject: [PATCH] 修改bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 469 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 309 insertions(+), 160 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 de10aa0..2a2f053 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 @@ -1,5 +1,6 @@ package com.stylefeng.guns.modular.api; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.ToolUtil; @@ -11,14 +12,18 @@ import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; import com.stylefeng.guns.modular.system.model.Driver; +import com.stylefeng.guns.modular.system.model.OrderCancel; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; +import com.stylefeng.guns.modular.system.util.Tingg.model.*; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; +import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.model.TransactionDetails; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; +import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -86,19 +91,16 @@ private IOrderCharteredCarService orderCharteredCarService; @Autowired - private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; + private ITransactionDetailsService transactionDetailsService; @Autowired - private ITransactionDetailsService transactionDetailsService; + private IPaymentRecordService paymentRecordService; @Autowired private IOrderCancelService orderCancelService; @Autowired private PayMoneyUtil payMoneyUtil; - - @Value("${pushMinistryOfTransport}") - private boolean pushMinistryOfTransport; @Value("${filePath}") @@ -182,7 +184,7 @@ @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request){ + public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -200,7 +202,7 @@ list = orderCrossCityService.queryMyOrderList(uid, pageNum, size); break; case 4: - list = orderLogisticsService.queryMyOrderList(uid, pageNum, size); + list = orderLogisticsService.queryMyOrderList(uid, pageNum, size, language); break; case 5: list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size); @@ -228,18 +230,33 @@ @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, HttpServletRequest request){ + public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } + String name = language == 1 ? "打车" : language == 2 ? "Ride" : "Course"; pageNum = (pageNum - 1) * size; List<Map<String, Object>> maps = orderCancelService.queryCancel(uid, 2); + for (Map<String, Object> map : maps) { + Integer orderType = Integer.valueOf(map.get("orderType").toString()); + if(1 == orderType){ + map.put("name", language == 1 ? "打车订单取消" : language == 2 ? "Ride order cancelled" : "Commande de trajet annulée"); + } + if(4 == orderType){ + map.put("name", language == 1 ? "包裹订单取消" : language == 2 ? "Parcel order cancellation" : "Annulation de commande de colis"); + } + } List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(uid);//专车 -// List<Map<String, Object>> list1 = orderTaxiService.queryMyTravelRecord(uid);//出租车 -// List<Map<String, Object>> list2 = orderCrossCityService.queryMyTravelRecord(uid);//跨城车 + for (Map<String, Object> map : list) { + map.put("name", name); + } + name = language == 1 ? "包裹" : language == 2 ? "Package" : "Livraison"; List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(uid);//小件物流 + for (Map<String, Object> map : list3) { + map.put("name", name); + } List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>().eq("state", 1) .eq("type", 1).eq("userType", 1).eq("userId", uid).eq("orderType", 3).like("remark", "%跨城订单取消退款%")); List<Map<String, Object>> list4 = new ArrayList<>(); @@ -696,9 +713,9 @@ @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"), @ApiImplicitParam(value = "附加参数{\"key\":\"value\"}", name = "content", required = true, dataType = "string") }) - public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content){ + public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content, Integer language){ try { - return orderService.weChatPay(orderId, orderType, type, userType, uid, content); + return orderService.weChatPay(orderId, orderType, type, userType, uid, content, language); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -860,6 +877,47 @@ } + /** + * 取消订单退款回调 + * @param request + * @return + */ + @ResponseBody + @PostMapping("/base/orderCancelRefundCallback") + public PayoutCallbackResponse orderCancelRefundCallback(@RequestBody PayoutCallbackRequest request){ + try { + System.err.println("转账回调>>>>" + JSON.toJSONString(request)); + PayoutCallbackResponse payoutCallbackResponse = new PayoutCallbackResponse(); + AuthStatus authStatus = new AuthStatus(); + authStatus.setAuthStatusCode(131); + authStatus.setAuthStatusDescription("Authentication was successful"); + payoutCallbackResponse.setAuthStatus(authStatus); + Results results = new Results(); + PayoutPacket packet = request.getPayload().getPacket(); + String statusCode = packet.getStatusCode(); + String beepTransactionID = packet.getBeepTransactionID(); + String payerTransactionID = packet.getPayerTransactionID(); + + String id = payerTransactionID.substring(17); + OrderCancel orderCancel = orderCancelService.selectById(id); + OrderLogistics orderLogistics = orderLogisticsService.selectById(orderCancel.getOrderId()); + PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 1, 2); + transactionDetailsService.saveData(orderLogistics.getUserId(), "包裹取消退款", query.getAmount(), 1, 1, 1, 4, orderLogistics.getId()); + + results.setBeepTransactionID(beepTransactionID); + results.setPayerTransactionID(payerTransactionID); + results.setStatusCode("188"); + results.setStatusDescription("Response was received"); + payoutCallbackResponse.setResults(results); + return payoutCallbackResponse; + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + + + /** * 取消操作支付 @@ -869,16 +927,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=手机支付,2=银行卡支付,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, 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){ @@ -886,11 +945,11 @@ } switch (orderType){ case 1: - return orderPrivateCarService.cancleOrderPrivateCar(id, payType, cancleId, type); - case 2: - return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); - case 3: - return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type); + return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language); +// case 2: +// return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); +// case 3: +// return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type); } return ResultUtil.success(); }catch (Exception e){ @@ -960,18 +1019,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){ @@ -1011,12 +1070,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; @@ -1043,16 +1102,17 @@ */ @ResponseBody @PostMapping("/api/taxi/payTaxiOrder") - @ApiOperation(value = "订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") + @ApiOperation(value = "订单完成支付订单操作【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额,4=线下支付)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"), @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(value = "优惠券id", name = "couponId", 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 payTaxiOrder(Integer payType, Integer orderId, Integer orderType, Integer couponId, Integer type, HttpServletRequest request){ + public ResultUtil payTaxiOrder(Integer payType, Integer bankCardId, Integer orderId, Integer orderType, Integer couponId, Integer type, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -1060,15 +1120,15 @@ } switch (orderType){ case 1: - return orderPrivateCarService.payPrivateCarOrder(payType, orderId, couponId, type); - case 2: - return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type); - case 3: - return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type); + return orderPrivateCarService.payPrivateCarOrder(payType, bankCardId, orderId, couponId, type, language); +// case 2: +// return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type); +// case 3: +// return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type); case 4: - return orderLogisticsService.payLogisticsOrder(payType, orderId, type); - case 5: - return orderLogisticsService.payLogisticsOrder(payType, orderId, type); + return orderLogisticsService.payLogisticsOrder(payType, bankCardId, orderId, type, language); +// case 5: +// return orderLogisticsService.payLogisticsOrder(payType, orderId, type, language); } return ResultUtil.success(); }catch (Exception e){ @@ -1096,9 +1156,9 @@ @ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content){ + public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content, Integer language){ try { - ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content); + ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content, language); if(resultUtil.getCode() == 200){ switch (orderType){ case 1: @@ -1173,11 +1233,11 @@ @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType){ + public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType, Integer language){ try { switch (orderType){ case 1: - return orderPrivateCarService.shareRedEnvelope(orderId); + return orderPrivateCarService.shareRedEnvelope(orderId, language); case 2: return orderTaxiService.shareRedEnvelope(orderId); case 3: @@ -1195,38 +1255,60 @@ /** * 取消订单微信回调 - * @param request + * @param callbackRequest */ @ResponseBody @PostMapping("/base/wxCancelOrderTaxi") - public void wxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){ + public CallbackResponse wxCancelOrderTaxi(@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"); - + /** + * 指示服务是否成功或付费的总体请求代码。。 + * 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)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); + Integer type = 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){ 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); + callbackResponse.setStatus_code("183"); + callbackResponse.setStatus_description("Payment processed successfully"); + callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16)); } - response.getOutputStream().print("success"); + }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; } @@ -1238,76 +1320,100 @@ @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(); } } + /** * 完成订单微信支付回调 - * @param request + * @param */ @ResponseBody @PostMapping("/base/wxPayOrderTaxi") - public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){ + public CallbackResponse wxPayOrderTaxi(@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"); + /** + * 指示服务是否成功或付费的总体请求代码。。 + * 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)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ + 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 (orderType){ case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1); + 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); + orderLogisticsService.payOrderLogisticsCallback(id, order_id, language); break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); - break; +// case 5: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); +// break; } - response.getOutputStream().print("success"); + 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)); } + }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; } @@ -1327,22 +1433,23 @@ String[] split = out_trade_no.split("_"); Integer id = Integer.valueOf(split[0]); Integer type = Integer.valueOf(split[1]); + Integer language = Integer.valueOf(split[2]); switch (type){ - case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2); - 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); - break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2); - 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; @@ -1361,30 +1468,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; } @@ -1396,24 +1522,47 @@ @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(); } } + + + + @ResponseBody + @PostMapping("/base/IGO/tinggPayoutCallback") + public PayoutCallbackResponse tinggPayoutCallback(@RequestBody PayoutCallbackRequest request){ + System.err.println("转账回调>>>>" + JSON.toJSONString(request)); + PayoutCallbackResponse payoutCallbackResponse = new PayoutCallbackResponse(); + AuthStatus authStatus = new AuthStatus(); + authStatus.setAuthStatusCode(131); + authStatus.setAuthStatusDescription("Authentication was successful"); + payoutCallbackResponse.setAuthStatus(authStatus); + Results results = new Results(); + PayoutPacket packet = request.getPayload().getPacket(); + String beepTransactionID = packet.getBeepTransactionID(); + String payerTransactionID = packet.getPayerTransactionID(); + results.setBeepTransactionID(beepTransactionID); + results.setPayerTransactionID(payerTransactionID); + results.setStatusCode("188"); + results.setStatusDescription("Response was received"); + payoutCallbackResponse.setResults(results); + return payoutCallbackResponse; + } } -- Gitblit v1.7.1