最近在做公司的微信接入部分。目前接入部分代码已经由别人写好,但是还有很多问题。经过几天痛苦的看文档和代码,整理一下接入流程,大致相当于微信官方文档的扩展版本。附上官网文档链接。
微信登录接入分为两种,一种是只需要用户openid,另一种是需要用户昵称和头像等乱七八糟的另一些信息。第一种可以不经过授权,如果用户已经关注该公众号,则该公众号的回调链接可以直接获取到用户openid。第二种无论是否关注公众号,都必须经过授权,也就是一个页面带绿色大按钮那种,官方文档有图。但是第二种接入,也必须先走完第一种接入流程。
只获取openid的接入
服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo,这是官网文档的说法。获取的链接为:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
appid和回调链接不用多说,state是一个可选参数,唯一需要重视的就是scope这个参数。选snsapi_base,能够获取到openid,这个可以用作唯一用户id使用。如果不需要用户昵称,让用户后续自行设置,那么到此为止就可以了。
获取用户昵称的接入
走完第一步以后,可以获取到openid同时可以获取到一个access_token,这个token专门用来获取用户其他信息。但是,重点来了,想获取用户其他信息,第一步使用的scope参数,必须是snsapi_userinfo。第一步获取完信息以后,用access_token做参数,去https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
这个链接里,调用一次get函数,从返回值里就可以取到用户数据了。
如果有什么遗漏错误欢迎在下面留言。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。