From 49e88798dcea0164f77c59f0be9eefdf67a3d228 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 17 七月 2024 15:03:10 +0800
Subject: [PATCH] 2.0bug修改
---
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java | 81 +++++++++++++++++++++++++++-------------
1 files changed, 54 insertions(+), 27 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..4e29146 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;
@@ -25,9 +28,6 @@
@Autowired
private IUserInfoService userInfoService;
- /*@Autowired
- private ICBCPayUtil icbcPayUtil;*/
-
@Autowired
private PayMoneyUtil payMoneyUtil;
@@ -35,23 +35,50 @@
/**
* 微信余额充值回调函数
- * @param request
+ * @param callbackRequest
*/
@ResponseBody
@PostMapping("/wxCancelUserBalance")
- public void wxCancelUserBalance(HttpServletRequest request, HttpServletResponse response){
+ public CallbackResponse wxCancelUserBalance(@RequestBody CallbackRequest callbackRequest){
+ System.err.println("支付成功回调------>" + JSON.toJSONString(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), 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;
}
@@ -63,16 +90,16 @@
@PostMapping("/aliCancelUserBalance")
public void aliCancelUserBalance(HttpServletRequest request, HttpServletResponse response){
try {
- 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);
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out;
- out = response.getWriter();
- out.println("success"); // 请不要修改或删除
+// Map<String, String> map = payMoneyUtil.alipayCallback(request);
+// String id = map.get("out_trade_no");
+// String order_id = map.get("out_trade_no");
+// 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();
+// out.println("success"); // 请不要修改或删除
}catch (Exception e){
e.printStackTrace();
}
--
Gitblit v1.7.1