回调代码
public void notify(HttpServletRequest request, HttpServletResponse response) throws IOException {
String wxRetXml = PaymentUtils.getRequestData(request);
Map<String, String> wxRetMap = PaymentUtils.xmlToMap(wxRetXml);
Assert.notNull(wxRetMap, ExceptionMessage.XML_DATA_INCORRECTNESS.getMessage());
// 当返回的return_code为SUCCESS则回调成功
if ("SUCCESS".equalsIgnoreCase(wxRetMap.get("return_code"))) {
// 通知微信收到回调
String resXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
out.write(resXml.getBytes());
out.flush();
out.close();
// TODO 保存订单流水 具体细节待实现
// orderBillService.save(new OrderBill());
log.info("notify success"+"通知结束");
} else {
log.error("notify failed");
}
}
小程序代码
wx.request({
url: 'http://127.0.0.1:8080/api/wx/pay/notify',
method: 'GET',
header: {
'Authorization': 'bearer ' + this.data.token.data.access_token,
"Content-Type": "application/x-www-form-urlencoded"
},
success: res => {
console.log('支付完成后返回的', res)
}
})