最近研究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操作,如跳转、输出等。
支付前界面:
网上找了一圈,发现出现NaN:undefined通常是由于JS中出现的字符型和数字型变量未正确转换导致的。NaN是 Not A Number的意思,所以我们需要在JS中排查所有可能的数字变量,看它是不是定义为字符串了?
分个打印发现都是未定义。。所以直接删除这个alert就行了
const value1 = res.proviceFirstStageName;
const value2 = res.addressCitySecondStageName;
const value3 = res.addressCountiesThirdStageName;
const value4 = res.addressDetailInfo;
const tel = res.telNumber;
alert(value1)
alert(value2)
alert(value3)
alert(value4)
alert(tel)