永发信息网

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

答案:7  悬赏:0  手机版
解决时间 2021-04-02 11:27
  • 提问者网友:藍了天白赴美
  • 2021-04-01 15:37
微信支付接口,提示:调用支付jsapi缺少参数: $key0$
最佳答案
  • 五星知识达人网友:鸠书
  • 2021-04-01 16:51
在弄微信JSAPI支付接口时,发现一个问题,就是在苹果的手机上,发现微信会提示一个错误,而在安卓上没有提示这个错误。
错误提示:
微信支付调用JSAPI缺少参数:timeStamp
一开始,我因为是命名的大小写问题
我就去看了一下调用微信支付的地方,我发现明明就有这个参数,怎么就提示缺少了呢。在经过了一方面的了解之后,我发现这个时间戳是用time()生成的,而在生成的json格式中,发现时间戳是没有引号("")包含的。
新版的JSAPI接口地方,对于不同版本的接口,可能这个有所不同,请自己查看,反正就是“生成jsapi支付请求json”的地方。
新版的路径如下:
修改WxPay.JsApiPay.php文件中GetJsApiParameters方法,其中的timeStamp应该是字符串类型。
解决方法:
将时间戳转换成字符串
$timeStamp = strval(time());
全部回答
  • 1楼网友:往事埋风中
  • 2021-04-01 23:37
我的是因为总金额的问题,微信的总金额是以分为单位的,而且不能有小数点,以字符串为主,如果金额是元为单位那么就得乘以100,转换成分为单位。修改后,我的问题就解决了!
  • 2楼网友:深街酒徒
  • 2021-04-01 23:11
出现这种问题的情况很多,timeStamp的格式问题也算其中一种,也有可能是body部分的长度超出。其实解决的唯一办法,就是按照微信支付文档逐一核对参数(包括格式、长度、值的要求),没有别的办法。网上贴出来的多是个例(就算timeStamp问题也只是个例中出现频率较高而已)。
  • 3楼网友:野味小生
  • 2021-04-01 21:58
在微信商户平台管理里面将API秘钥设置为程序里面调用微信支付接口32位数字的key就解决了。
  • 4楼网友:旧脸谱
  • 2021-04-01 20:18
我用的jsapi1.0,告诉我有这个问题,于是百思不得其解,网上说要用字符串也不行。用的1.1的js api的库也不行,最后发现是我忘了写,package: ''prepay_id=**" 中的‘‘‘‘‘‘prepay_id=’’’’’’这个了,真是,浪费我一晚上啊,大家如果遇到了,可以看下是不是这个造成的。。。
  • 5楼网友:梦中风几里
  • 2021-04-01 18:44
调用jsApiCall()里的<%=wxJsApiParam%> 这个东西请不要再加单引号或双引符号,加上就会报“调用支付jsapi缺少参数: $key0$”错误
  • 6楼网友:患得患失的劫
  • 2021-04-01 17:16
解决方法就是修改下 lib/Wxpay.Data.php约2731行处SetTimeStamp方法,修改为 $this->values['timeStamp'] = (string)$value;
希望采纳谢谢!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯