Files
Superbuy/dotdotbuy_auth.py
T
2023-02-04 02:20:08 -05:00

43 lines
1.4 KiB
Python

import hashlib
import hmac
import time
KEY = 'yaA9pBTwBdTDYz6ruLiJOI8jkijJ3Vs3'
def timestamp() -> str:
# Java timestamp now
return str(int(round(time.time() * 1000)))
def sign_params(params: dict[str, str]):
# Add useless keys
params.update({
'platform': 'MeowOS', 'appVersion': '114.514', 'apiVersion': '3.0.0', 'language': 'cn',
'currency': 'CNY', 'appName': 'owo', 'timestamp': timestamp()
})
# Add signature
signed_keys = ['userId', 'accessToken', 'platform', 'appVersion', 'apiVersion', 'language', 'currency', 'appName', 'timestamp']
raw = '&'.join(f'{k}:{params[k]}' for k in sorted(signed_keys))
params['signature'] = hashlib.md5((KEY + raw + KEY).encode('utf-8')).hexdigest().upper()
params['signMethod'] = 'md5'
return params
def sign_api(params: dict[str, str]):
# Add useless keys
params.update({
'user_id': params['userId'], 'access_token': params['accessToken'],
'app_key': 'aaa', 'partner_id': '', 'service': 'dotdotbuy',
'timestamp': timestamp(),
'ddb-mobile-platform': 'iOS', 'ddb-mobile-version': '14.4', 'systemversion': '14.4'
})
signed_keys = ['access_token', 'app_key', 'partner_id', 'service', 'timestamp', 'user_id']
raw = ''.join(f'{k}:{params[k]}&' for k in sorted(signed_keys))
params['sign'] = hashlib.sha1(('456' + raw + '456').encode('utf-8')).hexdigest().lower()
return params