问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决invalid signature out of range values

发布网友 发布时间:2022-04-23 07:19

我来回答

2个回答

懂视网 时间:2022-04-23 11:41

这次给大家带来前端微信分享jssdk config:invalid signature 签名错误的解决方法,前端微信分享jssdk config:invalid signature签名错误的解决方法注意事项有哪些,下面就是实战案例,一起来看一下。

关于前端微信分享jssdk config:invalid signature 签名错误

这几天刚刚把微信写完,说出来你可能不信,我写个微信分享一起用了2个礼拜。中间各种心酸,一开始后台老大哥帮我把后台签证给写好了,不过不起作用,想叫他在改,但是后面公司有个项目急着上线,没有空,产品催的又急,自己没有办法,开始自己处理后台.

好了,话不多说,正文开始

首先微信的的东西看微信SDK文档是肯定的

因为我是前端,就只写关于前端的代码了,后台我也涉及了,在文章的最后我会附上我自己改的后台代码

$.ajax({
 type: "post",
 dataType: 'json',
 url: '接口链接',
 data: {
  url: urld
 },
 success: function(conf) {
  console.log(conf);
  configWxAPI(conf);
  var conf = conf.url;  return conf;
 },
 error: function(event, XMLHttpRequest, ajaxOptions, thrownError) {  
 }
 });

 //配置权限
 function configWxAPI(conf) {
 wx.config({
  debug: false, //开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端
  //打开,参数信息会通过log打出,仅在pc端时才会打印
  appId: "唯一的ID", //必填,公众号的唯一标识
  timestamp: conf.timestamp, //必填,生成签名的时间戳
  nonceStr: conf.nonceStr, //必填,生成签名的随机串
  signature: conf.signature, //必填,签名
  jsApiList: [  
  'onMenuShareTimeline',  'onMenuShareAppMessage',  'onMenuShareQQ',  'onMenuShareWeibo',  'previewImage',
  
  ] //必填,需要使用的JS接口列表,也就是配置你想使用的调用接口
 });
// 微信分享
 wx.ready(function() {
  //分享的图片
  var imgUrl = ""
   //分享朋友
  wx.onMenuShareAppMessage({
  title: "标题",
  desc: "内容简介",
  link: "分享链接",
  imgUrl: imgUrl,
  success: function() {
   //分享成功之后执行的回调函数
  },
  cancel: function() {
   //取消分享之后执行的回调函数
  }
  });
    //分享朋友圈
  wx.onMenuShareTimeline({
  title: "标题",
  desc: "内容简介",
  link: "分享链接",
  imgUrl: imgUrl,
  success: function() {
   //分享成功之后执行的回调函数
  },
  cancel: function() {
   //取消分享之后执行的回调函数
  }
  });
 });
 wx.error(function(conf) {
  console.log(conf);
  // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
 });
 };

后台部分的代码

public function getSignPackage() { 
 if(IS_POST){ if(!I('post.url')) $this->ajaxReturn(array('status'=>0,'msg'=>'请输入当前的URL'));
 $jsapiTicket = $this->getJsApiTicket();
  //这句代码微信SDK上面没有介绍,但是用来签证的url里面就&后面会自动带有&,所以这里用了php的字符串替换
 $url = str_replace("&","&",I('post.url'));

 $timestamp = time();
 $nonceStr = $this->createNonceStr();
 
 // 这里参数的顺序要按照 key 值 ASCII 码升序排序

这里的时间还有随机字符串传给和前台的一样,还有url链接是由前台传给后台,在由后台通过这个url进行下面的编码

记住传给后台的url和当前链接要一模一样,记住传给后台的url和当前链接要一模一样,记住传给后台的url和当前链接要一模一样,

 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timestamp&url=$url";
 $signature = sha1($string);
 $signPackage = array( "jsapiTicket" =>$jsapiTicket, "appId" => $this->appId, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string
 ); $this->ajaxReturn($signPackage);

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

相关阅读:

前端入门之css3

axios怎样基于Promise的HTTP请求客户端

css的渐变颜色

热心网友 时间:2022-04-23 08:49

确认签名算法正确,可用 t=jsapisign 页面工具进行校验。也就是你自己后台生成签名要和微信校验算法生成的签名一致才可以(可能大小写不同)。注意:签名生成规则如下:参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的当前时间戳), url(当前网页的URL,不包含#及其后面部分。注意:对于没有只有域名没有 path 的 URL ,浏览器会自动加上 / 作为 path,如打开 http://qq.com 则获取到的 URL 为 http://qq.com/)。特别注意:你在利用参数生成签名的时候,要对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串 string1。这里需要注意的是所有参数名均为小写字符。我的最开始的错误就是没有注意到生成签名的那几个参数要按照key=value的样式连接成一个字符串,然后在sha1加密生成。 /****Java写的参数拼接算法***/ String[] paramArr = new String[] { "jsapi_ticket=" + jsapi_ticket, "timestamp=" + timestamp, "noncestr=" + nonce, "url=" + jsurl };...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 旁氏化妆品 旁氏化妆品的旁氏化妆品特色 旁氏美白化妆品真能去黄还是假的啊? 这种纸叫什么名字? 2000本画册封面300g铜版纸起鼓烫银色 内页157跟铜版纸共58个p包括一张硫酸纸印银色 做骑马钉的画册,但是想非中间页做一个模切,印刷店有这个技术吗?还有哪种材质的纸半透明而且可以印彩色 有种半透明的纸,看起来像上了蜡一样,折痕处会变白色,用在画册上,请问这种纸叫什么名字? 我记得小时候有种画册,每一页都有一张很薄的纸,可以印出下面的画,然后自己拿铅笔照着描上去,叫什么来 硫酸纸是硬的还软的能进水或撕破吗 特种纸种类 手机号码绑定了一个不用的,怎么解除? 硫酸纸不可以彩印的吗?那书籍上运用的和硫酸纸一样的可以彩印的纸叫什么?食品包装的彩印的透明纸叫什么? 企业宣传册内加一张硫酸纸,一般都是多少克的 冰箱除味剂打开看像长毛的样子,是什么原因? 许多书本的开篇第一页就是一张硫酸纸,请问硫酸纸在书本的第一页有什么作用? 不想绑定手机号要怎么解除? 微信解除手机绑定会怎样,原还可以继续使用吗? 绑定的手机号不用以后,会对微信有什么影响么? 三方协议的违约 上海飞机制造有限公司三方协议违约需要交违约金吗? mined是什么意思 你能发给我花枝丸幼稚园的表情包么 发到我的邮箱:mmmimin@qq.com 谢谢你了 有没有人有世界第一初恋第一季ed的完整版,想要啊 发邮箱吧dveilcookie@qq.com 谢谢!!! strong_mined是什么意思 esamined什么意思 "detemined"是什么意思 detemined 啥意思啊 stripmined 什么意思? 西部数码云主机怎么样,西部数码云服务器怎么样 西部数码云服务器怎么样? 西部数码云服务器如何? 请问西部数码云服务器怎么样 西部数码云主机,云服务器怎么样 西部数码的云主机怎么样,西部数码云服务器怎么样 笔画为5画以及寓意好的汉字是什么? 新购买的西部数码云服务器有操作系统吗 西部数码云服务器怎么样呢 觉得西部数码云服务器怎么样? 五划的字有哪些 西部数码云主机怎么样,哪里买比较划算呢