3026关注9588浏览
发现小程序的这个问题非常诡异
首先,我从服务器获取到了五个必须的字段,这五个字段,我如果直接在代码里面写死数据,可以直接调起支付,没有问题.
当我直接把拿到的数据赋值给wx . requestPayment,作为参数的时候,会出现错误,-1的情况就出现了.
我的具体代码如下
success : function ( res ) {
wx . showToast ({
title : '创建订单成功' ,
duration : 1000 ,
mask : true
})
console . log ( res );
var time = String ( res . data . data . timeStamp )
var nonce = String ( res . data . data . nonceStr )
var packageName = String ( r
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
Gianna
18人对此回答表示赞同
展开181回复分享发布于 6年前评论(1)
收起评论
-
布偶小天使
14人对此回答表示赞同
问题出在paySign
展开148回复分享发布于 6年前评论(8)
收起评论
-
楚云潇雨 2019-01-27 09:45
感谢,我已经改了,非常感谢.
回复 -
Fan番 2019-01-29 17:23
这我就不清楚了,看你前端代码丝毫无误,后台我就不能多言了。况且你这实在诡异。
回复 -
倾城佳人 2019-01-31 08:16
生成签名换成32位的依然是这个错误,而且我测试过,不用32位的也没有问题,只是现在我要是用变量赋值给wx.requestPayment就是报错,我也是服了,这个问题困扰我好几天了.
回复 -
水木 2019-02-02 23:27
生成签名数据时也是三十二位随机字符串,况且明确提示你签名有问题。我们当时对支付后台做了小改动,你检查一下后台吧。不必太纠结。这是很成熟的技术。总会调试ok的。
回复 -
Tavis 2019-02-04 14:03
文档里面说了,小于等于32位的就可以,不一定非要是32位的,我现在的问题是,所有的参数都没问题,但是我直接赋值给requestPayment,就报错,但是我如果把参数在控制台打出来,然后直接字符串写死在代码里面就能通过,同样的东西,什么都没变,就会出现这样的错误,特别奇怪
回复 -
Cat7 2019-02-06 08:02回复
-
Thomason 2019-02-08 12:40
你的随机字符串怎么不是三十二位的?
回复 -
沐雨风 2019-02-10 17:46
用的就是官方的,同样的值,只要接口传递,赋值给wx.requestPayment就出错,但是从控制台拷贝出来,写死在代码里面就不出错,这个诡异的问题,paySign没有任何问题.
回复
-
-
一百零一夜
3人对此回答表示赞同
你可以试试去空格,有些时候它莫名的就会多一个空格出来
展开30回复分享发布于 6年前评论(0)
收起评论
感谢,问题已经解决了.