网站实现微信扫码登录(利用微信开放平台实现)

第一步:微信开放平台账户申请

网址:微信开放平台

1.首先我们要做的就是进入到微信开放平台申请一个开放平台账户,获得资质!

:注册需要准备营业执照、1-2个工作日审批、300元认证费

:注册之后,会给你提供微信id和微信密钥

第二步:申请网站应用名称

注册后进入管理中心>网站应用>创建网站应用:

 审核通过后,列表就会可以查看到这个网站应用,点击查看可以获取到appId 和appSecret了。

第三步:用网站应用里的appId   调用微信二维码  下面是代码(控制器方法)

 //请求登录二维码
    public function getLoginImg()
    {
        //请求登录二维码
        $appId = '***************';//你的appId
    //这里强调一下  网站应用的授权回调域只能是域名   在代码中调用二维码时写入域名里具体的回调接口
    //比如我这个  网站应用里的授权回调域写的是https://test.huin.com     但是请求二维码时要加上具体的回调接口:/admin/login/wechat  
        $redirectUri = 'https://test.huin.com/admin/login/wechat';//我这个地址是无效的  换成你们自己的
        $redirectUri = urlencode($redirectUri); // 对URL进行编码
        $scope = 'snsapi_login'; // 网页授权获取用户基本信息  固定的
        //这个状态你设置的是什么  回调给你的就是什么  可以用来区分那个模块的二维码 (比如我要做绑定后台账号  绑定的二维码我设置state=1  登录二维码我设置state=2  这个就可以很好区分开了)
        $state = 2; // 可自定义,用于保持请求和回调的状态
        // 构造授权URL   //这个地址是固定的可以直接用
        $url = "https://open.weixin.qq.com/connect/qrconnect?appid={$appId}&redirect_uri=
{$redirectUri}&response_type=code&scope={$scope}&state={$state}#wechat_redirect";

        // 重定向到授权URL(也就是跳转到展示二维码的页面)
        header("Location: {$url}");
        exit;
    }

请求出来二维码后手机微信扫描后会调到这个页面

点击允许后会带着code及你设置的state 调用回调域接口进行处理 如果是我的代码就会调用到这个接口【https://test.huin.com/admin/login/wechat】

 第四步:回调处理 代码(控制器方法)

    //授权回调接口
    public function wechat()
    {
         //回调到这个接口会带给你  code码和上一段代码中的state  【state你之前设置的是什么回调给你的就是什么】
        $code = $_GET['code']; // 获取code
        $state = $_GET['state']; // 获取code
        //这就是你网站应用里申请的appId appSecret 
        $appId = '***************';
        $appSecret = '****************************';
        // 构造请求URL 这个地址是固定的  可以直接用
        $tokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appId}&secret={$appSecret}&code={$code}&grant_type=authorization_code";
        // 发送请求并获取结果
        $response = file_get_contents($tokenUrl);
        $data = json_decode($response, true); 
        // 提取access_token和openid      openid是唯一的可以拿来绑定后台账号  或者直接登录
        $accessToken = $data['access_token'];
        $openid = $data['openid'];
       }

网站应用审核通过后其实就两步:

一 是通过第一个方法使用appId 调用二维码  

二 手机授权后带这个code码和state 请求到你的回调域接口  这个接口就可以拿接收到的code和你网站应用上的appid,appSecret  请求这个用户的唯一的openid  拿着这个openid和access_token就可以存数据库     代码也可以做绑定后台账号 下次扫码直接登录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/614364.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MP4提取gif怎么操作?分享一招快制作

随着各种社交媒体的发展,越来越多的人在聊天中使用gif表情包来调节自己的聊天氛围。搞笑的gif表情包能够为我们平淡的生活添砖加瓦,带给我们一些轻松和欢乐。如果想要自己制作gif动画的时候就可以用视频转gif的工具,能够在不下载软件的情况下…

1055: 邻接矩阵到邻接表

解法&#xff1a; #include<iostream> using namespace std; int arr[100][100]; int main() {int n;cin >> n;for (int i 0; i < n; i) {for (int j 0; j < n; j) {cin >> arr[i][j];}}for (int i 0; i < n; i) {for (int j 0; j < n; j) …

27、Qt自定义标题栏

一、说明 QtWidget及其子类有默认的标题栏&#xff0c;但是这个标题栏不能美化&#xff0c;有时候满足不了我们的使用需求&#xff0c;所以进行自定义标题栏 二、下载图标 在下面的链接中下载两种颜色的最大化、向下还原、最大化和关闭八个图片&#xff0c;并找一张当做图标…

【LeetCode刷题记录】简单篇-108-将有序数组转换为二叉搜索树

【题目描述】 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 【测试用例】 示例1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,…

苹果 iPhone 15 Pro Max 称霸:智能手机市场势不可挡

苹果 iPhone 15 Pro Max 称霸&#xff1a;智能手机市场势不可挡 概述 在拥挤且竞争激烈的智能手机市场中&#xff0c;苹果的 iPhone 15 Pro Max 成为明显的赢家&#xff0c;在 2024 年第一季度最畅销智能手机排行榜上名列前茅。根据 Counterpoint Research 的数据&#xff0c…

【C++】string类的使用③(修改器Modifiers || 非成员函数重载Non-member function overloads)

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; STL || C 目录 前言&#x1f525;修改器&#xff08;Modifiers&#xff09;**operator**appendpush_back和pop_backassigninserterasereplaceswap &#x1f525;非成员函数重载&#xff…

【声呐仿真】学习记录2.5-DAVE项目部分文档大纲

【声呐仿真】学习记录2.5-DAVE项目 一、Dave Models 模型Vehicle Models 航行器模型New Underwater Vehicle 新型水下航行器Dave ROV ModelsDave Glider ModelsManipulator Models 机械臂模型UUV Simulator Examplesrexrovrexrov2desistek saga roveca_a9Light Autonomous Unde…

二叉搜索树模拟实现

目录 认识二叉搜索树&#xff1a; 模拟实现&#xff1a; 节点结构体构建&#xff1a; insert&#xff08;插入&#xff09;: find&#xff08;查找&#xff09;&#xff1a; erase&#xff08;删除&#xff09;&#xff08;重点&#xff09;&#xff1a; 全部代码 认识二叉…

[算法][单调栈] [leetcode]316. 去除重复字母

去除重复字母 给你一个字符串 s &#xff0c;请你去除字符串中重复的字母&#xff0c;使得每个字母只出现一次。需保证 返回结果的 字典序最小&#xff08;要求不能打乱其他字符的相对位置&#xff09;。 字典序最小&#xff1a; 考虑字符串 a 与 字符串 b&#xff0c;如果字…

Pytest测试实战 —— 分布式执行!

在这篇文章中&#xff0c;我们将从头开始介绍如何使用Pytest进行测试实战&#xff0c;并探讨如何在分布式环境中执行测试。Pytest是一个功能强大且易于使用的Python测试框架&#xff0c;它提供了丰富的功能和灵活的配置选项&#xff0c;使得编写和执行测试变得简单而又高效。 …

决策管理中的数学方法

需要注意的是,用excel求解的时候需要导入线性规划加载项如下: pert分析需要DecisionTools中的RiskSolver插件 1.链接:https://pan.baidu.com/s/1wKhUFWgNmQ7U33kl5AypZw 提取码:zqkn 2.“Palisade_Book_expires_Aril_10_2025.lic”文件复制到以下路径: C:\Program Files …

在视频号搞变现,又不想直播,可以试试它!

大家好&#xff0c;我是电商糖果 视频号这两年流量比较大&#xff0c;甚至有了即将赶超抖音&#xff0c;快手的趋势。 再加上它的用户都是来自微信&#xff0c;属于是私域流量。 所以视频号的用户粘性比较大&#xff0c;而且非常容易变现。 就有不少人想在视频号搞变现&…

保健品小程序商城线上经营的作用是什么

保健品涵盖酒水、醋、食品等多个类型&#xff0c;无论厂商还是经销商&#xff0c;手里的品牌和数量都比较多&#xff0c;由于特殊性&#xff0c;商家经营时需要找到目标客户&#xff0c;而市场中虽然有大量客户&#xff0c;但商家实际想要触达却并不容易。 渠道多样化&#xf…

C#知识|无边框的WinForm窗体,如何拖动位置?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 上一节时练习做了一个简单的登录窗体界面&#xff0c;为了美观设置成了无边框&#xff0c; 当运行起来&#xff0c;发现无边框的窗体无法用鼠标拖动位置&#xff0c; 本节记录通过添加代码实现无边框窗体实现移动&…

VR智慧文旅:开启“韵味”旅游季的新篇章

为了充分满足游客的假日文化旅游需求&#xff0c;各地纷纷“解锁”新花样&#xff0c;沉浸式实景观展震撼“出圈”。在数字化浪潮的推动下&#xff0c;文化旅游行业正经历着变革&#xff0c;在万物皆可沉浸的时代&#xff0c;VR智慧文旅燃起了不一样的热度。 许多业内人士认为&…

【数据结构】顺序表(一)

✨✨✨专栏&#xff1a;数据结构 &#x1f9d1;‍&#x1f393;个人主页&#xff1a;SWsunlight 不怕别人看不起&#xff0c;就怕自己不争气。路是人走出来的&#xff0c;关键要靠自己闯。振作起来&#xff0c;生活的含义就是前进。 目录 一、顺序表的概念&#xff1a; 二…

安卓实现视频录制与显示和翻转摄像头

权限&#xff1a; <!-- 相机权限 --> <uses-featureandroid:name"android.hardware.camera"android:required"false" /> <uses-permission android:name"android.permission.CAMERA" /><!-- 录音权限&#xff08;包括麦克…

企业网站从传统服务器迁移到弹性云有什么优势呢?

现代企业对于网站和应用程序的可用性和性能要求越来越高&#xff0c;传统基础设施可能无法满足这些需求。弹性云作为一种新兴的云计算服务模式&#xff0c;对于企业网站的运行和管理带来了许多优势。下面是企业网站从传统服务器迁移到弹性云的五大优势&#xff1a; 灵活弹性&a…

数据结构(一)绪论

2024年5月11日 一稿 数据元素+数据项 逻辑结构 集合 线性结构 树形结构 </

水表智能抄表系统是什么?

水表智能抄表系统是一种现代化水资源保护专用工具&#xff0c;它利用先进的物联网、云计算和大数据剖析&#xff0c;完成了智能抄表、实时监控系统、数据分析等作用&#xff0c;大大提高了水务管理的效率和精确性。 1.功能特点 1.1远程控制自动抄表 传统水表抄水表方法采用人…