項(xiàng)目中使用的微信支付SDK為3.0.10,支付也成功了,但總是收到微信后臺(tái)發(fā)來(lái)的回調(diào)請(qǐng)求。
分析后發(fā)現(xiàn),原因是客戶端收不到
WxpayApi::replyNotify($xml); //客戶端收不到該內(nèi)容
該表態(tài)方法內(nèi)容如下
/**
* 直接輸出xml
* @param string $xml
*/
public static function replyNotify($xml)
{
echo $xml;
}
webman在response中對(duì)XML有何過(guò)濾邏輯么?怎么解決返回xml的問(wèn)題呢?
微信支付SDK v3.0版的支付通知好像不是 xml了吧,好像是 json格式數(shù)據(jù),你看下文檔。
https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_5.shtml
您提到的文檔中寫道:接收成功:HTTP應(yīng)答狀態(tài)碼需返回200或204,無(wú)需返回應(yīng)答報(bào)文。
而我遇到的問(wèn)題是回調(diào)時(shí)沒(méi)有獲取xml文件的內(nèi)容,但狀態(tài)碼仍然是200,微信服務(wù)器應(yīng)該不再重復(fù)回調(diào)才對(duì)呀,為什么還是在不斷回調(diào)呢?困惑……
微信支付在3.0這個(gè)版中,支付通知已經(jīng)與2.0不同了,不再是xml格式的應(yīng)答了,是json格式的,你打印看下就明白了!
不斷回調(diào)通知,根本原因是它沒(méi)有收到你的應(yīng)答確認(rèn)!
^_^
感謝您的耐心指點(diǎn),我用的WxPayAPI里寫著public static $VERSION = "3.0.10"; 但實(shí)際代碼中又是在返回xml 這讓我很暈,微信支付究竟有多少個(gè)SDK呀 @_@