From fadc3a886e5dd07960943a06a98709ea5375a135 Mon Sep 17 00:00:00 2001 From: duhui Date: Fri, 15 Jul 2022 10:09:52 +0800 Subject: [PATCH] =?UTF-8?q?ohayoo=EF=BC=8C=E6=A0=BC=E5=BC=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OhayooGetExternalController.java | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/jmfy/controller/OhayooGetExternalController.java b/src/main/java/com/jmfy/controller/OhayooGetExternalController.java index bc736a1..5c5cce5 100644 --- a/src/main/java/com/jmfy/controller/OhayooGetExternalController.java +++ b/src/main/java/com/jmfy/controller/OhayooGetExternalController.java @@ -19,10 +19,11 @@ import java.util.TreeMap; public class OhayooGetExternalController { private static final Logger LOGGER = LoggerFactory.getLogger(OhayooGetExternalController.class); + private static Gson gson = new Gson(); @PostMapping(value = "/ohayooGetExternal") public String ohayooGetExternal(HttpServletRequest request) throws Exception { - Gson gson = new Gson(); - TreeMap map = new TreeMap<>(); + + TreeMap treeMap = new TreeMap<>(); InputStreamReader insr = new InputStreamReader(request.getInputStream(),"utf-8"); String result = ""; int respInt = insr.read(); @@ -30,23 +31,43 @@ public class OhayooGetExternalController { result += (char) respInt; respInt = insr.read(); } - map = gson.fromJson(result, map.getClass()); - LOGGER.info("ohayoo获取前端参数:{}",map); - if (map == null || map.isEmpty()) { + treeMap = gson.fromJson(result, treeMap.getClass()); + LOGGER.info("ohayoo获取前端参数:{}",treeMap); + if (treeMap == null || treeMap.isEmpty()) { return null; } StringBuilder builder = new StringBuilder(); - for (Map.Entry entry : map.entrySet()) { + for (Map.Entry entry : treeMap.entrySet()) { builder.append(entry.getKey()).append("=").append(entry.getValue()).append("&"); } String externalOrder = builder.substring(0, builder.length() - 1); String payKey = OhayooRechargeController.payKey; String sign = MD5Util.encrypByMd5(payKey + externalOrder + payKey); + treeMap.put("sign",sign); - map.put("sign",sign); + //格式转换 + result = formatConversion(treeMap); + LOGGER.info("ohayoo返回前端参数:{}",result); + return result; + } + + private static String formatConversion(Map treeMap){ + TreeMap map = new TreeMap<>(); + + map.put("body",treeMap.get("body")); + map.put("custom_callback_info",treeMap.get("custom_callback_info")); + map.put("notify_url",treeMap.get("notify_url")); + map.put("open_id",treeMap.get("open_id")); + map.put("order_no",treeMap.get("order_no")); + map.put("product_id",treeMap.get("product_id")); + map.put("sign_type",treeMap.get("sign_type")); + map.put("subject",treeMap.get("subject")); + map.put("total_amount",Long.valueOf(treeMap.get("total_amount"))); + map.put("trade_time",Long.valueOf(treeMap.get("trade_time"))); + map.put("valid_time",Long.valueOf(treeMap.get("valid_time"))); + map.put("sign",treeMap.get("sign")); - LOGGER.info("ohayoo返回前端参数:{}",gson.toJson(map)); return gson.toJson(map); }