说明
参考官方支付结果通知文档
结果处理
1.添加微信支付SDK依赖
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>版本号</version>
</dependency>
2.定义接收支付结果通知的接口,就是【统一下单API】中提交的参数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();
}