RAIDOSPARE API для веб-разработчиков
Регистрация и верификация
1) Зарегистрируйтесь в системе RaidoSpare: https://secure.raidospare.com/site/signup
2) Войдите в систему и перейдите на страницу создания мерчанта: https://secure.raidospare.com/merchant
3) В левой части заполните необходимые поля, а в правой выберите доступные методы оплаты для Вашего мерчанта. Адрес веб-сайта необходимо указать вместе с протоколом, например: https://my-merchant-site.com .
После этого нажмите на кнопку "Отправить запрос". Добавленный сайт появится внизу страницы. Для просмотра параметров мерчанта просто кликните по ссылке сайта.
4) Пройдите верификацию сайта: https://secure.raidospare.com/verification/merchant .
Выберите сайт и нажмите на кнопку "Подтвердить". Будет создан автоматический запрос в Службу поддержки RaidoSpare о том, что Вы хотите подтвердить свой сайт. Сохраните полученный текстовый файл и разместите его в корневой директории сайта, не меняя его название.
Файл должен быть доступен по сслыке, подобного вида:
https://my-merchant-site.com/6023275085114c5c1b7c4ddc1998d447.txt
Интеграция v1
1) Выберите добавленный сайт из списка внизу страницы: https://secure.raidospare.com /merchant
Вам понадобятся следующие параметры:
- Merchant ID
- Secret
- Payment Methods ID
2) Создайте платеж.
Параметры платежа указываются в виде ассоциативного массива. Затем они кодируются и создается подпись в виде их хэша.
Параметр | Ключ | Описание |
---|---|---|
Мерчант | merchant | Ваш Merchant ID |
Ордер | order | Номер ордера в Вашей системе |
Цена | amount | Сумма, которую Вы хотите получить от покупателя |
Валюта | currency | Валюта, в которой указана цена |
Описание | desc | Описание платежа (Необязательно) |
Метод оплаты | method | Payment Method ID (Необязательно) |
Показать кнопку выбора метода оплаты | allowchoice | Если параметр allowchoice = true , то будет выводиться кнопка для выбора других платежных методов на странице оплаты. Если параметр не задан то нет. (Необязательно) |
$params = [ 'merchant' => 235, 'order' => '12345ABC', 'amount' => 51.3, 'currency' => 'EUR', 'desc' => 'purchase #43968', ]; $secret = 'Your_Secret'; $data = base64_encode(json_encode($params)); $sign = hash_hmac('sha256', $data, $secret);
Если передать method в параметрах, например:
$params['method'] =>
123,
то клиент после нажатия на кнопку оплаты будет перенаправлен сразу на страницу оплаты с помощью указанного метода.
Доступные методы:
Метод | Payment Methods ID |
---|---|
Bitcoin | 2 |
Etherium | 3 |
RDO | 21 |
USDT | 22 |
TRX | 23 |
Если задать method в параметрах в виде пустой строки:
$params['method'] =>
'',
то клиент после нажатия на кнопку оплаты будет перенаправлен сразу на страницу оплаты через личный кабинет RaidoSpare.
3) Создайте форму платежа.
В ней необходимо указать полученные значения $data и $sign. В результате форма оплаты будет выглядеть подобным образом:
RaidoSpare поддерживает несколько языков. Для указания конкретного языка страниц оплаты необходимо отправлять форму на подобный адрес: https://secure.raidospare.com/ru/api/merchant
4) Задайте обработчик платежа.
После того, как произойдет оплата, её детали будут направлены по адресу Process URL Вашего мерчанта.
Чтобы задать Process URL, необходимо обратиться в Службу поддержки RaidoSpare:
https://secure.raidospare.com/support
Данные в виде ассоциативного массива передаются в обработчик платежа с помощью POST-запроса.
Они имеют структуру:
$_POST = [ 'order' => string, 'data' => array, 'sign' => string, ];
Информация, содержащаяся под ключом 'data', в свою очередь так же имеет структуру ассоциативного массива:
Параметр | Ключ | Описание |
---|---|---|
Дата счета | date | Дата выставления счета |
Дата оплаты | payDate | Дата оплаты счета |
Сумма счета | amount | Сумма выставленного Вами счета |
Валюта счета | currency | Валюта выставленного Вами счета |
Метод оплаты | method | Название метода, с помощью которого произошла оплата счета |
Валюта оплаты | methodCurrency | Валюта, в которой оплачивался счет |
Сумма оплаты | methodAmount | Сумма счета, пересчитанная в валюту оплаты счета |
Итоговая сумма | methodAmount | Итоговая сумма счета в валюте оплаты с учетом комиссий |
Raido транзакция | transaction | Номер транзакции в системе RaidoSpare |
Транзакции в сети | transactionNetwork | Номер транзакции в блокчейне |
Валюта зачисления | transactionCurrency | Валюта, в которой поступили средства на счет мерчанта в системе RaidoSpare |
Сумма зачисления | transactionAmount | Сумма поступивших на счет мерчанта средств в системе RaidoSpare |
Итоговая сумма | transactionTotal | Итоговая сумма транзакции в системе RaidoSpare с учетом комиссий |
Описание | desc | Описание платежа |
Задержка платежа | cautionPaymentDelay | Задержка платежа в секундах. Указывается, если покупатель произвел оплату, но по каким-то причинам, она пришла в RaidoSpare с запазданием |
Частичная оплата | cautionPartialPayment | Сумма частичной оплаты в валюте зачисления в системе RaidoSpare. Указывается, если клиент произвел неполную оплату. Например, при переводе крипто валюты. |
В ответ на переданные параметры наш сервис будет ожидать Вашего ответа.
Ответ ДОЛЖЕН имееть следующий вид:
- Начинаться со слов 'success' или 'error'.
- Далее через знак '|' может содержать URL для редиректа покупателя.
- Быть не длиннее 255 символов.
Пример простейшего обработчика:
$post = $_POST; $secret = 'Your_Secret'; if (isset($post['order'], $post['data'], $post['sign'])) { $data = base64_encode(json_encode($post['data'])); $sign = hash_hmac('sha256', $data, $secret); if ($sign == $post['sign']) { if (isset($post['data']['cautionPartialPayment'])) { exit("error|https://my-merchant-site.com/payment/error/?order={$post['order']}"); } exit("success|https://my-merchant-site.com/payment/complete/?order={$post['order']}"); } }
Переводы в Биткоинах будут зачислены на счет Вашего мерчанта только после 3х подтверждений, в то время как уведомления на Process URL отсылаются после 2-х подтверждений.
Оплата в системе RaidoSpare не будет завершена, пока платеж не будет обработан Вашим сайтом и мы не получим корректный ответ.
После получения корректного ответа от Вашего обработчика платежа покупателю будет показано уведомление об успешной/неуспешной оплате, а также предложено перейти по указанному URL, если он будет передан.
Интеграция v2
1) Выберите добавленный сайт из списка внизу страницы: https://secure.raidospare.com/api/deposit/request
Вам понадобятся следующие параметры:
- Merchant ID
- Secret
- Payment Methods ID
2) Создайте платеж.
Параметры платежа указываются в виде ассоциативного массива. Затем они кодируются и создается подпись в виде их хэша.
Параметр | Ключ | Описание |
---|---|---|
Мерчант | merchant | Ваш Merchant ID |
Ордер | order | Номер ордера в Вашей системе |
Цена | amount | Сумма, которую Вы хотите получить от покупателя |
Валюта | currency | Валюта, в которой указана цена |
Описание | desc | Описание платежа (Необязательно) |
Метод оплаты | method | Payment Method ID |
Доступные методы:
Метод | Payment Methods ID |
---|---|
Bitcoin | 2 |
Etherium | 3 |
RDO | 21 |
USDT | 22 |
TRX | 23 |
$params = [ 'merchant' => 235, 'order' => '12345ABC', 'amount' => 51.3, 'currency' => 'USD', 'desc' => 'purchase #43968', 'method' => '2', ]; $secret = 'Your_Secret'; data = base64_encode(json_encode($params)); $sign = hash_hmac('sha256', $data, $secret); $postData = array ( 'data' => $data, 'sign' => $sign, ); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/deposit/request'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData)); $out = curl_exec($curl); curl_close($curl); }
Ответ возвращается в формате JSON.:
Параметр | Ключ | Описание |
---|---|---|
Сумма счета | amount | Сумма выставленного Вами счета |
Валюта счета | currency | Валюта выставленного Вами счета |
Метод оплаты | method | Название метода, с помощью которого произошла оплата счета |
Описание | desc | Описание платежа |
Итоговая сумма | priceTotal | Итоговая сумма счета в валюте оплаты с учетом комиссий |
Комиссия | feeRaido | Комиссия raidospare.com в валюте метода оплаты |
Название метода | methodTitle | Название метода оплаты |
Метод оплаты | methodPayment | Payment Method ID |
Валюта оплаты | methodCurrency | Валюта, в которой оплачивался счет |
Криптоадрес | cryptoAddress | Криптоадрес для оплаты |
Ордер | orderID | Номер ордера в Вашей системе |
3) Задайте обработчик платежа.
После того, как произойдет оплата, её детали будут направлены по адресу Process URL Вашего мерчанта.
Чтобы задать Process URL, необходимо обратиться в Службу поддержки RaidoSpare:
https://secure.raidospare.com/support
Данные в виде ассоциативного массива передаются в обработчик платежа с помощью POST-запроса.
Они имеют структуру:
$_POST = [ 'order' => string, 'data' => array, 'sign' => string, ];
Информация, содержащаяся под ключом 'data', в свою очередь так же имеет структуру ассоциативного массива:
Параметр | Ключ | Описание |
---|---|---|
Дата счета | date | Дата выставления счета |
Дата оплаты | payDate | Дата оплаты счета |
Сумма счета | amount | Сумма выставленного Вами счета |
Валюта счета | currency | Валюта выставленного Вами счета |
Метод оплаты | method | Название метода, с помощью которого произошла оплата счета |
Валюта оплаты | methodCurrency | Валюта, в которой оплачивался счет |
Сумма оплаты | methodAmount | Сумма счета, пересчитанная в валюту оплаты счета |
Итоговая сумма | methodAmount | Итоговая сумма счета в валюте оплаты с учетом комиссий |
Raido транзакция | transaction | Номер транзакции в системе RaidoSpare |
Транзакции в сети | transactionNetwork | Номер транзакции в блокчейне |
Валюта зачисления | transactionCurrency | Валюта, в которой поступили средства на счет мерчанта в системе RaidoSpare |
Сумма зачисления | transactionAmount | Сумма поступивших на счет мерчанта средств в системе RaidoSpare |
Итоговая сумма | transactionTotal | Итоговая сумма транзакции в системе RaidoSpare с учетом комиссий |
Описание | desc | Описание платежа |
Задержка платежа | cautionPaymentDelay | Задержка платежа в секундах. Указывается, если покупатель произвел оплату, но по каким-то причинам, она пришла в RaidoSpare с запазданием |
Частичная оплата | cautionPartialPayment | Сумма частичной оплаты в валюте зачисления в системе RaidoSpare. Указывается, если клиент произвел неполную оплату. Например, при переводе крипто валюты. |
В ответ на переданные параметры наш сервис будет ожидать Вашего ответа.
Ответ ДОЛЖЕН имееть следующий вид:
- Начинаться со слов 'success' или 'error'.
- Далее через знак '|' может содержать URL для редиректа покупателя.
- Быть не длиннее 255 символов.
Пример простейшего обработчика:
$post = $_POST; $secret = 'Your_Secret'; if (isset($post['order'], $post['data'], $post['sign'])) { $data = base64_encode(json_encode($post['data'])); $sign = hash_hmac('sha256', $data, $secret); if ($sign == $post['sign']) { if (isset($post['data']['cautionPartialPayment'])) { exit("error|https://my-merchant-site.com/payment/error/?order={$post['order']}"); } exit("success|https://my-merchant-site.com/payment/complete/?order={$post['order']}"); } }
Переводы в Биткоинах будут зачислены на счет Вашего мерчанта только после 3х подтверждений, в то время как уведомления на Process URL отсылаются после 2-х подтверждений.
Оплата в системе RaidoSpare не будет завершена, пока платеж не будет обработан Вашим сайтом и мы не получим корректный ответ.
После получения корректного ответа от Вашего обработчика платежа покупателю будет показано уведомление об успешной/неуспешной оплате, а также предложено перейти по указанному URL, если он будет передан.
Аутентификация
Аутентификация происходит посредством Http Bearer Token. Токен выдается после подачи заявки. Ответ от сервера в JSON формате .
Информация об авторизованном пользователе
https://secure.raidospare.com/api/
curl -X GET "https://secure.raidospare.com/api/" -H "accept: application/json" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"
Пример на PHP:
if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $out = curl_exec($curl); curl_close($curl); }
История операций
https://secure.raidospare.com/api/history
account - номер кошелька, по которому нужно посмотреть историю
curl -X POST "https://secure.raidospare.com/api/history " -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "account=RD1234567" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"
Пример на PHP:
$postData = array ( 'account' => 'RD1234567', ); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/history'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData)); $out = curl_exec($curl); curl_close($curl); }
Информация о балансе
https://secure.raidospare.com/api/balance
account - номер кошелька, по которому нужно получить баланс
currency - валюта
curl -X POST "https://secure.raidospare.com/api/balance " -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "account=RD1234567¤cy=USD" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"
Пример на PHP:
$postData = array ( 'currency' => 'USD', 'account' => 'RD1234567', ); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/balance'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData)); $out = curl_exec($curl); curl_close($curl); }
Выплаты \ Массовые выплаты
https://secure.raidospare.com/api/payout
merchant - ID мерчанта в системе RaidoSpare
to - номер кошелька, email, телефон или крипто адрес получателя в системе RaidoSpare
amount - сумма платежа
currency - валюта платежа
fee - признак того , кто платит комиссию. Если не задан, то платит мерчант, если true или 1 - то платит клиент
curl -X POST "https://secure.raidospare.com/api/payout" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "merchant=123456&to=RD1234567&amount=10¤cy=USD" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"
Возвращает JSON строку с номером транзакции при успешной операции.
Пример на PHP:
$postData = array ( 'amount' => 10, 'currency' => 'USD', 'to' => 'client@gmail.com', 'merchant' => 12345678, ); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/payout'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData)); $out = curl_exec($curl); curl_close($curl); }
Перевод средств
https://secure.raidospare.com/api/transfer
from - Ваш номер кошелька, с которого будет производится оплата
to - номер кошелька, email, телефон или крипто адрес получателя в системе RaidoSpare
сумма платежа
валюта платежа
curl -X POST "https://secure.raidospare.com/api/transfer" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "from=RD1234567&to=RD1234568&amount=10¤cy=USD" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"
Возвращает JSON строку с номером транзакции при успешной операции.
Пример на PHP:
$postData = array ( 'from' => 'RD1234567', 'to' => 'RD1234568', 'amount' => 10, 'currency' => 'USD', ); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/transfer'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData)); $out = curl_exec($curl); curl_close($curl); }
Проверка доступности кошелька
https://secure.raidospare.com/api/check-account
номер кошелька, который необходимо проверить
curl -X POST "https://secure.raidospare.com/api/check-account" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "account=RD1234567" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"
Возвращает JSON строку true или false
{"success":true}
Пример на PHP:
$postData = array ( 'account' => 'RD1234567', ); if( $curl = curl_init() ) { curl_setopt($curl, CURLOPT_URL, 'https://secure.raidospare.com/api/check-account'); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); $headers = array(); $headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533'; curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData)); $out = curl_exec($curl); curl_close($curl); }
Индивидуальные выплаты
Обращение по api к выплатам требует передачи заголовка для аутентификации
Headers
Authorization: Bearer {{access_token}}
Первый шаг - это запрос предложения
https://secure.raidospare.com/api/withdrawal/request
POST:
Обязательные параметры | |
---|---|
Параметр | Описание |
amount | Запрашиваемая сумма вывода |
currency | Валюта запрашиваемой суммы вывода |
currency_in | Валюта перевода |
account_in | Аккаунт для перевода (можно указывать email, кошельки, крипто адреса и пр.) |
order | Идентификатор заказа у Мерчанта |
merchant | ID мерчанта в системе RaidoSpare |
Дополнительные параметры | |
client_id | Идентификатор клиента у Мерчанта |
desc | Произвольное описание транзакции |
Второй шаг - это подтверждение запроса
https://secure.raidospare.com/api/withdrawal/confirm
POST:
Параметр | Описание |
---|---|
offer_id | ID предложения в системе RaidoSpare |
merchant | ID мерчанта в системе RaidoSpare |
sign | Подпись |
Подпись формируется следующим образом:
$sign = hash_hmac('sha256', $offer_id . $merchant, {{secret}});
Ответ возвращается в формате JSON.:
Пример хорошего ответа:
{"status":"success","tx":"5B89B69E5533B2A9F2CAC64B6"}
tx - хэш транзакции в системе RaidoSpare
Пример ответа с ошибкой:
{"name":"Bad Request","message":"Amount cannot be blank.","code":0,"status":400}
{"name":"Bad Request","message":"Offer already paid","code":100,"status":400}