IOS端 引入JS-SDK config验证失败 params_empty错误
发布于 3 年前 作者 duli 249 次浏览 来自 分享

错误如图所示,安卓或者鸿蒙端就不贴出来了都是成功。PC端微信开发者工具也没有问题。

排查了很多错误,之前一直以为是前端获取当前URL在iOS端有问题,但最终发现并不是。

直接说原因,问题出在nonceStr(随机串)这个参数上。之前我的写法是

var nonceStr=Math.random();


得到的结果是一个0到1的随机数 比如0.6428883680931894。

但是iOS端最后得到的结果却是params_empty 参数为空,怀疑是这个小数在iOS端就是当0传了。

之后在测试中把这个随机串写死,比如 sadfasdfasdfasdfsadf ,这样在iOS端就验证通过了。

最后找了一个JS生成随机串的函数:

function random_str(len) {
    let = len || 16;
    var cchars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
    var maxPos = cchars.length;
    var pwd = '';
  for (i = 0; i < len; i++) {
    pwd += cchars.charAt(Math.floor(Math.random() * maxPos));
  }
    return pwd;
}

生成了一个16位的随机串,至此iOS也就验证通过了.

官方文档也没有明确的要求这个随机串的格式,另外在安卓端 鸿蒙端 开发者工具端也都没问题,只能理解为iOS端对于这个小数的处理是有问题的.

希望帮助到遇到这个问题的朋友.

回到顶部