微信支付接口,提示:调用支付jsapi缺少参数: $key0$

2025-04-06 15:06:36
推荐回答(3个)
回答1:

在弄微信JSAPI支付接口时,发现一个问题,就是在苹果的手机上,发现微信会提示一个错误,而在安卓上没有提示这个错误。

错误提示:

微信支付调用JSAPI缺少参数:timeStamp

一开始,我因为是命名的大小写问题

我就去看了一下调用微信支付的地方,我发现明明就有这个参数,怎么就提示缺少了呢。在经过了一方面的了解之后,我发现这个时间戳是用time()生成的,而在生成的json格式中,发现时间戳是没有引号("")包含的。

新版的JSAPI接口地方,对于不同版本的接口,可能这个有所不同,请自己查看,反正就是“生成jsapi支付请求json”的地方。

新版的路径如下:

修改WxPay.JsApiPay.php文件中GetJsApiParameters方法,其中的timeStamp应该是字符串类型。

解决方法:

将时间戳转换成字符串

$timeStamp = strval(time());

回答2:

解决方法就是修改下 lib/Wxpay.Data.php约2731行处SetTimeStamp方法,修改为 $this->values['timeStamp'] = (string)$value;

希望采纳谢谢!

回答3:

我的是因为总金额的问题,微信的总金额是以分为单位的,而且不能有小数点,以字符串为主,如果金额是元为单位那么就得乘以100,转换成分为单位。修改后,我的问题就解决了!