某东 appck 转pt_pin 转wq_skey

首先获取tokenkey,签名算法自己找

    sv = '120'
    function_id = 'genToken'
    st = int(time.time() * 1000)
    client_version = '11.3.2'
    client = 'android'
    body = json.dumps({
        "to": "https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html",
    })
    uuid_str = hashlib.md5(str(int(time.time() * 1000)).encode()).hexdigest()[0:16]
    sign = f'functionId={function_id}&body={body}&uuid={uuid_str}&client={client}&clientVersion={client_version}&st={st}&sv={sv}'

    sign = get_sign(sign)
    print(f"sign={sign}")
    url = 'https://api.m.jd.com/client.action?functionId=' + function_id
    params = f'&clientVersion={client_version}&build=87697&client={client}&uuid={uuid_str}&st={st}&sign={sign}&sv={sv}&lang=zh_CN'
    headers = {
        'charset': "UTF-8",
        'user-agent': "okhttp/3.12.1;jdmall;iphone;version/10.3.5;build/92610;",
        'content-type': "application/x-www-form-urlencoded; charset=UTF-8",
        'cookie': ck
    }
    body = 'body=' + quote(body)

    resp = requests.post(url=url + params,
                         data=body,
                         headers=headers)
    token_key = resp.json()['tokenKey']
    print(f'token_key={token_key}')
    appjmp(token_key)

然道tokenkey以后转pt_pin (移动端cookie):

def appjmp(tokenKey):  # 方法 传递 wskey & tokenKey
    if tokenKey == 'xxx':  # 判断 tokenKey返回值
        return False  # 返回 -> False[Bool], Wskey
    headers = {
        'User-Agent': ':Dalvik/2.1.0 (Linux; U; Android 5.1.1; VOG-AL00 Build/LMY48Z)',
        'accept': '*/*',
        'x-requested-with': 'com.jingdong.app.mall'
    }  # 设置 HTTP头
    params = {
        'tokenKey': tokenKey,
        'to': 'https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html'
    }  # 设置 HTTP_URL 参数
    url = 'https://un.m.jd.com/cgi-bin/app/appjmp'  # 设置 URL地址
    try:  # 异常捕捉
        res = requests.get(url=url, headers=headers, params=params, verify=False, allow_redirects=False,
                           timeout=20)  # HTTP请求 [GET] 阻止跳转 超时 20秒
    except Exception as err:  # 异常捕捉
        print("JD_appjmp 接口错误 请重试或者更换IP\n")  # 标准日志输出
        print(str(err))  # 标准日志输出
        return False  # 返回 -> False[Bool], Wskey
    else:  # 判断分支
        try:  # 异常捕捉
            res_set = res.cookies.get_dict()  # 从res cookie取出
            print(f"cookies={res_set}\n")
            pt_key = 'pt_key=' + res_set['pt_key']  # 取值 [pt_key]
            pt_pin = 'pt_pin=' + res_set['pt_pin']  # 取值 [pt_pin]
            jd_ck = str(pt_key) + ';' + str(pt_pin) + ';'  # 拼接变量
            print(f"ck={jd_ck}\n")
            to_login(jd_ck)

        except Exception as err:  # 异常捕捉
            print("JD_appjmp提取Cookie错误 请重试或者更换IP\n")  # 标准日志输出
            print(str(err))  # 标准日志输出
            return False  # 返回 -> False[Bool], Wskey
        else:  # 判断分支
            if 'fake' in pt_key:  # 判断 pt_key中 是否存在fake
                return False  # 返回 -> False[Bool], Wskey
            else:  # 判断分支
                return True, jd_ck  # 返回 -> True[Bool], jd_ck

转wq_skey(也是移动端的一种cookie,qq环境是这个)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值