Signature
def sign_params(input_params: Mapping, salt: AnyStr) -> AnyStr:
params = {}
for k, v in input_params.items():
if isinstance(v, list):
new_v = ';'.join(sorted(map(str, v)))
params[str(k)] = str(new_v)
elif isinstance(v, dict):
sorted_dict = sorted(v)
new_v = ';'.join(f'{key}:{v[key]}' for key in sorted_dict)
params[str(k)] = str(new_v)
else:
params[str(k)] = str(v)
sign_str = ';'.join(
['%s:%s' % (k.lower(), params[k]) for k in sorted(params.keys())
if params[k].strip() != '']) + ';'
logging.debug(sign_str + salt)
return hashlib.sha1(sign_str.encode('utf-8') +
salt.encode('utf-8')).hexdigest()Signature generating algorithm
Signature generating rules
Last updated