微信 invalid signature 处理

生成签名代码:

这里有一个很容易出错的地方就是 $curLink,  如果直接自己手动拼接,不采用系统$_SERVER,会出错。因为链接在微信打开的时候,微信会自动会自动加上 $_GET 参数, 如果你不把 link 拷贝出来看,不会发现。这点需要特别注意。

如果你发现使用微信的工具生成的签名与自己生成的签名还是报错的话,那么问题很可能就是link不对

    $readyTime = time();
    $curLink = "http://www.test.com{$_SERVER[‘REQUEST_URI‘]}";
    $readyStr = "jsapi_ticket={$jsTicket}&noncestr=test&timestamp={$readyTime}&url={$curLink}";
    $signature = sha1($readyStr);

js代码

需要注意

1 curLink 需要保持一致

2 config 中的签名的属性 都是大驼峰命名,不要写错了

var imgUrl = ‘http://www.test.com/abc.jpg‘; 
var curLink = location.href.split(‘#‘)[0]; 
var shareTitle = ‘title‘; 
var appid = ‘yourappid‘; 

wx.config({
    debug: false,
    appId: appid, //你的appid
    timestamp: <?php echo $readyTime;?>, // 必填,生成签名的时间戳,直接使用php准备好的时间
    nonceStr: ‘test‘, //与php参与签名的串保持一致
    signature: ‘<?php echo $signature;?>‘, //php生成的签名
    jsApiList: [‘onMenuShareTimeline‘, ‘onMenuShareAppMessage‘] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function () {

    wx.onMenuShareTimeline({
        title: shareTitle, // 分享标题
        link: curLink , // 分享链接
        imgUrl: imgUrl, // 分
        success: function () { 
        },
        cancel: function () { 
        }
    });

    wx.onMenuShareAppMessage({
        title: shareTitle, // 分享标题
        desc: ‘desc‘, // 分享描述
        link: curLink , // 分享链接
        imgUrl: imgUrl, // 分
        type: ‘‘, // 分享类型,music、video或link,不填默认为link
        dataUrl: ‘‘,
        success: function () { 
        },
        cancel: function () { 
        }
    });
});
时间: 2024-10-05 13:11:48

微信 invalid signature 处理的相关文章

微信开发配置JSSDK,注入权限验证,以及invalid signature签名错误解决

在微信开发中很多功能都要用到微信JSSDK,关于JSSDK的使用,微信官方的文档已经比较详细,一定要仔细去看文档. <script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> 我们先进入微信SDK的JS文件.在页面中使用ajax注入权限验证,关于后台的验证以及签名算法,官方文档写的很详细,也有demo可以查看. $(function(){ //var url = window.lo

微信企业号 jsSDK wx.config报invalid signature错误,导致api接口无法使用

最近在做公司定制化的时候发现一个问题,使用微信的语音API的时候微信报错,错误信息为:the permission value is offline verifying 但是诡异的是:同样的代码在我们公司的产品上就不会报这个错误,可以正确调用接口.但是放在客户的服务器上,wx.config里面的参数配置成客户微信企业号信息就会报错. 通过查询发现,微信JS-SDK的附录5已经说明了这个问题可能存在的原因 通过排查,发现23没有问题,所以将焦点放在了第一个. 通过微信提供的web调试工具发现wx.

java微信分享config:invalid signature,自定义右上角菜单(只保留分享给好友和朋友圈)

微信提供的API位置:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN 先照着文档复制: JSSDK使用步骤 步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名". 备注:登录后可在"开发者中心"查看对应的接口权限. 说明:登录公共平台https

微信jssdk config:invalid signature 签名错误 ,问题排查过程

invalid signature签名错误.建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 确认config中noncestr, timestamp与用以签名中的对应noncestr, timestamp一致. 确认url是页面完整的url,包括GET参数部分. 确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致. 确

微信-js sdk invalid signature签名错误 问题解决

如果出现 invalid signature,首先可以确定的是你的签名算法有问题.建议:首先查看微信官方网站给出的解决方案,链接为: http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 1. invalid signature签名错误 建议按如下顺序检查: 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验

在做微信分享到朋友圈时,手机扫码报config:invalid signature,分享后后正常的问题,是url问题

是按照以下步骤检查的 除了ACCESS_TOKEN没有缓存其他都可以 如果是invalid signature签名错误.建议按如下顺序检查: 1.确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 2.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致. 3.确认url是页面完整的url(请在当前页面

微信JSAPI分享朋友圈调试经验:invalid signature签名错误排查

.invalid signature签名错误.建议按如下顺序检查: 1.确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验. 2.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致. 3.确认url是页面完整的url(请在当前页面alert(location.href.split('#')[0])确认),

微信公众号之:JSSDK接入以及invalid signature等常见错误问题

最近在搞微信公众号开发,进行到网页开发部分被坑了一天,最坑的问题就是invalid signature,而网上大部分解答这个问题的都没有说清楚,都直接丢文档.博主认为这样很不好.本文是博主结合自身遇到的问题所写,整个流程跟问题都很详细,虽然排版可能有点不好.但是绝对对遇到类似问题的朋友有所帮助.请认真看下去 一.绑定JS接口安全域名 生产号绑定方法:登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".测试号绑定方法:进入测

调用微信扫一扫功能,踩坑&#39;invalid signature&#39;

在vue项目中,调用微信扫一扫功能,在安卓系统下完全正常,ios系统下却报错'invalid signature'的错误,这可能令许多小伙伴困惑,经过查询大量博客相关资料,才找到了解决的方法. 原因:由于在ios和android中,location.href在spa页面的机制不同(不同在于ios是只要不刷新页面,href就不会改变,在vue项目中就会出现类型的问题),所以我们需要借助路由钩子函数,手动改变其页面的url地址,这样ios系统的手机才能正常调起微信扫一扫. beforeRouteEn