在微信公众平台开发过程当中,主要涉及到两大方面问题,一个是网页受权,一个是JS SDK使用。由于最近遇到各类坑,故抽空通读了微信提供的公众平台开发者文档,并在此作下总结。html
1.用户赞成受权,获取code(前端调用):前端
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
用户点击“确认登陆”(即赞成受权),跳到回调地址redirect_uri,并回传code:后端
redirect_uri/?code=CODE&state=STATE(这一步就跳到咱们本身的后端服务工程了)
code有5分钟时效;redirect_uri须要登陆到公众平台配置。api
2.经过code换取网页access_token(后端调用):安全
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
微信返回access_token(受权接口调用凭证)和openid(用户惟一标识,不管是否关注公众号都有)
其中appid、secret都是公众号分配的,可登陆到公众平台查看;access_token有2个小时时效。微信
3.拉取用户信息(后端调用):app
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
1.绑定安全域名:即容许调用JS SDK开发工具的域名,通常为前端页面域名,须要登陆到公众平台配置。微信公众平台
2.引入jweixin.js文件异步
3.验证签名:工具
wx.config({ debug: true, // 开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的惟一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,须要使用的JS接口列表,全部JS接口列表见附录2 });
4.经过ready接口处理验签成功回调:
wx.ready(function(){ //异步 });
5.经过error接口处理验签失败回调:
wx.error(function(res){ //异步 });
哈,本文只是作下总结,具体仍是要参考微信官方说明文档。
下面总结遇到的一些报错,并分析其缘由:1.报“微信签名失败”:有多是安全域名配置有误;2.报“未关注该测试号”:测试号有关注人数限制,有多是已经达到上限了。