微信公众平台
基本概念
登录: 登录即允许主动调用 wx.login
获取 openId 和 session_key
授权: 即被动 open-type
获取加密的用户数据给后台解密后返回
ID标识
ID用于标识用户与开发者,借此来实现微信服务
OpenID: 用户在一个小程序中的唯一标识(wx.login + code2Session)
UnionID: 用户在一个开放平台所有应用下的唯一 id
获取方式
-
小程序wx.getUserInfo -> 后台解密出UnionID(需授权)
-
用户关注了同主体公众号下,wx.login + code2Session 获取到 UnionID(无需再次授权)
-
用户关注/授权登录了同主体公众号/应用下,小程序云函数cloud.getWXContext获取
-
小程序支付完成后getPaidUnionId,仅支付后5分钟(无需授权)
AppID: 小程序身份证,借此获取微信接口使用权限
AppSecret: 小程序唯一凭证密钥
公众号开发
微信公众开发文档https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html
SDK接入
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫等微信特有的能力;
JS-SDK https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
安装
npm install weixin-js-sdk
jsapi_ticket
jsapi_ticket
是获取微信接口使用权限的临时票据,后端通过 access_token
通过GET请求特定微信url换取
签名signature
将以下4个字段按顺序使用”&”拼接
-
jsapi_ticket=xxx… (获取的jsapi_ticket)
-
noncestr=Wm3WZYTPz0wzccnW (随机字符串)
-
timestamp=1414587457 (当前时间戳)
-
url=http://mp.weixin.qq.com?params=value (当前网页的url,不允许hash)
-
对拼接字符串进行sha1签名,返回的字符串记为signature字段
注:为安全性,服务端生成以上字段,前端拼接后作为调用 wx.config
参数
验证配置 wx.config
wx.config({
debug: false, // 是否开启调试模式,开启则在每次微信接口调用完成alert返回结果
appId: '微信公众号appId',
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: [
'onMenuShareTimeline', // 分享到朋友圈
...微信接口列表
]
});
验证通过 wx.ready
wx.ready(calllback)
验证通过回调,微信接口方法必须在wx.ready的回调之后调用才有效
wx.error(callback)
监听验证失败回调
个人对微信JS-SDK接入封装: https://github.com/KID-1912/wx-sdk-api
微信接口
微信分享
imgUrl
分享封面配置的url必须是已加载完成图片资源
link
分享链接配置的url必须与 wx.config
中 signature
注入的 url
字段同一域名
踩坑
blob图片
微信H5端blob图片仅支持显示,不可被保存与分享