微信支付通知,使用@ok("raw") ,将xml 格式String 串返回给微信,可是微信端好像没收到似的
2 回复
这是回调的方法
@At("/payCallBack")
@Ok("raw")
public String payCallBack (HttpServletRequest req) throws Exception {
log.info("\n\n\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>微信回调开始>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n\n\n\n\n");
String xmlStr = WxUtil.getXmlString(req);
Map<String, Object> map = WxUtil.xmlToMap(xmlStr);
// 验证返回是否成功
if (map.get("return_code").equals("SUCCESS")) {
log.info("通信成功>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
// 验证签名是否正确
if (WxPaySign.createSign(PropertiesUtil.readProperty("wxpay_key"), map).equals(map.get("sign"))) {
// 修改订单支付状态
wbWalletService.updateOrderStatus(map.get("out_trade_no").toString());
// // 修改赞赏状态
wbAppreciateService.updatePayStatus(map.get("out_trade_no").toString());
}
}
log.info("\n\n\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>微信回调结束>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n\n\n\n\n");
String str = WxUtil.returnXML(map.get("return_code").toString());
return str;
}
这是组成的xml
/**
* 返回给微信服务端的xml
* @param return_code
* @return
*/
public static String returnXML(String return_code) {
return "<xml><return_code><![CDATA["
+ return_code
+ "]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
}
添加回复
请先登陆