From 73fad773b39d8890538f5d9834c74c4ea7fcb1b8 Mon Sep 17 00:00:00 2001 From: jiahuiwen Date: Wed, 27 Oct 2021 17:37:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/HaoGameRechargeController.java | 117 ++++-------------- .../com/jmfy/paramBean/HaoGameParamBean.java | 80 ++++++++++++ src/main/java/com/jmfy/util/JsonUtil.java | 32 +++-- 3 files changed, 131 insertions(+), 98 deletions(-) create mode 100644 src/main/java/com/jmfy/paramBean/HaoGameParamBean.java diff --git a/src/main/java/com/jmfy/controller/HaoGameRechargeController.java b/src/main/java/com/jmfy/controller/HaoGameRechargeController.java index 97cb14a..456f7d9 100644 --- a/src/main/java/com/jmfy/controller/HaoGameRechargeController.java +++ b/src/main/java/com/jmfy/controller/HaoGameRechargeController.java @@ -3,6 +3,7 @@ package com.jmfy.controller; import com.jmfy.dto.CPayOrder; import com.jmfy.dto.CUserDao; import com.jmfy.dto.CUserInfo; +import com.jmfy.paramBean.HaoGameParamBean; import com.jmfy.thrift.idl.RPCRequestIFace; import com.jmfy.thrift.idl.Result; import com.jmfy.thrift.pool.ClientAdapterPo; @@ -12,12 +13,12 @@ import com.jmfy.util.MD5Util; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.BufferedReader; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -35,85 +36,30 @@ public class HaoGameRechargeController { private static final Logger LOGGER = LoggerFactory.getLogger(HaoGameRechargeController.class); - class HaoGameParam { - private String outtradeno; - private String tradeno; - private String status; - private String timeend; - private String amount; - private String openid; - private String extra; - private String sign; - - public String getOuttradeno() { - return outtradeno; - } - - public void setOuttradeno(String outtradeno) { - this.outtradeno = outtradeno; - } - - public String getTradeno() { - return tradeno; - } - - public void setTradeno(String tradeno) { - this.tradeno = tradeno; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getTimeend() { - return timeend; - } - - public void setTimeend(String timeend) { - this.timeend = timeend; - } - - public String getAmount() { - return amount; - } - - public void setAmount(String amount) { - this.amount = amount; - } - - public String getOpenid() { - return openid; - } - - public void setOpenid(String openid) { - this.openid = openid; - } - - public String getExtra() { - return extra; - } - - public void setExtra(String extra) { - this.extra = extra; - } - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - } - @RequestMapping(value = "/haoGameCallback") public String haoGameCallback(HttpServletRequest request) throws Exception { - LOGGER.info("haoGameCallback 收到好游戏支付回调"); - HashMap parameterMap = JsonUtil.getInstence().getParameterMapYX(request); + + try { + BufferedReader reader = request.getReader(); + StringBuilder sb = new StringBuilder(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } + String body = sb.toString(); + + LOGGER.info("haoGameCallback getOuttradeno={} ",body); + HaoGameParamBean haoGameParamBean = JsonUtil.serializeToObject(body); + LOGGER.info("haoGameCallback getOuttradeno={} getOpenid={} getSign={}",haoGameParamBean.getOuttradeno(), haoGameParamBean.getOpenid(), haoGameParamBean.getSign()); + } catch (Exception e) { + e.printStackTrace(); + } + + + + + + SortedMap parameterMap = new TreeMap<>(); if (parameterMap.isEmpty()) { LOGGER.info("data is null"); return "failure"; @@ -134,20 +80,11 @@ public class HaoGameRechargeController { LOGGER.info("extra is null"); return "failure"; } - SortedMap parameters = new TreeMap<>(); - parameters.put("outtradeno", outtradeno); - parameters.put("tradeno", orderId); - parameters.put("status", status); - parameters.put("timeend", timeend); - parameters.put("amount", amount); - parameters.put("openid", openid); - parameters.put("extra", extra); - StringBuilder sbKey = new StringBuilder(); - Set> entries = parameters.entrySet(); - Iterator> iterator = entries.iterator(); + Set> entries = parameterMap.entrySet(); + Iterator> iterator = entries.iterator(); while (iterator.hasNext()) { - Map.Entry next = iterator.next(); + Map.Entry next = iterator.next(); String key = next.getKey(); Object value = next.getValue(); if (value == null || "".equals(value)) { diff --git a/src/main/java/com/jmfy/paramBean/HaoGameParamBean.java b/src/main/java/com/jmfy/paramBean/HaoGameParamBean.java new file mode 100644 index 0000000..9f6a6c4 --- /dev/null +++ b/src/main/java/com/jmfy/paramBean/HaoGameParamBean.java @@ -0,0 +1,80 @@ +package com.jmfy.paramBean; + +import java.io.Serializable; + +public class HaoGameParamBean implements Serializable { + + private String outtradeno; + private String tradeno; + private String status; + private String timeend; + private String amount; + private String openid; + private String extra; + private String sign; + + public String getOuttradeno() { + return outtradeno; + } + + public void setOuttradeno(String outtradeno) { + this.outtradeno = outtradeno; + } + + public String getTradeno() { + return tradeno; + } + + public void setTradeno(String tradeno) { + this.tradeno = tradeno; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getTimeend() { + return timeend; + } + + public void setTimeend(String timeend) { + this.timeend = timeend; + } + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getOpenid() { + return openid; + } + + public void setOpenid(String openid) { + this.openid = openid; + } + + public String getExtra() { + return extra; + } + + public void setExtra(String extra) { + this.extra = extra; + } + + public String getSign() { + return sign; + } + + public void setSign(String sign) { + this.sign = sign; + } + +} diff --git a/src/main/java/com/jmfy/util/JsonUtil.java b/src/main/java/com/jmfy/util/JsonUtil.java index a60c9b9..fc68361 100644 --- a/src/main/java/com/jmfy/util/JsonUtil.java +++ b/src/main/java/com/jmfy/util/JsonUtil.java @@ -1,17 +1,14 @@ package com.jmfy.util; import com.google.gson.Gson; -import com.jmfy.controller.RechargeController; -import com.jmfy.redisProperties.RedisUserKey; -import org.json.JSONObject; +import com.jmfy.paramBean.HaoGameParamBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; -import java.io.BufferedReader; +import java.io.ByteArrayInputStream; import java.io.IOException; -import java.net.InetAddress; -import java.net.UnknownHostException; +import java.io.ObjectInputStream; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -69,11 +66,30 @@ public class JsonUtil { return map; } - public HashMap getParameterMapYX(HttpServletRequest request) { - HashMap map = new HashMap(); + + public static HaoGameParamBean serializeToObject(String str) throws IOException, ClassNotFoundException { + ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(str.getBytes("ISO-8859-1")); + ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream); + HaoGameParamBean object = (HaoGameParamBean) objectInputStream.readObject(); + objectInputStream.close(); + byteArrayInputStream.close(); + return object; + } + + public SortedMap getParameterMapYX(HttpServletRequest request) { + SortedMap map = new TreeMap<>(); + try { + byte[] requestPostBytes = getRequestPostBytes(request); + } catch (IOException e) { + e.printStackTrace(); + } Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String string = (String) paramNames.nextElement(); + + + + LOGGER.info("getParameterMapYX param {}", string); string = string.replace("{", ""); string = string.replace("}", "");