· 6 years ago · Jul 31, 2019, 08:32 AM
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3import hashlib
4import hmac
5import json
6
7
8def calc_signature_v3(body, secret_key):
9 secret = bytes(secret_key).encode('utf-8')
10 message = bytes(body).encode('utf-8')
11 signature = hmac.new(key=secret, msg=message, digestmod=hashlib.sha256).hexdigest()
12 return signature
13
14if __name__ == "__main__":
15 request_method = 'POST'
16 request_uri = '/payments/requests/single'
17 request_x_site_id = '16'
18 secret_key = 'sk16'
19
20 request_data = '{"Amount": 123, "Currency": "RUB", "ExtraData": {"custom": "field", "key": "value"}, "CustomerInfo": {"Address": "string", "Country": "string", "Email": "string", "Language": "string", "Phone": "string", "Town": "string", "ZIP": "string"}, "Description": "string", "OrderId": "string", "PaymentMethod": "card", "PaymentDetails": {"CardholderName": "string", "CardNumber": "4111111111111111", "CVC": "987", "ExpMonth": "12", "ExpYear": "22"}, "RebillFlag": true}'
21
22 #print(request_data)
23
24 sig_message = "{0}\n{1}\n{2}\n{3}".format(request_method, request_uri, request_x_site_id, request_data)
25
26 #print(sig_message)
27
28 print(calc_signature_v3(sig_message, secret_key))