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

发布网友 发布时间:2022-04-22 22:28

我来回答

10个回答

热心网友 时间:2022-04-20 01:01

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

错误提示:

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

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

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

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

新版的路径如下:

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

解决方法:

将时间戳转换成字符串

$timeStamp = strval(time());

热心网友 时间:2022-04-20 02:19

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

希望采纳谢谢!

热心网友 时间:2022-04-20 03:54

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

热心网友 时间:2022-04-20 05:45

出现这种问题的情况很多,timeStamp的格式问题也算其中一种,也有可能是body部分的长度超出。其实解决的唯一办法,就是按照微信支付文档逐一核对参数(包括格式、长度、值的要求),没有别的办法。网上贴出来的多是个例(就算timeStamp问题也只是个例中出现频率较高而已)。

热心网友 时间:2022-04-20 07:53

在微信商户平台管理里面将API秘钥设置为程序里面调用微信支付接口32位数字的key就解决了。

热心网友 时间:2022-04-20 10:18

我用的jsapi1.0,告诉我有这个问题,于是百思不得其解,网上说要用字符串也不行。用的1.1的js api的库也不行,最后发现是我忘了写,package: ''prepay_id=**" 中的‘‘‘‘‘‘prepay_id=’’’’’’这个了,真是,浪费我一晚上啊,大家如果遇到了,可以看下是不是这个造成的。。。

热心网友 时间:2022-04-20 12:59

调用jsApiCall()里的<%=wxJsApiParam%> 这个东西请不要再加单引号或双引符号,加上就会报“调用支付jsapi缺少参数: $key0$”错误

热心网友 时间:2022-04-20 15:57

看看生成的js对象里timeStamp的数据类型, 据说如果数据类型是数字, 则会出现这个$key0$.报错

热心网友 时间:2022-04-20 19:12

setBody 参数 必须是英文, 不是英文的话. andriod没问题. 苹果有问题....提示缺少
缺少参数: $key0$

热心网友 时间:2022-04-20 22:43

微信支付接口没有C#的,C#开发时调用的是js的API。而且,$也不是C#参数的定义方式,C#报错是“未将对象的引用设置到对象的实例”。你检查一遍配置信息,看是否有漏掉的。追问大哥你没做过就不要来回答啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com