前言
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
1、获取access_token
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
参数说明
参数 | 是否必须 | 说明 |
grant_type | 是 | 获取access_token填写client_credential |
appid | 是 | 第三方用户唯一凭证 |
secret | 是 | 第三方用户唯一凭证密钥,即appsecret |
返回说明
正常情况下,微信会返回下述JSON数据包给公众号:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
2、授权报错:
{"errcode":40164,"errmsg":"invalid ip 123.116.137.161 ipv6 ::ffff:123.116.137.161, not in whitelist rid: 64dd9080-0f673461-19f35052"}
登陆微信公众号https://mp.weixin.qq.com/cgi-bin/,授权ip白名单
AppID: wx75803c631a7479e5
Secret: 2785d67c10c8a43a43924754a716c823
3、获取ticket
ticket用于加强安全性。ticket的有效期目前为2个小时,需定时刷新。建议公众号开发者使用中控服务器统一获取和刷新ticket。 请求方式
请求URL:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
请求方法:GET
返回结果
数据格式:JSON
参数 | 类型 | 是否必填 | 描述 |
errcode | Int | 是 | 错误码 |
errmsg | String | 是 | 错误信息 |
ticket | String | 是 | 临时票据,用于url中signature的签名 |
expires_in | Int | 是 | 有效时长,一般是7200s |
示例代码
{ "errcode": 0, "errmsg": "ok", "ticket": "m7RQzjA_ljjEkt-JCoklRM5zrzYr-6PI09QydZmNXXz-opTqMv53aFj1ykRt_AOtvqidqZZsLhCDgwGC6nBDiA", "expires_in": 7200 }
4、微信 JS 接口签名校验工具
在线获取时间戳:Online timestamp conversion tool