微信支付支付结果通知处理
说明
参考官方文档
结果处理
1.添加微信支付SDK依赖
<dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> <version>版本号</version> </dependency>
2.定义接收支付结果通知的接口,就是中提交的参数notify_url设置
@RequestMapping("/success") public String success(HttpServletRequest request) throws Exception { String param = this.getBodyContent(request); log.info("支付成功回调:param={}", param); Map<String, String> map = new HashMap<>(16); Map<String, String> stringStringMap = WXPayUtil.xmlToMap(param); if ("SUCCESS".equals(stringStringMap.get("return_code"))) { map.put("return_code", "SUCCESS"); map.put("return_msg", "OK"); } return WXPayUtil.mapToXml(map); } public String getBodyContent(HttpServletRequest request) { ServletInputStream in = null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = request.getInputStream(); reader = new BufferedReader(new InputStreamReader(in)); // 作为输出字符串的临时串,用于判断是否读取完毕 String itemStr = ""; while (null != (itemStr = reader.readLine())) { content.append(itemStr); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (null != reader) { reader.close(); } if (null != in) { in.close(); } } catch (IOException e) { e.printStackTrace(); } } return content.toString(); }