Публичную часть ключа необходимо отправить в тех-поддержку, которая загружает содержимое в систему. После чего уже происходит проверка подписи мерчанта X-Sign при запросе. Все параметры запроса должны быть отсортированы по ключам.
importjsonimportbase64importrequestsimportcollectionsfromCrypto.HashimportSHA256fromCrypto.PublicKeyimportRSAfromCrypto.SignatureimportPKCS1_v1_5params={"api_key":"e467511f-e0c64ae5-b9ec-ebbe0b4dbbee","transaction":"f4462ba637c54455-b0b253b179f7a25c","signature":"675e785dcf5b77a27e3fad0353078b078f5c6f1bdaaba4b150bd339b832cda5d","amount":512000,"payer_fio":"Иван Иванов Иванович","payer_phone":"79999999123","recipient_pan":"5555555555555599"}# сортировка по ключам параметровo_params=collections.OrderedDict(sorted(params.items()))data=json.dumps(o_params)crypto_key='oLNzC#tP2LO3h$kc@j$U'key=RSA.importKey(open('privatekey.pem').read())digest=SHA256.new('{}{}'.format(data,crypto_key).encode('utf8'))signer=PKCS1_v1_5.new(key)signature=signer.sign(digest)x_sign=base64.b64encode(signature)response=requests.post('https://b2b.rubikonpay.ru/api/v1/payments/account2card',data=data,headers={'Content-Type':'application/json; charset=UTF8','X-Sign':x_sign})
Статус платежа. Список статусов платежа: processing — в обработке declined — отклонен deposited — оплачен Если статус платежа был получен processing, то необходимо вызывать метод получения статуса платежа п.2. Данный метод рекомендуется вызывать через каждые 5 минут для получения окончательного статуса платежа. Если платеж спустя 24 часа висит "в обработке", то необходимо обратиться к менеджеру.