WEB微信協議詳註(待續)
微信入口主要有兩個(wx和wx2),wx老號 wx2新號,我微信是老號了,為了測試方便采用的是老號入口。
1.入口抓包,獲取uuid
開啟瀏覽器F12功能,對https://wx.qq.com抓包,拿到我們需要的入口地址,獲取uuid
參數說明:appid 固定值
redirect_uri 固定值
fun 固定值
lang 固定值
_ 標準時間戳
返回:
window.QRLogin.code = 200; window.QRLogin.uuid = "wZ1Pov3CSw==";
這一步拿到uuid,進而uuid拿到登陸用戶頭像
2.獲取二維碼
參數說明:
https://login.weixin.qq.com/qrcode/+uuid 其中uuid為上一步獲取
此處需註意返回的二維碼是jpg圖像,在delpgi處理的時候轉換處理
3.獲取登陸用戶頭像
參數說明:
loginicon:true 固定值
返回:
window.code=201;window.userAvatar = 'data:img/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABQODxIPD.......
window.code=200;
window.redirect_uri="https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=Af-yYTSZi- X7h31w_ujkZn_F@qrticket_0&uuid=wb1sJ27NXA==&lang=zh_CN&scan=1522165494";
window.code 登陸狀態
201 掃碼成功 ,此時可獲取登陸用戶頭像,但是base64編碼字符串
200 登陸成功 ,此時需獲取ticket,sacn,下一步需要ticket和scan
408 超時
頭像處理:
4.獲取skey, wxsid, wxuin, pass_ticket
這一步最關鍵的是要註意返回的cookie信息,得保存cookie信息,後面取好友頭像都需要;且需獲取skey, wxsid, wxuin, pass_ticket留著下一步用,其中wxsid等同sid,wxuin等同uin
delphi中獲取cookie:
5.WEB微信初始化 並且獲取最近聯系人信息
參數說明:
r 時間戳
DeviceID:"e556747131131712" e開頭後面為15位隨機數
返回:
此處可獲取登陸用戶的個人信息,其中UserName需保存留做下一步微信初始化;
此處需特別註意synckey這個json串,這個必須得處理,是後面心跳同步必須的參數。且synckey還得處理為這種形式:1_669512273|2_669514056|3_669513917|1000_1521781562。
6.開啟微信狀態通知
參數說明:
7.獲取全部好友列表
參數說明:
WEB微信協議詳註(待續)