一、简要概述

扫码登录本质上是WhatsApp的多设备登录,设备之间可以独立运行,那么当我们首次通过WhatsApp扫码登录二维码时,到底发生了那些事情?交换了那些数据?下面我们来一一分析。

二、流程分析

1、设备新增

网页上你看到的二维码本质是一串字符串,类似这样的2@Z1vEcXIs2pVu2TXNnSm2M3GSQdS5VbnujYPgk7yRk357uJBHWcXgZxAq3tYsWYkLqScOgTKIVkdpIw==,5LCR7sLmRYEbIyruSadIYH7papJluPHeuW+MP7ID0g0=,98YjOiyooXXYnPMrR067bV7VwjkMdxj0ODihSahmYWk=,NQQNAuKalfLUvC9m5G/ejCDum7yIePRT3hXGUj6prsA

当手机端扫码时,其实会向服务器发送一个注册设备的包文:

<iq to="s.whatsapp.net" id="01" xmlns="md" type="set">
<pair-device>
<ref>
【82】32407755673975382f477644483455387a504839423676614d32727461414655716f4a72567367477a514b67484a476d6748766d754154675a4d51554942434564346c502b546c5078774f43593742773d3d
</ref>
<pub-key>
【32】705cd8b4702cc80fafd494d91b5a591124e11b93c7b70843b0579eff82fb3b5e
</pub-key>
<device-identity>
【151】0a730a0d08facff56810999984960618011220eab123e25a04fe5f7f8810e1f62bc8cba9e84a897b871b51b4eeee038ba6f4011a40b7e19b413ba6d3a3324bb4c23220967b0d265472f3633813ac5ecec81616a194a37ebe2d1d38e1ea8ac36776e3f10265a65252ec9b61b20118b683a6652c2d0c12204d37570cfa6bd0fcf3c3c1e99eafd076da834fd91df29f4839fc9191e4b621be
</device-identity>
<key-index-list ts="1656818841">
【85】0a1108facff568109999849606180122020001124099f9028ef861f8528e71a88f75a24c9c0ce0041f1448718f53451bf61284eed22fc17808dfca520b62f89b1008035c4a575a00d35ef389ab3211fdc6b4c0790d
</key-index-list>
</pair-device>
</iq>
如果二维码没有失效,那么服务器会回如下的包文。

<iq from="s.whatsapp.net" type="result" id="024">
<companion-props>
【17】0a0757696e646f77731202080718012000
</companion-props>
<device jid="919835597570.0:1@s.whatsapp.net">
</device>
</iq>

2、状态同步

新增成功后那么得同步一些用户的设置,比如本地语音,通讯录,快捷回复等

<iq to="s.whatsapp.net" xmlns="w:sync:app:state" type="set" id="01d">
<sync data_namespace="3">
<collection name="critical_block" order="1">
<patch>
【404】12970108001292010a220a208a66e9d8c5f2320476f9bae3bd8dc8ee61f25b865c5272598934e2d51694c23612620a606d795f7e4b2ec312e581a9bab087cbc8cefef3239c46299de775673ad902b906cfa11f529a05713af467367cffc3c5ee32622aba0d1ecab8c91dff87197e88ffc3ae08abe23273c6e22a824290b239c7c2e8609052f81ac86d91aeaf7a3fc7921a080a0600000000a86912a701080012a2010a220a209ecef8b6d487080505db9c960b2685b12fa26c98c2be65b6c6c0a81aca9f524012720a701684c12e2ccbc54a0eaa7e78d197f19bae252264fecf6fed74e75f30fedbb2a6a25d1b32d77460c20dcd8506f7d9e38bc2ca8e380598e2b684521cf35c66eb7c7aff2733cab330fec09ebd018b5bc1d94dd3f2132893914bfea676ea96a13267c3c6bf0c36610bc370fc10869d71f2801a080a0600000000a86922206015d579516eb3a167e01731d0dc48798b2528d28475864fac485d46613f81cc2a207325925c7ab55d93fc6c28d4aa1ef609a7e9d16ecc2b061bc8eb6580c576947e32080a0600000000a8694000
</patch>
</collection>
</sync>
</iq>

3、消息同步

同时也会同步一些历史消息

<message to="919864389407.0:1@s.whatsapp.net" type="text" id="BBF1F8D8AF594B6A814BE4976C486C51" category="peer">
<enc v="2" type="pkmsg">
【407】3308241221054e5599049837dcfc96c545338178df271061cf380d37799a13b527e28893421e1a21058c303083b8aa92a592288180effe4e0c18ad27d0199f81004f19647f8f03415322c302330a210547e81d93196ef861590f0d93b85db8df8d502302e77eca8a93afe3dc220fe66110051800229002003449368c66ba7884b80bca8114844cb10de71da648b9d44013c4f5424fd88c0dbd9b4f39dc732f9d4383b1fc4ba8ddd4a3c1faf5386ac62404580634430066ef376d8807a24a272f6345972427061678583a4b3b08219422196f2fb1be917be751c05739941aff54459526ca7dd19b82c633e5507f4c8de3914b056912dabad6938bba6057a812df5c61376f971cc71715c95eb7d8f8a7d4b50c9ec653d4c50efdb5beed0aa015c956faf2f37c6acb68847498eb808fdf5ac95370b678fd17890cd4b8f2f5704958bc316a253c702116c2f812fa5f0e8512a22edb7a319b9c0ec6b23563ca33430347e059849ddb3ff33e301058ec63e518594e91d579a0189d2bbc4521ca00568d283174339bd5dd770464e5202c8bb128e89893a4013001
</enc>
</message>

4、网页端设备上线

<presence type="probe" to="919864389407.0:1@s.whatsapp.net">
</presence>
<presence from="919864389407.0:1@s.whatsapp.net" type="unavailable" last="none">
</presence>

<presence from="918877597077.0:1@s.whatsapp.net">
</presence>

三、业务场景

1、同步通讯录

2、设置网页语音

3、设置快捷回复

---------------------------------------

欢迎技术交流

联系方式:

QQ: 2730002119

WhatsApp网页版扫码分析相关推荐

  1. java实现简单扫码登录功能(模仿微信网页版扫码)

    java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端 ...

  2. [微信] 微信网页版扫码登录的实现

    我们先来回顾一下微信网页版的扫码登录过程 1. 打开微信网页版,https://wx.qq.com/ 2. 打开手机微信客户端,扫一扫 3. 点击确定,登录 看似简单的操作流程,中间涉及的数据交互有很 ...

  3. java实现扫码微信登录_java实现简单扫码登录功能(模仿微信网页版扫码)

    public class PoolCache { // 缓存超时时间 10分钟 private static Long timeOutSecond = 10 * 60 * 1000L; // 每半小时 ...

  4. WhatsApp网页版登陆,WhatsApp官网入口

    WhatsApp网页版登录网址: https://web.whatsapp.com/ [需翻墙环境] https://www.whatsapp5.com/ [免翻墙版] 此网址为WhatsApp官网网 ...

  5. WhatsApp电脑版和WhatsApp网页版区别?

    WhatsApp电脑版是可以在电脑上直接安装的版本,目前支持Windows系统和Mac系统. 具体下载方式,打开WhatsApp官网,然后点击 "Mac 或 Windows PC" ...

  6. 微信开放平台开发——网页微信扫码登录(OAuth2.0)

    1.OAuth2.0 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. 允许用户提供 ...

  7. Java 语言实现简易版扫码登录

    基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...

  8. Spring boot 项目(十二)——实现电脑网页微信扫码自动授权

    引言 电脑端微信网页扫码授权登录有2种方式: 第一种:基于微信公众号,单独获取登录二维码扫码,然后扫码登录,程序控制跳转逻辑,例如CSDN 第二种:基于微信开放平台,跳转到微信二维码页面进行扫码登录, ...

  9. 羊了个羊游戏h5网页版源码

    羊了个羊游戏h5网页版源码 h5网页版,数据还是官方的,一个小demo. 无后台下载附件源码,上传至服务器访问域名即可 不可商业,不可商业,不可商业 只限交流学习 免广告用道具 下载地址 https: ...

  10. 照片背景底色更换工具二(python+flask网页版源码及打包)

    照片背景底色更换工具二(python+flask网页版源码及打包) 所有源码 文件结构 static images huaman_src_test.jpg huaman_result_test.png ...

最新文章

  1. vmware 虚拟机控制台打开慢的解决方案
  2. Exchange2007中创建和访问公用文件夹
  3. [导入]第 3 章 Enterprise Library 的设计
  4. js一个大盒子中有三个小盒子_寒假预习:一万有多大,数一数估一估,亲身感觉一万有多大...
  5. 状态机复合状态 怎么写代码_状态不属于代码
  6. python列表截取双冒号“::“用法
  7. 华为U9508一键root
  8. 【PS】抠图,快速选择工具
  9. jcp jsr_JCP EC 2011年特别选举结果即将公布!
  10. ktor启动报错:Module function cannot be found for the fully qualified name 'ApplicationKt.module'
  11. CC1310 架构组成,TX/RX+WOR嗅探过程,低功耗方法
  12. 固本培元之二:字符串和转义符
  13. Bezier曲线、B样条和NURBS的基本概念
  14. python软件下载-Python3.8下载
  15. 微型计算机上面的Tab键,电脑键盘上Tab 键的神奇之处!(用途详解)
  16. MyIE9浏览器要告微软捆绑IE
  17. 美国iPhone出新品,苹果新总部也将竣工,哪个更让你期待?
  18. 【postman】postman中文传参出错
  19. JVM 内存分析工具 - MAT
  20. linux 印刷电路板软件,linux eda软件下载

热门文章

  1. 微信订阅号之——网页授权
  2. 华为2019网络挑战赛初赛网络方向部分模拟题及答案
  3. pycharm中遇到master in has no tracked branch的解决方式
  4. 影视解说短视频制作教程,从找素材到配音,上手很简单
  5. 史上最真实的网络飙车游戏
  6. 四大金融资产管理公司的起起伏伏
  7. 【转】用java将pdf转换成jpg图片的代码
  8. 计算机组成原理课题讨论——编译器对程序的影响
  9. 世界各国浏览器语言代码本地化对照表
  10. 群智能优化算法学习规划