Добро пожаловать!

войди с помощью своего телеграм-аккаунта

Как это работает? Посмотри здесь

CABot API

Для того, чтобы использовать API, вам понадобятся User login и API key, которые пользователь любого кабота может получить в разделе "Настройки — API".

Обращения к API выполняются методом POST на адреса вида https://cabot.pro/?show=api&act=[method] в формате application/json либо x-www-form-urlencoded.

Ответы возвращаются в формате JSON.

Подпись запросов

Каждый запрос к API должен содержать поле login (User login) и поле с подписью запроса sign, которое формируется по следующей схеме: значения всех параметров запроса (кроме поля sign) упорядочиваются по названию, объединяются в строку через символ ":", в конец добавляется ключ API key, и от полученной строки берется хэш SHA256.

Пример формирования подписи (на PHP, JS, Python):

// PHP:

function get_api_signature($request, $api_key) {
    ksort($request);
    $elements = [];
    foreach($request as $k => $v) {
        $v = trim($v);
        if ($v !== "" && $k != "sign") {
            $elements[] = $v;
        }
    }
    $sign = implode(":", $elements) . ":" . $api_key;
    return hash("sha256", $sign);
}

Методы

Баланс пользователя (balans)

URL: https://cabot.pro/?show=api&act=balans

Параметры запроса:

login:[String]// ваш User login
sign:[String]// подпись запроса

Результат:

{
    balans: [
        {
            coin:   [String]    // название монеты 
            balans: [Float]     // баланс монеты
        },
        ...
    ]
}

Названия и курсы всех доступных монет (allcoins)

URL: https://cabot.pro/?show=api&act=allcoins

Параметры запроса:

login:[String]// ваш User login
sign:[String]// подпись запроса

Результат:

{
    coins: [
        {
            name: [String]  // название монеты
            rate: [Float]   // курс монеты в TON        
        },
        ...
    ]
}

Курс монеты на бирже (coin)

URL: https://cabot.pro/?show=api&act=coin

Параметры запроса:

login:[String]// ваш User login
coin_name:[String]// название монеты
sign:[String]// подпись запроса

Результат:

{
    coin: {
        name: [String]  // название монеты
        rate: [Float]   // курс монеты в TON
    }
}

Перевод пользователю (transfer)

URL: https://cabot.pro/?show=api&act=transfer

Параметры запроса:

login:[String]// ваш User login
user2_id:[BigInt]// ID пользователя в Telegram
coin_name:[String]// название монеты
amount:[Float]// сумма для перевода
cabot:[String]// логин кабота, от которого получателю поступит уведомление о переведе.
// Если не указать, то оно придет от последнего кабота, на которого подписан.
sign:[String]// подпись запроса

Результат:

{
    transfer: {
        name:   [Int]   // ID перевода
        status: [Int]   // статус перевода (0 - не завершен, 1 - завершен)  
    }
}

Получение оплаты, выставление счета (getpayment)

URL: https://cabot.pro/?show=api&act=getpayment

Параметры запроса:

login:[String]// ваш User login
amount:[Float]// сумма платежа
coin_name:[String]// название монеты платежа
order_id:[String]// идентификатор заказа в вашей системе
product_name:[String]// название платежа (наименование товара, услуги и т.п.)
success_url:[String]// адрес, на который пользователь будет направлен после успешной оплаты.
failed_url:[String]// адрес, на который пользователь будет направлен после неудачной оплаты.
notification_url:[String]// адрес, на который наша система направит подтверждение об успешном завершении оплаты (Payment Notification)
sign:[String]// подпись запроса

Результат:

{
    payment_link: {
        url:   [String]   // Адрес страницы, на которую надо направить пользователя для совершения оплаты
    }
}

Пример создания платежа (на PHP, JS, Python):

// PHP:

$api_user_login = 'u126xxxxxx';
$api_key = 'XXXXXXXXXXD405598E995EA3905684XXXXXXXXXX';

// формируем запрос
$api_url = 'https://cabot.pro/?show=api&act=getpayment';
$request = [
    'login'             => $api_user_login,
    'coin_name'         => 'TonDoge',
    'amount'            => 100, 
    'order_id'          => 1000,
    'product_name'      => 'SuperTop NFT',
    'success_url'       => 'https://mysite.com/payment-success',
    'failed_url'        => 'https://mysite.com/payment-failed',
    'notification_url'  => 'https://mysite.com/payment-notification'
];
// добавляем подпись запроса
$sign = get_api_signature($request, $api_key);
$request['sign'] = $sign;

// отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 
$result = curl_exec($ch); 
curl_close($ch);

// перенаправление на страницу оплаты
$data = json_decode($result, true);
header('Location: ' . $data['payment_link']['url']);

Payment Notification - уведомление об успешном завершении платежа

Уведомление методом POST в формате JSON направляется на адрес notification_url, указанный при создании платежа

Параметры:

order_id:[String]// идентификатор заказа в вашей системе
amount:[Float]// сумма платежа
coin_name:[String]// название монеты платежа
status:[Int]// статус платежа (0 - не завершен, 1 - завершен)
sign:[String]// подпись запроса

Проверка статуса платежа

URL: https://cabot.pro/?show=api&act=checkpayment

Параметры запроса:

login:[String]// ваш User login
order_id:[String]// идентификатор заказа в вашей системе
sign:[String]// подпись запроса

Результат:

{
    order_id:   [Int]     // идентификатор заказа в вашей системе
    amount:     [Float]   // сумма платежа
    coin_name:  [String]  // название монеты платежа
    status:     [Int]     // статус платежа (0 - не завершен, 1 - завершен)
} 

Ошибки

Если запрос не может быть выполнен, то возвращается ответ в формате:

{
    error: {
        error_code: [Int]       // код ошибки
        error_msg:  [String]    // описание ошибки
    }
}

Ограничения

Не чаще 10 запросов в минуту