最近研究php微信支付開發,從微信官方下載了微信支付的demo后,測試時總是彈出NaN:Undefined這樣的錯誤提示。不過這個并不影響支付的操作,支付成功后依然可以正常獲取到支付狀態,并進行跳轉、輸出等操作。
微信支付demo官方下載地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1(含php、java、.net C#三個版本)
具體表現為:
1.下單的時候,并沒有彈出NaN:undefined。
2.進入到支付頁面,在點擊支付按鈕前,就會彈出NaN:undefined。
3.但是不影響繼續支付。點擊去支付BTN,還是可以調出支付窗口。
如果點的快,就會先拉起支付界面,等支付完成返回剛才頁面的時候,才會看到彈出的”NaN:undefined”,等點擊確定該彈窗消失后,才會進行設定的支付成功后的php操作,如跳轉、輸出等。
支付前界面:
支付成功界面:
謝比特猜想,是不是和微信基礎接口一樣,有個debug:true這種調試開關,直接關掉就沒有了?查了一遍,并沒有找到這種。網上找了一圈,發現出現NaN:undefined通常是由于JS中出現的字符型和數字型變量未正確轉換導致的。NaN是 Not A Number的意思,所以我們需要在JS中排查所有可能的數字變量,看它是不是定義為字符串了?
最終找到了這里,最簡單的方法就是把alert這一行注釋掉,可惡的NaN:Undefined錯誤提示就不會再出現了!