微信JS接口签名

微信公众号配置上网

关于微信JSSDK的操作下面有非常详细的文档

微信JSSDK说明文档 - 微信公众平台开发者文档

具体步骤如下图所示


JSSDK数字签名认证

步骤一:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。

备注:登录后可在“开发者中心”查看对应的接口权限。

步骤二:引入JS文件

在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js

这里特别注意:我以为是这样写的


这是错的,注意

  这样做的导致的结果是微信js sdk invalid signature签名错误。

 我的错误截图:


invalid signature签名错误


网上这个错误基本说是支付时候出现的问题,本人在这里也遇到了

至于怎么调试这个错误信息,在wx.config里面配置  debug:true,就可以看掉调试信息错误了。

JS接口安全域名

还有一个原因导致,没有用最新的jssdk!但是最新的jssdk是基于SSl的https验证!

绑定域名,用自己的域名代替,这点很重要,很重要,很重要,千万注意了!

步骤三:通过config接口注入权限验证配置

wx.config({

debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

appId: '', // 必填,公众号的唯一标识

timestamp: , // 必填,生成签名的时间戳

nonceStr: '', // 必填,生成签名的随机串

signature: '',// 必填,签名,见附录1

jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

});

看到没有这就是debug模式,在正式的环境时,就不要ture了,该flase。但是在生产环境中,无论是wifi连接还是

蓝牙连接,这里有跟硬件相关的,还需要注意一个地方,这里也是一个坑。需要配置:beta: true,

百度搜索


自己百度这个啥意思

这里有解释说明原因。


这个是在公开手册里面没有讲的,请叫我老司机

还要注意一点



通过对比发现,附录2里面是没有我刚才说的这个函数的,是可以自定义。

下面是我自定义的JS文件


wifi配置成功到最后成功的标记是这样的

配置成功如下图:


输入账户密码,实际上这个是不需要你输入的,默认记住密码的
设备联网成功

步骤四:通过ready接口处理成功验证

wx.ready(function(){

// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

});

这里没什么要将的,自己想干啥就干啥。

我的我ifi配置工作就是


配置WIFI

步骤五:通过error接口处理失败验证

wx.error(function(res){

// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

});


没做任何处理

碰到问题时,多看看文档,微信的文档还是比较全的,还有测试工具


测试工具和测试demo

demo里面的代码有好多种。我这里用的php部分


4种编程语言代码

注意看看readme.txt

PHP 部分代码包括了获取 access_token 和 jsapi_ticket 的操作,只需传入 appid 和 appsecret 即可,但要注意如果已有其他业务需要使用 access_token 的话,应修改获取 access_token 部分代码从全局缓存中获取,防止重复获取 access_token ,超过调用频率。

注意事项:

1. jsapi_ticket 的有效期为 7200 秒,开发者必须全局缓存 jsapi_ticket ,防止超过调用频率。

2.注意如果已有其他业务需要使用 access_token 的话,应修改获取 access_token 部分代码从全局缓存中获取,防止重复获取 access_token

最后说下微信开发用到的几个网址工具:

微信公众平台接口调试工具


基本调式工具


获取jsApi

https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=yPZn6I0DrojVN02iWOzMlXsHVgKPqveL1zK95zqZlU2NqscAd1NATSh5ZpJgPuTTXi5daYGP9FC8rpTyByM4FmPK7jEtPnWVk-y-irIHAuKubZy5wpUvw8Eo5l5fbniFALUfAIALWF&type=js

access_token根据自己的appID和appsecret来获取。

获取数字签名微信 JS 接口签名校验工具

微信 JS 接口签名校验工具


签名校验工具

好了,基本就是这样,希望在简书和大家多多交流。

推荐阅读更多精彩内容