快速学习nodejs系列:微信公众号开发六之JS-SDK
微信js-sdk是基于微信内的网页开发的工具包,为我们提供许多功能,通过使用微信JS-SDK,我们可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,可为微信用户提供更优质的网页体验。
使用js-sdk的步骤:
1.绑定域名
2.引入JS文件
3.通过config接口注入权限验证配置
4.通过ready接口处理成功验证(这一步骤不是必要的)
从上面的步骤3可知,一定要config接口后才能使用其他的接口,config接口有签名signature需要验证,签名有其生成的方法,具体文档见:https://mp.weixin.qq.com/wiki...。
签名的生成
jsapi_ticket
我们前面说过access_token,现在也会说另外一个票据叫做jsapi_ticket。jsapi_ticket是公众号用于调用微信JS接口的临时票据。jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
获取jsapi_ticket的api https://api.weixin.qq.com/cgi...
js-sdk签名算法:
参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。
算法:对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。
列子:
现在代码实现下:
使用js-sdk的页面是:http://xgqfgg.natappfree.cc/i...
说明:index.html使用fetch来做异步请求,你也可以用jquery等。事例中我们只调用updateAppMessageShareData分享给朋友。
微信开发工作结果:
上图结果说明 我们的config是成功了的,下面你就可以调用js-sdk的所有接口了。
到这节微信工作号的所有关键知识已经说完了,有些细节的东西没有讲到,希望大家可以好好看下微信的官方文档。接下来的课程,我们做一个基于微信公众号的完整聊天室。