From 53562814add61acfdc02d6b25dae6324f6fd5f92 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 18 五月 2023 16:38:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java | 63 +++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 17 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java index 02d0f80..bb369cd 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java @@ -1,13 +1,16 @@ package com.stylefeng.guns.modular.api; +import com.alibaba.fastjson.JSON; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.PayMoneyUtil; +import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest; +import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackResponse; +import com.stylefeng.guns.modular.system.util.Tingg.model.Payments; +import com.stylefeng.guns.modular.system.util.UUIDUtil; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -35,23 +38,49 @@ /** * 微信余额充值回调函数 - * @param request + * @param callbackRequest */ @ResponseBody @PostMapping("/wxCancelUserBalance") - public void wxCancelUserBalance(HttpServletRequest request, HttpServletResponse response){ + public CallbackResponse wxCancelUserBalance(@RequestBody CallbackRequest callbackRequest){ + CallbackResponse callbackResponse = new CallbackResponse(); try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request); - String id = map.get("out_trade_no"); - String order_id = map.get("out_trade_no"); - String uid = map.get("attach"); - userInfoService.payCancelUserBalance(null, order_id, Integer.valueOf(id), 1); - //icbcPayUtil.answer(response); - - response.getOutputStream().print("success"); + /** + * 指示服务是否成功或付费的总体请求代码。。 + * 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 language = Integer.valueOf(out_trade_no.substring(17, 18)); + Integer id = Integer.valueOf(out_trade_no.substring(18)); + userInfoService.payCancelUserBalance(null, order_id, Integer.valueOf(id), 1, 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)); + } + }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; } @@ -66,9 +95,9 @@ Map<String, String> map = payMoneyUtil.alipayCallback(request); String id = map.get("out_trade_no"); String order_id = map.get("out_trade_no"); - //String uid = map.get("attach"); - userInfoService.payCancelUserBalance(null, order_id, Integer.valueOf(id), 2); - //icbcPayUtil.answer(response); + String[] s = order_id.split("_"); + Integer language = Integer.valueOf(s[1]); + userInfoService.payCancelUserBalance(null, s[0], Integer.valueOf(id), 2, language); response.setContentType("text/html;charset=UTF-8"); PrintWriter out; out = response.getWriter(); -- Gitblit v1.7.1