商户平台接受支付结果
我们已经写好了商户系统接收微信平台支付通知的WEB接口,通过模拟测试,这个接口接收到通知消息之后,真的能修改订单的状态。如果将来咱们的项目正式上线以后,那么创建微信支付订单的时候,我们就可以写这个WEB接口的网址,于是WEB接口就能收到微信平台的支付通知了。
@ApiOperation("接收消息通知")
@RequestMapping("/recieveMessage")
public void recieveMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
Reader reader = request.getReader();
BufferedReader buffer = new BufferedReader(reader);
String line = buffer.readLine();
StringBuffer temp = new StringBuffer();
while (line != null) {
temp.append(line);
line = buffer.readLine();
}
buffer.close();
reader.close();
Map<String, String> map = WXPayUtil.xmlToMap(temp.toString());
String resultCode = map.get("result_code");
String returnCode = map.get("return_code");
if ("SUCCESS".equals(resultCode) && "SUCCESS".equals(returnCode)) {
String outTradeNo = map.get("out_trade_no");
UpdateWrapper wrapper = new UpdateWrapper();
wrapper.eq("code", outTradeNo);
wrapper.set("status", 2);
orderService.update(wrapper);
response.setCharacterEncoding("utf-8");
response.setContentType("application/xml");
Writer writer = response.getWriter();
BufferedWriter bufferedWriter = new BufferedWriter(writer);
bufferedWriter.write("<xml><return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg></xml>");
bufferedWriter.close();
writer.close();
}
}