1

关键名词解释

  • 安全域名:

        用于JSSDK,开发者即可在该域名(包括二级域名)下调用微信开放的JS接口
    
  • access_token:

    · 普通access_token:JSSDK和微信公众号后台开发使用,获取方法见官方文档:
    http://mp.weixin.qq.com/wiki/15/54ce45d8d30b6bf6758f68d2e95bc627.html
    
    · 网页授权access_token: 网页授权获取用户基本信息(基于OAuth2.0实现),获取方法见官方文档:
    http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html
    
    注意:若公众号已使用第三方开发,access_token不能直接从微信获取,应从第三方开发者中获取,否则会造成冲突
    

调试工具

  • 接口测试号:

        获取一个含有全部接口权限的测试公众号
    
  • 微信web开发者工具:

        获取地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140&token=&lang=zh_CN
          

具体方法

  • 常规步骤:

    • 绑定安全域名

    • 服务器端生成验证信息

    • 客户端使用config接口注入权限验证配置

    • 服务器生成验证信息常规步骤

      • 获取普通access_token

      • 使用aceess_token获取jsapi_ticket

      • 生成签名

参与签名字段:noncestr(随机字符串),jsapi_ticket,timestamp(时间戳),url(当前网页的URL,不包含#及其后面部分)

  • 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1

  • 对string1进行sha1签名,得到signature

注意事项:

  • 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。

  • 签名用的url必须是调用JS接口页面的完整URL。

  • 出于安全考虑,开发者必须在服务器端实现签名的逻辑。

以上为服务器的步骤,根据以上内容实现了一个简单的koa中间件,详见https://github.com/die-welle/koa-weixin-jssdk

  • 客户端使用config接口注入权限验证配置

    待续


JChan
523 声望9 粉丝

互联网杂工一枚,前端初学者