微信扫码登陆最重要的就是如何获取openid。
其实微信里很多操作都可以获取到openid。
就在今日之前我还是用的一个很挫的办法。
生成一个跳转类似 http://www.xxx.com/wx/oauth_redirect/?uri=http%3A%2F%2Fwww.xxxxx.com%2F/token-00E04C3C7C00ADAS0000&scope=snsapi_userinfo&state=OAUTH_REDIRECT 跳转到指定页面获取openid。但是这种非常没有意义。因为我只是为了获取openid,没必要到自己的网页。
再后来我用了聚合网的微信登陆。他扫码后直接跳到了他们的公众号而且还拿到了openid。我差点惊掉下吧。这特么的就是李云龙他老婆李秀芹的秀儿啊。
我也一直百思不得其解他怎么做的。
今天我请教了一个大神。他和我讲了个大概。原来2个步骤。
获取一个临时带参数的二维码。 网址:https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html
2. 扫码后会推送一个SCAN事件到后台。
生成带参数的二维码请求用例:
http请求方式: POST URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN POST数据格式:json POST数据例子:{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}} 或者也可以使用以下POST数据创建字符串形式的二维码参数: {"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
这样我们就可以获取到红框里的Openid以及 EventKey里的scene_value了。
然后我们就可以实现聚合的登陆模式了。