.版本 2
.支持库 spec
.子程序 _按钮_扫码登录xx音乐_被单击
.局部变量 pushStr, 整数型
.局部变量 Str, 文本型
.局部变量 json, 类_json
.局部变量 fullurl, 文本型
.局部变量 返回cookies, 文本型
.局部变量 返回协议头, 文本型
.局部变量 Location, 文本型
.局部变量 qrcodeID, 文本型
.局部变量 sign, 文本型
.局部变量 QQ_sign, 文本型
.局部变量 token, 文本型
.局部变量 url, 文本型
.局部变量 RedirectUrl, 文本型
.局部变量 QQ_sign1, 文本型
.局部变量 sign1, 文本型
.局部变量 code, 文本型
WXGetA8Key (WxUser, 编辑框_公众号管理_分享链接.内容, 2, 4, 19, 3, 取变量地址 (pushStr))
Str = 取指针文本内容 (pushStr, 1)
json.解析 (Str)
fullurl = json.取通用属性 (“fullurl”)
' Host: c6.y.qq.com\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nCookie: pgv_info=ssid=s8395390016; pgv_pvid=7621514810; ts_last=y.qq.com/m/client/qr_code_login/authorize.html; ts_uid=1502283168; fqm_pvqid=aa88cbe9-7e1f-4eed-b502-f59bfca5b0dc; fqm_sessionid=caf654dd-578f-41e3-a5a6-3d0ba06af13e; music_ignore_pskey=202306271436Hn@vBj\nUser-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.59(0x18003b2e) NetType/WIFI Language/zh_CN\nAccept-Language: zh-cn\nAccept-Encoding: gzip, deflate, br\nConnection: keep-alive
网页_访问_对象 (fullurl, , , , 返回cookies, “Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8” + #换行符 + “User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.59(0x18003b2e) NetType/WIFI Language/zh_CN” + #换行符 + “Accept-Language: zh-cn” + #换行符 + “Accept-Encoding: gzip, deflate, br” + #换行符 + “Connection: keep-alive”, 返回协议头, , 真, , , , , , )
调试输出 (返回cookies)
调试输出 (返回协议头)
Location = 文本_取出中间文本 (返回协议头, “Location: ”, #换行符)
调试输出 (Location)
qrcodeID = 文本_取右边 (Location, “qrcode_id=”)
QQ_sign = 子文本替换 (#QQ_sign, “[qrcodeID]”, qrcodeID, , , 真)
sign = 计算zzc_sign (QQ_sign)
Str = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (“https://u6.y.qq.com/cgi-bin/musi ... 086587348&sign=” + sign, 1, QQ_sign)))
调试输出 (Str)
json.解析 (Str)
token = json.取通用属性 (“req_0.data.token”)
调试输出 (token)
url = “https://open.weixin.qq.com/conne ... l%253FqrcodeID%253D” + 编码_URL编码 (qrcodeID) + “%2526tmeAppID%253Dwechat%2526appName%253DQQ%25252525E9%252525259F%25252525B3%25252525E4%25252525B9%2525252590%2526token%253D” + 编码_URL编码 (token) + “%2526appid%253Dwxe22220253b822af6%26is_redirect%3D1&response_type=code&scope=snsapi_userinfo#wechat_redirect”
WXOAuthAuthorize (WxUser, url, Location, 取变量地址 (pushStr))
Str = 取指针文本内容 (pushStr, 1)
调试输出 (Str)
json.解析 (Str)
RedirectUrl = json.取通用属性 (“RedirectUrl”)
code = 文本_取出中间文本 (RedirectUrl, “code=”, “&”)
QQ_sign1 = 文本_替换 (#QQ_sign1, , , , “[qrcodeID]”, qrcodeID, “[token]”, token, “[oauthCode]”, code)
sign1 = 计算zzc_sign (QQ_sign1)
url = “https://u6.y.qq.com/cgi-bin/musi ... 086596075&sign=” + sign1
Str = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (url, 1, QQ_sign1)))
调试输出 (Str)
.子程序 计算zzc_sign, 文本型
.参数 内容, 文本型
.局部变量 PART_1, 字节集
.局部变量 PART_2, 字节集
.局部变量 SCRAMBLE, 字节集
.局部变量 bin, 字节集
.局部变量 hash, 文本型
.局部变量 i, 整数型
.局部变量 part1, 文本型
.局部变量 part2, 文本型
.局部变量 sign_list, 字节集
.局部变量 b64_part, 文本型
.局部变量 a, 整数型
hash = 校验_取sha1 (编码_Ansi到Utf8 (内容))
PART_1 = { 23, 14, 6, 36, 16, 40, 7, 19 }
PART_2 = { 16, 1, 32, 12, 19, 27, 8, 5 }
SCRAMBLE = { 89, 39, 179, 150, 218, 82, 58, 252, 177, 52, 186, 123, 120, 64, 242, 133, 143, 161, 121, 179 }
.计次循环首 (取字节集长度 (PART_1), i)
part1 = part1 + 取文本中间 (hash, 取字节集数据 (取字节集中间 (PART_1, i, 1), 3, 1) + 1, 1)
.计次循环尾 ()
.计次循环首 (取字节集长度 (PART_2), i)
part2 = part2 + 取文本中间 (hash, 取字节集数据 (取字节集中间 (PART_2, i, 1), 3, 1) + 1, 1)
.计次循环尾 ()
bin = 字节集_十六进制到字节集 (hash)
.计次循环首 (取字节集长度 (SCRAMBLE), i)
a = 位异或 (取字节集数据 (取字节集中间 (SCRAMBLE, i, 1), 3, 1), 取字节集数据 (取字节集中间 (bin, i, 1), 3, 1))
sign_list = sign_list + 到字节集 (到字节 (a))
.计次循环尾 ()
b64_part = 编码_BASE64编码 (sign_list)
b64_part = 到小写 (文本_替换 (b64_part, , , , “+”, “”, “/”, “”, “=”, “”))
返回 (“zzc” + 到小写 (part1) + b64_part + 到小写 (part2))
|