腾讯车联卡通过ICCID查询流量

#!/usr/bin/python3

import time
import hashlib
import json
import base64
import hmac

import requests
import jwt



import sys
if len(sys.argv) != 2:
    print("i need one ICCID.")
    exit(-1)


iccid = sys.argv[1]




private_key = b"""-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCtkpIspKwGBKe/
qSrx/JwOf/p/phAP132Tuy2XSSmas1hx49EMRZg6meEkPwz2utYQX2NKFi/CrYd3
fOrFa4HguokD9A5mdlX4TPxea91fOnFOOTdpS3iYYAYQpbR3lsE5Xau/jCcExaXz
MEgG5XVRxpmFcqwvC5LYvbt37XjxvlZE2VpY8sEItOl9ALyYT3Phxyt7bHz1Vhtk
/C5mtADf7OW9eUaORIVoKfFss4vsRf3MS7oi81II+izxde0StR+Psr6htlKerylh
4FffN6buyCooKk7Lj4Y2uvy7eMsWgjanYOZdZ17+2nojDq3ev5BuD/yGrzX1NYFO
m4JhZd2FAgMBAAECggEANpW7hnKa7qGUJ4AJ02P/p8ezfWU58+FuyoC4y7TkcpQo
IljkqxlP0E4IMZ/qccU8AJYe4XOsvWpZCcitBDzU8Vl4MVgVFz/rtVRwoTkGuyXj
8BeqR2DGohTAk4epA1rTlTjSBEENHEET+TCb1h9fD8KHESKI55qaKbMxO3vg5xTR
5cCb+Zp6vu/tZw/LeYY3aNocD9Jy7WHDLk7HgT9QQ58LI7zOAhfVj+eVnhR8m/me
3tz2LWCOxzKi5QpCP8dAUxED17C0sl+8uOup/pDvcz9s9FBmTNeljtSV6xlJ8Xhr
V9LvzRrPmERc4bVikmomeS7BAAkOcVeUUQixNB5SmQKBgQDY0CYPAGZA8ST7HVCb
5eMTpxozczQTOjK0z9PETgXsepLcIcmVtAQU7NM6rkigOp1ocHOP0JGyUWNuyWhc
zeKy/5mcWdxXPnJaiYoWY5p9WfYWALkgTe1FyFwsqMPS9m4BX4vxE6htvEZ315mE
uQMS35Fqv8UqhZdHelu14lwfqwKBgQDM8bNY7pc6V5KPaghJUpXmkCn9JoWKANZV
N41zUAS8V9iZgovrys0/988uHYNB8NRlDy7gfHrcm9KJfqnuDE/aA5+E/siQCzJp
CHn+FTPOVVATj6OHgppYy6bFizoPt1B9hN2utebUmn7g9JsKsXcepHbwyf51iFX9
G1w3KLeHjwKBgA5v7djZ4fU5GYlPLmrzJ+fLHMeISFNvcKjxndxYhbR1hQn7hfzd
+9eY3Yfuyw9AV/L4afmNneYN3V0nNDfZzdq1gnkS0sVMdzjoJ7XN9B+cufJFIg6w
obgf22Nt6XxGxJR61Eq9UF3eR6L7TFG2MCo1kO1Wz75BHw23bBv0csX5AoGAdFuy
QQbNk9FOo+BGriKWex5UyKcLYIwTJLTyuYqv9aNGlfm5qXkuSWhQF9WnxVOPs4UI
T2o9c22A/pGMt1wEJjqyYhcqFiZVS68FXE37aOWlHkYKSZDMQyf1GuluYKfqqik6
l8wtL348FUqrkEmr4Rjtcs6si1yJvbfABo02jl8CgYEApDr46GEcAV0dfr3AvhS7
t9DNYCdXiXa8RLcSKiNO6Iimwav7hn+IuN2WKJ/uPXqCSFAwVSYhRyiLqWQ6QSRy
vU4q1zVDn+SxxY79dWWsSrRlAuCmyVmD5mJdQlmY3FC8KXj14mEsG+eZtmHX7HTU
UaKPdheWKWAOQeqtRRNEZew=
-----END PRIVATE KEY-----
"""

publick_key = b"""-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZKSLKSsBgSnv6kq8fyc
Dn/6f6YQD9d9k7stl0kpmrNYcePRDEWYOpnhJD8M9rrWEF9jShYvwq2Hd3zqxWuB
4LqJA/QOZnZV+Ez8XmvdXzpxTjk3aUt4mGAGEKW0d5bBOV2rv4wnBMWl8zBIBuV1
UcaZhXKsLwuS2L27d+148b5WRNlaWPLBCLTpfQC8mE9z4ccre2x89VYbZPwuZrQA
3+zlvXlGjkSFaCnxbLOL7EX9zEu6IvNSCPos8XXtErUfj7K+obZSnq8pYeBX3zem
7sgqKCpOy4+GNrr8u3jLFoI2p2DmXWde/tp6Iw6t3r+Qbg/8hq819TWBTpuCYWXd
hQIDAQAB
-----END PUBLIC KEY-----
"""


ts = int(time.time())


headers = {
    "typ": "JWT",
    "kid": "tsmkc-client",
    "alg": "RS256"
}

claims = {
	"sub":    "kingcard",
	"iss":    "tsmkc.qq.com",
	"exp":    ts + 300,
	"iat":    ts - 10,
	"iccid":  iccid,
	"userid":  "",
	"usersig": ""
}

encoded_token = jwt.encode(claims,  private_key,   algorithm="RS256",   headers=headers)

get_headers = {
	'Content-Type': 'application/json',
	'user-agent': 'okhttp/3.5.0',
	'Authorization': 'Bearer ' + encoded_token.decode("ascii")
}

r = requests.get('https://api.tsmkc.qq.com/prd/v1/package/packageinfo', headers=get_headers)
print(r.text)

用的jwt做的认证

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注