项目中使用的微信支付SDK为3.0.10,支付也成功了,但总是收到微信后台发来的回调请求。
分析后发现,原因是客户端收不到
WxpayApi::replyNotify($xml); //客户端收不到该内容
该表态方法内容如下
/**
* 直接输出xml
* @param string $xml
*/
public static function replyNotify($xml)
{
echo $xml;
}
webman在response中对XML有何过滤逻辑么?怎么解决返回xml的问题呢?
WxpayApi::replyNotify($xml);
改成return xml($xml);
试下。或者直接
return $xml;
应该也行都不行:(
微信支付SDK v3.0版的支付通知好像不是 xml了吧,好像是 json格式数据,你看下文档。
https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_5.shtml
在TP框架下,这个微信支付SDK工作正常,迁移到webman,不想再整其它的新版本了,只想从根本上解决这个xml返回的问题
您提到的文档中写道:接收成功:HTTP应答状态码需返回200或204,无需返回应答报文。
而我遇到的问题是回调时没有获取xml文件的内容,但状态码仍然是200,微信服务器应该不再重复回调才对呀,为什么还是在不断回调呢?困惑……
微信支付在3.0这个版中,支付通知已经与2.0不同了,不再是xml格式的应答了,是json格式的,你打印看下就明白了!
不断回调通知,根本原因是它没有收到你的应答确认!
^_^
感谢您的耐心指点,我用的WxPayAPI里写着public static $VERSION = "3.0.10"; 但实际代码中又是在返回xml 这让我很晕,微信支付究竟有多少个SDK呀 @_@
官方看到的大版本就两个,建议看下文档,3.0版本的变化还是挺大的!