Signature
Signature generation algorithm
Example code for generating signature
import hashlib
salt = 'test_salt'
input_params = {
'site_id': '1',
'site_login': 'test_login',
"merchant_id": "merch_id",
'customer_ip': '1.2.3.4',
'currency': 'USD',
'additional_fields': {
"bank_name": "Citibank",
"card_holder": "John Wick",
"card_number": "0000000000000"
}
}
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]) # noqa UP031
for k in sorted(params.keys()) if params[k].strip() != '']
) + ';'
signature = hashlib.sha1(sign_str.encode('utf-8') + salt.encode('utf-8')).hexdigest()Rules for forming a signature
Last updated