二维码

  首先,二维码在编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。简单来说 ,每一个二维码图像都含有一些特定的信息,人们利用数字图像处理技术使计算机能够对图像进行运算和处理,二维码(如右图)图像上的像素矩阵在计算机中处理时,有黑点的标记为“1”,空白的标记为“0”,当二维码被输入设备(扫描仪,摄像头)读取到计算机时成为一串类似“10101000011101111”的二值代码。这串代码是一个网址链接。

我们在使用微信扫码时发生了什么

  假设这样一个情形:

  1. 打开一个网页,点击“登录”或“注册”按钮,弹出一个二维码,提示打开手机微信客户端扫码登录或注册;
  2. 坐在屏幕前的你轻松地拿出手机打开微信扫码,手机微信显示出了网址信息并提示确认登录,点击确认登录
  3. 网页显示登录或注册成功,进行下一步骤······

  我们轻松登录的背后,计算机和服务器做了许多工作:

  1. 网站后台向微信服务器发送请求返回一个二维码,或者网站自己实例化一个自己的二维码;显示在页面上,供用户扫码
  2. 微信用户允许授权第三方应用后,手机微信会返回给网站一个code(临时授权票据)参数;
  3. 关键:网站通过code参数加上AppID和AppSecret得到access_token(令牌),网站后端利用令牌在微信服务器获取用户信息,执行登录或注册操作

网页实现微信扫码登录

  扫描的二维码不是网站随意生成的,它必须是能够被微信程序识别的,如果用微信扫描它不接受的二维码,微信会返回给用户一些信息,如上图二维码在用微信扫描后会返回一个支付宝链接,用户只能通过支付宝app或浏览器才能看到解析出的信息。第三方应用要想成功获取扫码用户的信息完成登录或注册(也就是获得用户的个人信息)只能向微信服务器发起请求。为此我们需先向微信系统“验明正身”——申请认证公众号,获取权限。

  还好在微信开发者文档中规范了我们获取用户信息的方法和途径。在申请到认证公众号之前,我们可以先通过测试号申请系统,快速申请一个接口测试号,开始接口测试开发。在开发过程中,我们可以使用接口调试工具来在线调试某些接口。

参考资料:https://baike.baidu.com/item/%E4%BA%8C%E7%BB%B4%E7%A0%81/2385673?fr=aladdin

     https://www.cnblogs.com/jiangjunli/p/7436110.html 
    https://blog.csdn.net/andyliulin/article/details/53612108
    https://www.cnblogs.com/0201zcr/p/5133062.html

    

PC端实现微信登录浅析的更多相关文章

  1. 微信开放平台PC端扫码登录功能个人总结

    最近公司给我安排一个微信登录的功能,需求是这样的: 1.登录授权 点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录:    若当前账号未绑定微信账号,扫描后提示“ ...

  2. 利用WxJava实现PC网站集成微信登录功能

    原文地址:https://mp.weixin.qq.com/s/rT0xL9uAdHdZck_F8nyncg 来源:微信公众号:java碎碎念 1. 微信开放平台操作步骤 微信开放平台地址:https ...

  3. PC端网站微信扫码登录

    需求分析:用户通过扫描我们网页的二维码,如果已经绑定我们平台的账户,即成功进入首页,否则提示先绑定个人微信账号. 1.绑定微信账号:是通过关注微信公众号实现绑定个人微信账号.首先通过后台接口获取到ti ...

  4. pc端用微信扫一扫实现微信第三方登陆

    官方文档链接 第一步:获取AppID  AppSecret (微信开发平台申请PC端微信登陆)   第二步:生成扫描二维码,获取code https://open.weixin.qq.com/conn ...

  5. Java SpringMVC实现PC端网页微信扫码支付完整版

    一:前期微信支付扫盲知识 前提条件是已经有申请了微信支付功能的公众号,然后我们需要得到公众号APPID和微信商户号,这个分别在微信公众号和微信支付商家平台上面可以发现.其实在你申请成功支付功能之后,微 ...

  6. PC网站应用接入微信登录

    参考文档: https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&ve ...

  7. 移动端,PC端,微信等常用平台和浏览器判断

    var wzw={ //浏览器相关信息 //android webview 需要app进行支持,Android web view初始化时,在navigator中添加标识 browser:{ versi ...

  8. react网页版聊天|仿微信、微博web版|react+pc端仿微信实例

    一.项目介绍 基于react+react-dom+react-router-dom+redux+react-redux+webpack2.0+nodejs等技术混合开发的仿微信web端聊天室react ...

  9. c#版在pc端发起微信扫码支付

    等了好久,微信官方终于发布了.net的demo. 主要代码: /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param productId 商品ID * @return 模式 ...

随机推荐

  1. 详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

    转载声明:本文为转载文章,发表于nebulaf91的csdn博客.欢迎转载,但请务必保留本信息,注明文章出处. 原文作者: nebulaf91 原文原始地址:http://blog.csdn.net/ ...

  2. I2C(四)linux3.4(写代码)

    title: I2C(四)linux3.4(写代码) date: 2019/1/29 17:18:42 toc: true --- I2C(四)linux3.4(写代码) 老师的参考代码 https: ...

  3. Golang入门教程(二)Ubuntu16.04下安装golang(实例:Golang 定时任务管理器)

    通过两种方式安装 一.通过apt-get安装1.安装 sudo apt-get install golang 2.设置GOPATH变量 GOPATH是扩展库的目录,Go先搜索标准库目录,然后搜索GOP ...

  4. VS注释快捷键

    注释:        先CTRL+K,然后CTRL+C 取消注释: 先CTRL+K,然后CTRL+U 代码自动对齐:1, ctrl+a 2, ctrl+k 3, ctrl+f

  5. Git首次配置

    用户身份配置 安装好Git后的第一步是设置用户名和电子邮件地址.这一步是很重要的,因为以后这将作为你每一次提交的个人信息,写入所创建的提交中,不可更改. git config --global use ...

  6. PostgreSQL中JSON、JSONB基本操作符

    PostgreSQL 9.5以上的版本中有了很多方便的操作符,使得操作 JSON 变得非常方便了. 一. -> 和 ->> : -> 表示获取一个JSON数组元素,支持下标值( ...

  7. spring cloud 集群健康监控--turbine-dashboard仪表盘

    这里仍然以Windows和jdk为运行环境,按照下面的步骤打包-运行-访问就能看到效果. 运维健康监控--hystrix-dashboard仪表盘 java -jar F:\jars-dashboar ...

  8. Allowed memory size of 134217728 bytes exhausted

    错误信息: Allowed memory size of 134217728 bytes exhausted (tried to allocate 65015808 bytes) 由于报错信息和数据库 ...

  9. aptitude与apt-get

    aptitude 与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具.与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些.举例来说,aptitud ...

  10. C++11 double转化为string

    C++11转化double为string是一件很容易的事情. 方法: 1:使用C中的sprintf函数,这里就不说了. 2:使用std::ostringstream.这个与std::cout是一样的. ...