Получение информации о платежах при помощи JSON API
Информация о платежах
JSON API позволяет автоматизировать процессы получения информации от платежной платформы без использования личного кабинета платёжной системы. Ниже примеры использования JSON API для получения информации о платежах (Раздел 2).
Запрос 2.3. Получение информации о платеже по идентификатору.
Пример кода на языке PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php $REQUEST_URL = "/info/payments/byid/"; # Логин и пароль любого пользователя личного кабинета $user = "admin"; $password = "admin"; # имя или IP-адрес вашего сервера с PayKeeper $server = "demo.rosbank-processing.ru"; # В качестве аргумента скрипта указывается идентификатор платежа #(первый столбец в разделе "Платежи" личного кабинета PayKeeper) if (isset($argv[1])) $id = $argv[1]; else die("Ошибка: отсутствует идентификатор платежа.\n"); # параметры запроса $auth_header = array ( 'Authorization: Basic '.base64_encode("$user:$password") ); $request_headers = array_merge($auth_header, array("Content-type: application/x-www-form-urlencoded")); $context = stream_context_create(array ( 'http' => array ( 'method' => 'GET', 'header' => $request_headers ) )); $result = json_decode(file_get_contents("http://$server" . $REQUEST_URL . "?id=$id", FALSE, $context), TRUE); foreach($result as $data) { foreach($data as $key => $value) { echo $key . " : " . $value; echo "\n"; } } ?> |
Пример кода на языке Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
#!/usr/bin/python3 from http.client import HTTPConnection from sys import argv, exit import urllib.request from base64 import b64encode import re import json REQUEST_URL = "/info/payments/byid/" # Логин и пароль любого пользователя личного кабинета user = "demo" pw = "demo" # имя или IP-адрес вашего сервера с PayKeeper domain = "demo.rosbank-processing.ru" # В качестве аргумента скрипта указывается идентификатор платежа #(первый столбец в разделе "Платежи" личного кабинета PayKeeper) try: argv[1] except IndexError: exit("Ошибка: отсутствует идентификатор платежа.") else: id = argv[1] encstr = (user+":"+pw).encode('ascii') hstr = b64encode(encstr).decode('ascii') try: pw except NameError: exit("domain not found!") else: print("Connecting...") headers = { 'Authorization' : 'Basic %s' % hstr } c = HTTPConnection(domain) c.request('GET', REQUEST_URL+"?id="+id, headers = headers) res = c.getresponse() data = res.read().decode('ascii') if data == "": exit("No data!") data = json.loads(data) for key, value in data[0].items(): print(key+": "+str(value)) |
Пример реализации запроса при помощи консольной утилиты cURL:
1 |
curl -H "Authorization: ZGVtbzpkZW1v" "https://demo.rosbank-processing.ru/info/payments/byid/?id=137101" |
Таким же образом можно реализовать, например, запросы 2.4, 2.5, 2.6, 2.7. Для этого необходимо скорректировать константу REQUEST_URL в соответствии с документацией. Параметр во всех вышеуказанных запросах остается один — id операции оплаты.