微信登陆扫码跳转到公众号并获取openid

微信公众号 文章 2020-07-13 16:42 0 106 全屏看文

微信扫码登陆最重要的就是如何获取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个步骤。

  1. 获取一个临时带参数的二维码。 网址: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"}}}


image.png


这样我们就可以获取到红框里的Openid以及 EventKey里的scene_value了。

然后我们就可以实现聚合的登陆模式了。

-EOF-