【超详细】php实现扫码关注微信公众号系统/网站自动注册登录 您所在的位置:网站首页 怎么用扫二维码的方式登录微信号 【超详细】php实现扫码关注微信公众号系统/网站自动注册登录

【超详细】php实现扫码关注微信公众号系统/网站自动注册登录

2024-07-18 08:29| 来源: 网络整理| 查看: 265

背景:在网站上点击微信登录,页面弹出微信二维码、首次扫描二维码跳转至公众号的主页关注界面、关注公众号后网站自动登录、第二次扫描登录的时候网站直接登录。 可直接提高公众号粉丝量,现在好多工具类网站由有此操作,例如:5118,蓝湖等…

必要条件

1、认证过的微信公众号(必须是服务号,要不然没有此权限) 如果没有微信服务号可以申请微信公众平台测试号入口:进入微信公众账号测试号申请系统 2、能访问到的在线服务器

实现流程及原理 原理

使用微信公众平台提供的生成带参二维码的接口可以生成带不同场景值的二维码,用户扫描后,公众号可以接收到扫码/关注事件推送,具体流程如下如下: 1、用户扫描二维码,如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值(自定义值)关注事件推送给网站开发者。 2、扫描二维码,如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值(自定义值)扫码事件推送给开发者。

流程

第一步:用户选择微信登录,自动生成二维码的时候你自定义一个唯一标识到二维码中,顺便把这个唯一标识传到前端页面中。 第二步:用户扫码关注后微信服务器发送一个关注事件或扫码事件消息到网站服务端接口,消息参数中包括了第一步的唯一标识和扫码用户openid等参数。 第三步:根据openid用微信公众号接口去获取用户信息,拿到用户信息之后就是实现注册功能逻辑,用唯一标识标记作为缓存key标记可以登录。 第四步:前端轮询查询定义参数为key的缓存是否标记可登录时,就开始实现登录逻辑,跳转页面,流程完毕。

详细代码实现流程 1.1.微信公众号与服务器和Token认证

由于我们自己服务,需要接管微信服务器的推送,所以需要在微信公众号后台配置服务器通知地址 在这里插入图片描述 PS:这个配置启用后,微信服务器会把相关的事件推送都转发到用户服务器当前配置的服务器地址上。

Token认证代码 public function callback() { $data = $this->request->param(); if (empty($data['signature']) || empty($data['timestamp']) || empty($data['nonce']) || empty($data['echostr'])) { return -1; } $signature = $data['signature']; $timestamp = $data['timestamp']; $nonce = $data['nonce']; $echostr = $data['echostr']; $token = 'khePcWQZudbbvnKBoJbZfWrHjne1'; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode($tmpArr); $tmpStr = sha1($tmpStr); if ($tmpStr == $signature) { return $echostr; } else { return -1; } } 2.创建WeChat和WeChatEvent两个类 WeChat类主要用于获取access_token,通过openId获取用户信息等与微信之间的请求


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有