微信 JS-SDK 配置wx.config

微信 JS-SDK 是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包,可以通过 JS-SDK 使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,要使用 JS-SDK 的第一步就是配置 wx.config 接口

微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62

可先下载引用jweixin-1.6.0.js,如不可以使用可以试试这个 jweixin-1.6.0.js

wx.config 接口注入权限验证配置

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

获取第一个参数签名的时间戳(其实就是获取当前时间)

获取第二个签名随机串(也没啥特别的就是 UUID)

获取第三个参数签名!!这个比较重要,签名 = 随机串 + ticket + 时间戳 + URL(当前页面),但是随机串和时间戳我们在上边已经获取到了,下边我们只获取 ticket和当前页面的 URL 就好了,最后把他们拼到一起

获取signature主要分四部

AppID和 AppSecret可在微信公众平台 - 开发 - 基本配置”页中获得
1、使用APPID和APPSecret获取access_token;

2、使用access_token获取jsapi_ticket ;

3、用时间戳、随机数、jsapi_ticket和要访问的url按照签名算法拼接字符串;

4、对第三步的字符串进行SHA1加密,得到签名。

获取ticket前就得先获取access_token,获取可参考官方的:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

接口调用请求说明

https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

公众号和小程序均可以使用 AppID 和AppSecret调用本接口来获取access_token。AppID和 AppSecret 可在“微信公众平台 - 开发 - 基本配置”页中获得

参数是否必须说明
grant_type 获取access_token填写client_credential
appid 第三方用户唯一凭证
secret 第三方用户唯一凭证密钥,即appsecret

正常情况下,微信会返回下述 JSON 数据包给公众号:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

拿到的access_token后 采用http GET方式请求获得jsapi_ticket

https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

成功返回如下JSON

{

"errcode":0,

errmsg":"ok",

"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",

"expires_in":7200

}

获得jsapi_ticket之后,就可以生成 JS-SDK 权限验证的签名了。

签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义

 

签名校验:https://mp.weixin.qq.com/debug/cgi-bin/sandBox?t=jsapisign

 

例子可参考:https://blog.csdn.net/qq_36537546/article/details/118701629

      https://blog.csdn.net/cplvfx/article/details/121798753

      https://www.cnblogs.com/laid/p/15177188.html

posted @ 2022-06-15 16:18  多喝热水,早点睡觉  阅读(3658)  评论(0编辑  收藏  举报