Page History
Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Общение происходит с помощью postback-запросов (постбеков). После каждого запроса Клиента на ввод или вывод, ему отправляется постбек с результатом операции.
Внимание: Для смены часового пояса при отображении времени в транзакциях, в настройках (путь: Личный кабинет -> Настройки -> Настройки paykassma -> Часовой пояс) через запрос ТП Paykassma выставите требуемый часовой пояс. По умолчанию часовой пояс +08:00 PST Asia/Manila
Прием postback (постбека)
Для принятия постбеков Вам необходимо реализовать отдельный путь, по которому Вы сможете получать постбеки. Они отправляются POST-запросом в JSON-формате.
Сервер Paykassma ожидает ответ в json {"status":"ok"} код ответа 200, в противном случае, при получении отличающегося ответа, Paykassma будет пересылать постбек с определенной периодичностью.
Anchor | ||||
---|---|---|---|---|
|
Ввод
Формирование сигнатуры (signature) на стороне клиента
При отправке постбеков Paykassma также отправляет сигнатуру: специально сгенерированную хеш-строку, которая создается с использованием приватного ключа. Сама сигнатура вычисляется следующим образом:
$signature = sha1($postback_access_key . $postback_private_access_key . md5($transactions->toJson()));
в функцию sha1 передается строка, склеенная из трех параметров:
Параметр | Описание |
$postback_access_key | публичный ключ; |
$postback_private_access_key | приватный ключ; |
хеш от MD5-функции всего массива транзакций в JSON-формате |
В результате выполнения данного кода получается строка, которую невозможно подделать, не имея приватного ключа, который не передается в постбеках.
Клиент может сравнить сгенерированную сигнатуру с полученной сигнатурой от постбека и тем самым убедиться, что данные, которые пришли были реально отправлены, а не подделаны злоумышленником.
Postback ввода
Тело запроса:
Наименование | Тип | Описание |
access_key | string | Ключ доступа, указывается в настройках личного кабинета ТП Paykassma |
signature | string | Подпись, по которой происходит проверка подлинности постбека. Внимание: принцип формирование подписи приводится ниже в отдельном пункте. |
label | string | Уникальный ID пользователя в системе клиента |
Stockpiling | object | Сконвертированная во все валюты сумма транзакций, участвующих в накоплении (одна и более транзакции). Конвертация осуществляется на основе открытых данных о курсах валют. Все валюты передаются с точностью до сотых долей, криптовалюты имеют 8 знаков в дробной части (стомиллионная точность). Передается в виде массива. Внимание: описание функционала накопления приводится ниже в отдельном пункте |
stockpiling_id | integer | Уникальный ID накопления |
transactions | array | Передается информация о совершённых транзакциях, учавствующих в накоплении (одна и более). |
Массив transactions:
Наименование | Тип | Описание |
amount | string | Сумма транзакции |
currency_code | string | Код валюты транзакции |
wallet_type | string | Платёжная система, в которой произведена транзакция |
code | string или “null” | Название ручной платежной системы. Заполняется только при указании wallet_type = “manual”. |
transaction_id | string | Уникальный ID транзакции в Paykassma |
transaction_type | integer | Тип транзакции: 0 = автоматическая, 1 = отладочная, 2 = принудительная |
from | string или “null” | Уникальный идентификатор счета пользователя, с которого пришла оплата (при наличии информации) |
created_datetime | string | Дата создания транзакции |
activated_datetime | string | Дата активации транзакции |
custom_id | string или “null” | Передача полученного от клиента с плагина Идентификатор транзакции в системе Клиента. Внимание: Может быть «null», если параметр custom_transaction_id не был передан ранее. |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "access_key":"mrOYReXJphqo7lkL"// "signature":"dfsfrwe3344d", "label":1 "Stockpiling":{ "USD":80, "INR":6008.39, "EUR":72.86 }, "stockpiling_id":18, "transactions":[ { "amount":6008.39, "currency_code":"INR", "wallet_type":"paytm", "code":null, "transaction_id":"15", "transaction_type":1, "from":85XXXX1369, "created_datetime":"2019-12-18 23:28:45", "activated_datetime":"2019-12-18 23:28:45", "custom_id":"3123123" } ] } |
Anchor | ||||
---|---|---|---|---|
|
Вывод
Формирование сигнатуры (signature) на стороне клиента
Каждый постбек подписывается signature, она формируется следующим образом:
Code Block | ||||
---|---|---|---|---|
| ||||
$data = [ ... ]; $data['signature'] = generateSignature($data); // return fa0ee1e2acf7f898635ec417491381c0a4f9d35c //send $data like json ... function generateSignature(array $data) { $privateKey = 'yourprivatekey'; ksort($data); $implode = implode(':', $data); return sha1($privateKey . md5($implode)); } |
Postback вывода
Постбек вывода при использовании актуального запроса на вывод "https:
//api.{URL_server_Paykassma}/v2/withdrawal/create
"
Тело запроса:
Наименование | Тип | Описание | |||
withdrawal_id | string | Уникальный ID вывода | |||
status | integerstring | Доступные статусы вывода: | |||
comment | string | Комментарий, приходит вместе с html тэгамиwithdrawal_id | |||
payment_system | string | Платежная система | |||
amount | double | Сумма | |||
currency_code | string | Валюта | |||
label | string | Уникальный ID вывода | |||
wallet_type | string | Тип платёжной системы | |||
wallet_recepient | string | Номер кошелька получателя | |||
label | string | Уникальный ID пользователя в системе клиента, передаётся в параметре label при составлении URL в Iframe | |||
amount | double | Сумма вывода. Имеет 2 знака после запятой для всех валют и 8 знаков для криптовалют. | |||
идентификатор пользователя, для которого производится вывод | |||||
account_number | string | Номер счета получателя | |||
account_name | string | Имя получателя счета | |||
account_email | string | Email получателя счета | |||
payments_details | JSON | ||||
payments_provider | string | Поставщик, который осуществляет электронный платеж, выбранным способом оплаты | |||
bank_details | JSON | ||||
bank_code | integer | Уникальный идентификатор присваиваемый центральным банком страны | |||
branch_code | integer | Код филиала (отделения) банка | |||
signature | string | Подпись постбека | currency_code | string | Валюта транзакции вывода |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": 1, "description": "<p>123<\/p>", "withdrawal_id": 3479370, "wallet_type": "IMPS", "wallet_recipient": "123", "label": "123", "amount": 1000, "currency_code": "INR" "signature": "SIGNATURE"'withdrawal_id' : '12345', 'status' : '1', 'comment' : 'comment', 'payment_system' : 'paytm', 'amount' : '1000', 'currency_code' : 'INR', 'label' : '125', 'account_number' : '123456789', 'account_name' : '', 'account_email' : '', 'payments_details': { 'payments_provider' : '', }, 'bank_details': { 'bank_code' : '', 'branch_code' : '', }, 'signature' : 'signature' } |
Постбек вывода при использовании неактуального запроса на вывод "https:
//api.{URL_server_Paykassma}/withdrawal/manual/create
"
Тело запроса:
Наименование | Тип | Описание |
id | integer | Уникальный ID вывода |
withdrawal_id | string | ID вывода в системе клиента |
wallet_type | string | Тип платёжной системы |
wallet_recipient | string | Номер кошелька получателя |
wallet_sender | string | Номер кошелька отправителя |
account_name | string | Имя держателя аккаунта |
account_number | string | Номер счета аккаунта |
string | Электронная почта того, кому выплачивают | |
amount | double | Сумма вывода. Имеет 2 знака после запятой для всех валют и 8 знаков для криптовалют. |
status | integer | Доступные статусы вывода: |
created_at | date | Дата и время создания |
updated_at | date | Дата и время обновления |
failed_reason | string | Причина неудачи. Данный параметр не передается, если статус 1 |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "id": 957, "withdrawal_id": "5165837", "wallet_type": "imps", "wallet_recipient": "123", "wallet_sender": "5125124", "account_name": "test", "account_number": "123", "email": "[email protected]" "amount": 1000.00, "status": 1, "created_at": "2021-02-16 12:23:34", "updated_at": "2021-02-26 17:22:43", "failed_reason": "test" "signature": "SIGNATURE" } |
Оглавление:
Table of Contents | ||
---|---|---|
|