菜鸡源码,专注精品下载!
当前位置:首页 > 建站教程 > 建站知识

PHP实战分享:微信扫码关注公众号登录功能

发布时间:2024-01-05  栏目:建站知识   浏览:   分类:微信小程序教程 微信公众号

微信扫码关注公众号登录功能是一种常见的微信公众号开发方式。在PHP中,我们可以使用微信公众平台提供的API来实现这个功能。首先,我们需要在微信公众号后台配置好相关参数,包括AppID、AppSecret等。然后,在用户扫描二维码关注公众号后,我们可以通过调用微信的接口获取到用户的OpenID和SessionKey。接下来,我们可以将这些信息存储到数据库中,以便后续使用。最后,当用户再次访问我们的网站时,我们可以通过检查数据库中是否存在该用户的OpenID来判断用户是否已经关注了公众号。

1、安装easywechat

基于easywechat框架开发,首先下载安装easywechat

composerrequireovertrue/wechat

2、公众号配置

先去公众号后台基本配置/ 填写服务器配置配置接口,需要是线上能正确收到微信推送消息的地址,关注如果有关注、扫码、收到消息等事件都会推送到该地址

微信扫码关注公众号登录功能php实战分享
公众号配置方法截图



3、创建二维码

首先创建一个临时二维码,ticket保存下来

useEasyWeChat\Foundation\Application;//生成随机数$unique=md5(password_hash(uniqid(true),PASSWORD_BCRYPT));//二维码有效期600秒$expiry=600;$app=newApplication($options);$qrcode=$app->qrcode;$data=$qrcode->temporary($unique,$expiry);//这个值保存下来,待会查询扫码状态可以用到$ticket=$data->ticket;//二维码的地址$url=$qrcode->url($ticket);

拿到如下格式的链接地址,直接打开就是一张二维码

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQHA7zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyNmZudTBoOUJldUQxYWhhYXhBY1gAAgQ5iApkAwRYAg11

4、服务端接口

此接口地址需要对应微信后台配置的服务器地址,下面示例只添加了关注 扫码,更多方法参考微信官方文档

useEasyWeChat\Foundation\Application;$app=newApplication($options);//从项目实例中得到服务端应用实例。$server=$app->server;$server->setMessageHandler(function($message){switch($message->MsgType){//收到事件消息case'event':switch(strtolower($message->Event)){//公众号关注case'subscribe'://可以拿到创建二维码时候的ticket值$ticket=$message->Ticket;//关注用户的openid$openoid=$message->FromUserName;break;//二维码被扫case'scan':break;//...}break;}//...});

上面方法可以拿到生成二维码时候的的ticket,和关注公众号用户的openid。

5、前端处理

服务端需要返回二维码地址、ticket、过期时间

前端拿到二维码地址后,将二维码展示给页面,二维码过期需要刷新二维码或者提示已过期。

可以使用轮询或者长连接的方式通过ticket刷新用户扫码状态,检测到已扫描刷新登录状态,用户成功和公众号关联。

6、后端获取用户信息

通过获取到的openid就能获取到用户信息了

useEasyWeChat\Foundation\Application;$app=newApplication($options);$userService=$app->user;$openoid='***';$user=$userService->get($openoid);


相关专题
评论
建站知识
建站知识
使用技巧
调试安装
运营推广