微信的支付回调为xml格式。支付宝回调为json格式。返回的格式如何处理
首先看下回调的入参通过处理后长啥样。
微信的支付回调:
支付宝的支付回调:
微信的支付回调处理:web
StringBuilder sb = new StringBuilder(); String inputLine; while ((inputLine = request.getReader().readLine()) != null) { sb.append(inputLine); } request.getReader().close(); String jsonStr = JSON.toJSONString(sb.toString()).replace("<![CDATA[", "").replace("]]>", "").replace("\"", ""); LOGGER.info("微信支付回调参数:"+jsonStr);
支付宝:json
Map<String, String> map = new HashMap<>(); Map<String, String[]> requestParams = request.getParameterMap(); for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext(); ) { String name = iter.next(); String[] values = requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } map.put(name, valueStr); } JSONObject requestObject = JSONObject.parseObject(JSONObject.toJSONString(map)); LOGGER.info("阿里支付回调参数:"+ requestObject);