微信公众号点击菜单即可打开并登录微站实现步骤

现在大部分微站都通过用户的微信openid来实现自动登录。在我之前的开发中,用户通过点击一个菜单,公众号返回一个图文,用户点击这个图文才可以自动登录微站。但是如果你拥有高级接口,就可以实现点击菜单,打开网页就能获取这个openid,实现自动登录。

这里已经提到,必须要拥有高级接口的权限(服务号、企业号),开启了开发者模式。

1.设置回调地址 ↑

在微信公众平台后台“开发者中心”中找到“高级接口”下的“OAuth2.0网页授权”,后面有一个“修改”,点击之后就会弹出填写回调地址的对话框。具体如何授权,请点击这里学习。只有获得高级接口权限后,才能出现这个地方的“修改”。

注意,这里填写的是域名,不是带http://的网址,而且解释中很清楚,“授权回调域名配置规范为全域名”,也就是说带www和不带是不同的两个域名。因此我这里要填写如下图中的域名。

在上图中的这个地方,选择打开链接的方式创建菜单。OK,接下来把上面那个链接放进去:

https://open.weixin.qq.com/connect/oauth2/authorize?appid={在微信公众平台后台获取这个APPID}&redirect_uri={你填写的回调域名下的地址}&response_type=code&scope=snsapi_base&state=1#wechat_redirect
创建菜单就可以了。

当然,你也有可能只需要在你自己的微信管理后台加入这个链接就可以了。

3.在回调页获取openid ↑

细心的你可能已经发现了,上面的链接地址中含有参数scope=snsapi_base,而非scope=snsapi_userinfo,因为使用前者不需要用户点击一个授权按钮,直接跳转到回调页面,而后者需要点击授权按钮,不过点击授权按钮有好处,一是可以在没有关注公众号的情况下也可以授权,二是授权后可以获得用户的一些信息,如昵称、性别、所在地。但是我们是为了利用openid进行登录,所以直接选择前者就可以了。

点击菜单之后,经过微信authorize的处理,会跳转到你提交的回调地址(这里需要提醒,回调地址最好不要带参数,例如xxx/?callback=from_weixin,因为微信跳转到你的回调地址也要带参数,而这个参数就你需要的)。微信跳转到如下URL:

回调地址/?code=CODE&state=1
上面代码可以通过$_GET['code']获得一个CODE值,利用这个CODE值和appid,可以获得openid和access_token。

下面再用PHP来实现以下:

 代码如下 复制代码

if($_GET['code']) {
  $code = $_GET['code'];
  $data = get_by_curl('https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSRC&code='.$code.'&grant_type=authorization_code');
  $data = json_decode($data);
  $openid = $data->openid;
  $access_token = $data->access_token;
}

function get_by_curl($url,$post = false){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if($post){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
    }
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

这样可以就可以获得openid和access_token,利用这些值,我们还可以利用微信公众平台的获取用户基本信息api接口获取用户基本信息。

时间: 2024-09-14 11:23:41

微信公众号点击菜单即可打开并登录微站实现步骤的相关文章

微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解_基础知识

微信公众号开发 自定义菜单 请先读完本文再进行配置开发 请先前往微信平台开发者文档阅读"网页授权获取用户基本信息"的接口说明 在微信公众账号开发中,往往有定义一个菜单,然后用户点击该菜单就进入用户个人中心的功能,通常应用于各个公众账号中的会员服务. 如何在微信自定义菜单中将用户导航到个人中心页面呢? 首选需要通过用户点击获取用户openid,而通过用户的点击跳转获取用户openid就必须在菜单中动态绑定用户的openid,或者在菜单的跳转URL中填写微信提供的链接,官方给了两个链接类型

关于微信公众号的问题-微信公众号怎么做?请各位大哥大姐帮我,我是新手

问题描述 微信公众号怎么做?请各位大哥大姐帮我,我是新手 我是新手 ,各位 大哥大姐 ,你们做过微信的公众号吗?教教我 怎么做好吗.主要就是我做出来了网页,,他的网页 怎么点击二级菜单弹出来的.我确实不会.请指教?非常感谢 解决方案 页面就跟做JSP页面一样没什么好说的,但是你要是在微信端点击他上面的横栏二级菜单就要在公众号上面配置 有个自定义菜单选项可以配置 解决方案二: 你参考一下:http://blog.csdn.net/u011622479/article/details/5118159

QQ公众号来了,它与微信公众号有何不同?

微信与QQ根据最 新的腾讯,2014年第三季度财报,手机QQ月活跃用户, 5.42,亿,微信4.68,亿,QQ高于微信,而且两者的增长率都超过,30%.或许这出乎很多人的预料.尽管在,PC,端,QQ, 用户增长已放缓,但在移动端,QQ,与微信依然齐头并进,并没有出现很多人担心的"腾讯左右手互博"."QQ,微信此消彼长"的情况.不可否认的是, 同样作为通讯工具,从产品气质方面 来看,微信更商务范,QQ更娱乐范.商务范的微信,推出主要面向企业的公众平台已两年多.这期间,

QQ公众号是什么,和微信公众号的区别在哪里

根据最新的腾讯 2014Q3 财报,手机QQ月活跃用户 5.42 亿,微信 4.68 亿,QQ高于微信,而且两者的增长率都超过 30%.或许这出乎很多人的预料.尽管在 PC 端,QQ 用户增长已放缓,但在移动端,QQ 与微信依然齐头并进,并没有出现很多人担心的"腾讯左右手互博"."QQ 微信此消彼长"的情况. 不可否认的是,同样作为通讯工具,从产品气质方面来看,微信更商务范,QQ更娱乐范. 商务范的微信,推出主要面向企业的公众平台已两年多.这期间,微信公众号取得的成

微信公众号自定义菜单点击推送消息×

问题描述 微信公众号自定义菜单点击推送消息× 微信公众号完成了自定义菜单怎么点击菜单推送消息?微信公众号完成了自定义菜单怎么点击菜单推送消息? 解决方案 在公众号管理页面是可以为每个二级菜单设置链接的啊 解决方案二: 新建菜单的时候可以指定是链接还是推送哪些信息的. 解决方案三: 菜单是无法在代码里动态生成的,你需要先设置好 而且每次修改,客户端有24小时的缓存,除非重新关注

如何实现在外部浏览器中点击微信卡券链接直接跳转至关注微信公众号?

问题描述 如何实现在外部浏览器中点击微信卡券链接直接跳转至关注微信公众号? 想要实现将微信卡券生产链接,在外部浏览器中点击此链接,可直接打开微信并显示公众号 解决方案 现在好像不行了,只能使用图文方式了.http://jingyan.baidu.com/article/cbf0e500921c312eaa2893a2.html 解决方案二: wzquan0769 http://w.url.cn/s/A6dNkAY个链接在外部浏览器中打开可以直接跳转至微信哦,问题是不知道怎么实现 解决方案三: 进

微信公众号开发系列-开发模式创建自定义菜单

通过程序方式实现自定义菜单,通过http请求封装类交互微信自定义菜单接口 1.得到AccessToken access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取将导致上次获取的access_token失效.由于获取access_token的api调用次数非常有限,建议开发者全局存储与更新access_token,频繁刷新access_token会导致api调用受限,影响自身业务. 请开发者

微信公众号菜单怎么创建

准备工作:添加自定义菜单功能 1.电脑登陆微信公众号 2.左侧的操作栏选择:功能--添加功能插件 3.找到"自定义菜单"(详见图片所示),点击"添加",将自定义菜单添加到功能插件中 免费菜单分为一级菜单和二级菜单,一级菜单就是平时打开公众号在文章底部所看到的,二级菜单是点击一级菜单后出现的菜单,下面先讲讲如何添加一级菜单 增加一级菜单栏目 1.点击界面左侧的功能--自定义菜单 2.进入后,开启该功能,点击"菜单管理"右侧的加号,添加一级菜单,上限

微信公众号 文本 菜单-微信普通公众号如何实现多重文本菜单?

问题描述 微信普通公众号如何实现多重文本菜单? 微信普通公众号如何实现多重文本菜单? 微信普通公众号如何实现多重文本菜单?比如: 首先显示文本菜单: 1. a 2. b 3. c 在输入2之后,后台列出2下的新菜单列表: 1. ba 2. bb 3. bc 再输入3之后,后台列出3下的新菜单列表,以此类推 这个功能该如何实现呢? 解决方案 下一级你可以指定为2.1 再一级 2.1.1 解决方案二: 很简单,微信公众号提供了对特定关键字进行特定回复的接口 你只要自定义这些特定关键字和需要回复的内容