小程序
小游戏
企业微信
微信支付
扫描小程序码分享
{"return_code":"FAIL","return_msg":"解析 XML 出错 (位置: /body): <unspecified file>(1): expected <"}
这个错误有人遇到过吗?上周还是好好的接口,今天突然收到不能支付的投诉,发现都在报这个错误,解决了一下午都没有任何头绪。
请求参数如下:
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
我也遇到这个问题了,用的是nodejs,解决方案是把请求方式request.post 改为 request。这个问题可能是现在接口对body格式验证变严格了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
同上,并不是所有商家都会出现这个问题,只有个别商家才出现了
Java,重新修改请求代码解决,如下:
private static String postPayXml(String url, String xmlString) throws Exception { HttpClient httpClient = new HttpClient(); PostMethod httpPost = new PostMethod(url); httpPost.setRequestHeader("Content-type", "text/plain;charset=utf-8"); httpPost.setRequestHeader("Accept", "*/*"); httpPost.setRequestHeader("Connection", "keep-alive"); httpPost.setRequestBody(xmlString); httpClient.executeMethod(httpPost); return new String(httpPost.getResponseBody(), StandardCharsets.UTF_8); }
今天下午出现同样错误,上午还正常支付
两个商户一样的代码,一个出问题,一个正常
试着解决问题,针对出问题的商户,发现java环境调用正常,node环境报错(原生代码),于是试了下第三方库tenpay,也正常;再对照着改请求代码,确实是body相关的参数变化了,去掉{json: true},增加headers["content-type"] = "text/xml",然后就正常了。自己写的原生请求确实存在兼容性问题,而微信自家的java库、第三方的node库都表现正常
已解决
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
我也遇到这个问题了,用的是nodejs,解决方案是把请求方式request.post 改为 request。这个问题可能是现在接口对body格式验证变严格了
同上,并不是所有商家都会出现这个问题,只有个别商家才出现了
Java,重新修改请求代码解决,如下:
private static String postPayXml(String url, String xmlString) throws Exception { HttpClient httpClient = new HttpClient(); PostMethod httpPost = new PostMethod(url); httpPost.setRequestHeader("Content-type", "text/plain;charset=utf-8"); httpPost.setRequestHeader("Accept", "*/*"); httpPost.setRequestHeader("Connection", "keep-alive"); httpPost.setRequestBody(xmlString); httpClient.executeMethod(httpPost); return new String(httpPost.getResponseBody(), StandardCharsets.UTF_8); }
今天下午出现同样错误,上午还正常支付
两个商户一样的代码,一个出问题,一个正常
试着解决问题,针对出问题的商户,发现java环境调用正常,node环境报错(原生代码),于是试了下第三方库tenpay,也正常;再对照着改请求代码,确实是body相关的参数变化了,去掉{json: true},增加headers["content-type"] = "text/xml",然后就正常了。自己写的原生请求确实存在兼容性问题,而微信自家的java库、第三方的node库都表现正常
已解决