第一步

准备工作:

微信开放平台,需要企业认证,个人无法实现,因为网站审核的时候要有公司盖章。

并且开发人员资质也是要公司资质。

要交300元的认证费。

审核过程挺快,第一天申请,第二天就可以,写代码了。

填写资料的时候 网站的域名 要写对,扫码回调的域名,就是网站的域名。

第二步:

开始撸代码

官方文档:准备工作 | 微信开放文档

点击页面按钮调用展示二维码接口

/*** @title 展示微信二维码* @Author: Righter.Guo <righter.g@qq.com>* @Time: 2021/12/9 13:36*/public function show_wxcode(Request $request){//调用微信扫描//回调地址,扫码后,页面会自动跳转到这个链接。不需要前端轮询。$redirect_uri= $request->domain().'/admin/login/wx_callback';//该回调需要url编码$redirect_uri=urlencode($redirect_uri);//开放平台的id$appID=$this->appid;//写死,官方文档写的$scope="snsapi_login";//准备向微信发请求$url = "https://open.weixin.qq.com/connect/qrconnect?appid=" . $appID."&redirect_uri=".$redirect_uri."&response_type=code&scope=".$scope."&state=扫码后会原样返回给你#wechat_redirect";//请求返回的结果(实际上是个html的字符串)就是微信写好的一个二维码的HTML页面。$result = file_get_contents($url);//替换图片的src才能显示二维码,因为图片没有拼接微信域名,$result = str_replace("/connect/qrcode/", "https://open.weixin.qq.com/connect/qrcode/", $result);//此处注释的格式转化,是调试的时候 报错 ,乱码,转化后可以看到汉字报错
//        $result = iconv('gb2312', 'UTF-8//IGNORE', $result);
//        echo $result;//返回json数据,return JsonService::successfuljson('ok',$result); }

接口返回的数据用layer的弹框,type=1,可以直接展示页面内容。

$('.submit').on('click',function ($.ajax({url:'show_wxcode',type:'post',data:postData,dataType:'json',success:function (d) {// console.log(d);if (d.code == 200){//直接弹框出现二维码页面layer.open({type:1,offset: '100px',area: ['500px', '500px'],content:d.data});}else{alert(d.msg);}}});return false;});

下图就是接口返回的页面,

用微信扫码后,页面会自动跳转到show_wxcode接口里设置的回调地址:wx_callback

public function wx_callback(){$code = $_GET["code"];$state = $_GET["state"];//开放平台id$appid = $this->appid; //开放平台秘钥$secret = $this->secret; //code是必须的,state我也有用,可以根据自己的业务传参if (!empty($code) && !empty($state)) {//有code//通过code获得 access_token + openid$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid. "&secret=" . $secret . "&code=" . $code . "&grant_type=authorization_code";$jsonResult = file_get_contents($url);$resultArray = json_decode($jsonResult, true);
//            $access_token = $resultArray["access_token"];
//            $openid = $resultArray["openid"];$unionid = $resultArray["unionid"];//此处是为了查看到底返回了些啥东西//file_put_contents('./wx_callback111.txt',$jsonResult);//通过access_token + openid 获得用户信息,此处根据官网资料,获取你想要的东西
//            $infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $access_token . "&openid=" . $openid;
//            $infoResult = file_get_contents($infoUrl);
//            file_put_contents('./wx_callback222.txt',$infoResult);
//            $infoArray = json_decode($infoResult, true);//下面自己的 业务逻辑//最后跳转到你想要的页面$this->redirect('index/index');}}

至此微信扫描登录pc功能完成。

有bug、疑问、建议,可以留言。

有帮助 可以给点打赏。感谢

PHP 微信 扫码登录 pc网站相关推荐

  1. 【vue+pc端】实现微信扫码登录pc端,后端通过微信开发平台,前端生成二维码(仅供参考)

    这两周的需求是通过微信扫码登录pc端,刚定下需求原型图还没出来前,后端特意发了微信开发平台的链接给我,关于如何生成二维码的文档,以及扫码跳转后如何传code给他. 请戳这里准备工作|微信开放文档 我最 ...

  2. 【vue+ant-design-vue+a-list】微信扫码登录pc端,后台页面增加微信绑定和微信解绑功能

    兜兜转转,修修改改,又是缝缝补补了几天,终于完成此功能 大致思路:点击绑定微信,出现微信扫码页面,扫码后跳出弹窗,发送验证码验证后可绑定 点击解绑,confirm弹窗确认是否解绑,点击解绑,发送验证码 ...

  3. PC网站如何实现微信扫码登录

    不管你运营什么类型的网站,用户注册都是很重要的一个环节,用户注册的方式也是很多的,比如邮箱注册.手机号注册.第三方授权登录等.其中,第三方授权登录是最常用的一种方式,微信扫码登录是其中的一种,但是微信 ...

  4. Spring学习笔记(二十三)——实现网站微信扫码登录获取微信用户信息Demo

    目录 微信扫码登录介绍 开发步骤 微信扫码登录示例 微信开放文档 遇到的问题 使用第三方工具实现网站微信扫码登录 开发前介绍 开发步骤 微信扫码登录获取微信用户信息Demo实现流程 实现效果 实现过程 ...

  5. 前端PC端微信扫码登录

    PC端微信扫码登录 一.微信开放平台 1.创建网站应用 2.设置回调域名 二.代码 1.在index.html页面引入http://res.wx.qq.com/connect/zh_CN/htmled ...

  6. PC微信扫码登录教程

    PC微信扫码登录教程 来源:小白 时间:2020年12月22日15:33:21 需要微信开放平台账号 难度:一般 1.创建网站应用 获取AppID和AppSecret 1.1基本信息 选择创建网站应用 ...

  7. Java后台实现网站微信扫码登录功能,获取用户openid,及微信用户信息(小程序码方案),关联微信小程序(个人主体小程序也可以)

    目录 前言 操作流程 1.注册微信小程序 2.通过后台获取小程序码 注意事项 时序图理解 方案实现步骤 前言 很多业务场景之下我们需要实现微信扫码登录检测登录状态的需求,或需要同步网站与小程序的用户信 ...

  8. 微信扫码登录网站实现案例(无需授权)

    前言 最近因业务需要,需要给网站增加一个扫描公众号二维码登录网站的功能,通过扫码登录,一来用户登录网站不需再输入账号密码,提升了用户体验,二来也可以作为公众号吸粉的一个渠道. 开发准备 实现微信扫码登 ...

  9. pc端实现微信扫码登录

    pc端实现微信扫码登录 流程:使用vue-wxlogin组件当我们打开微信扫一扫,此时二维码组件会有变化,显示扫描成功 我们的手机就会弹出一个授权页面.记住让后端绑定一个微信公众,通过授权该公众就可以 ...

最新文章

  1. CentOS 7.0服务器安装配置LAMP服务器
  2. java判断文件或者文件夹
  3. RedHat/Centos修改root密码
  4. 200825C文件 复习
  5. 使用Schematics启用SAP Spartacus的SSR模式
  6. wiki的watch设置
  7. C#来创建和读取XML文档 [转]
  8. windows下命令行修改系统时间;修改系统时间的软件
  9. CentOS7安装redis并配置外网可访问(局域网可参考)
  10. linux英伟达显卡偶尔加载失败,Ubuntu 8.10环境下出现NVIDIA显卡无法正常工作的解决方法...
  11. C++ vector容器类型 (转)
  12. Python实例:通过字典某个关键字排序
  13. Disruptor高性能缓存队列入门指导
  14. vue click.stop阻止点击事件继续传播
  15. linux和windows下,C/C++开发的延时函数,sleep函数
  16. 计算机打印指定测试页到文件夹中,上海计算机等级一级考试复习指导.pptx
  17. 最新最全的 SQL 入门教程,老少皆宜,强烈推荐!
  18. 必须收藏的MATLAB画图指南
  19. RFC2544吞吐量测试详细步骤-Renix软件操作演示
  20. Facebook正式改名 要砸600亿做这件事 改名转运能拯救这张“脸”吗?

热门文章

  1. 人工智能、机器学习、深度学习、神经网络
  2. python爬网页上所有的链接(爬到最深)
  3. git 命令行配置及配置文件 解决clone报错 LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
  4. java-net-php-python-SSM病历管理系统计算机毕业设计程序
  5. ★教程3:Simulink学习教程入门60例目录
  6. Kafka 的这些原理你知道吗
  7. 有向图的邻接矩阵和邻接表画法
  8. keil创建工程没有atmel_keil创建工程步骤详解
  9. 结构光-----激光散斑图像评测算法
  10. 一线之间两重天--网络打印VS.共享打印 [转]