在微信公众平台开发过程中,主要涉及到两大方面问题,一个是网页授权,一个是JS SDK使用。因为最近遇到各种坑,故抽空通读了微信提供的公众平台开发者文档,并在此做下总结。
网页授权
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需要登录到公众平台配置。
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.拉取用户信息(后端调用):
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
微信JS SDK
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.报“未关注该测试号”:测试号有关注人数限制,有可能是已经达到上限了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。