API
API
-
Что такое API?
API предназначен для разработчиков или компаний, которые хотят создавать приложения для работы с Paxful.
Интерфейсы прикладного программирования (API) делают работу на Paxful еще более легкой и приятной. Нажмите здесь для получения дополнительной информации. -
Как настроить вебхуки
Вебхуки позволяют вам получать HTTPS-уведомления о событиях на платформе Paxful в режиме реального времени. Например, мы можем отправлять вам уведомления о новых сообщениях от торгового партнера или новых сделках. Таким образом, вам не придется постоянно отправлять API-запросы, чтобы узнать об изменениях или обновлениях. В этом руководстве мы расскажем вам, как настроить вебхуки на платформе Paxful.
Paxful поддерживает вебхуки для следующих событий:
- Новая сделка на Paxful
- Новое сообщение в чате сделки
- Новое вложение в чате сделки
- Кто-то просмотрел ваш профиль на Paxful
- Кто-то просмотрел ваше предложение
- Торговый партнер оплатил покупку криптовалюты
- Сделка отменена или срок действия сделки истек
- Криптовалюта продана
- Криптовалюта куплена
- Зачисление криптовалюты подтверждено
- Ожидается зачисление криптовалюты
- Отзыв от торгового партнера
- Получен новый ответ на отзыв
Как настроить вебхуки
Примечание: Убедитесь, что ваш сервис принимает вебхуки. При сохранении URL ваш сервис должен взять заголовок запроса "X-Paxful-Request-Challenge" и указать его в ответе в таком же виде.
. Вот как должен выглядеть наш заголовок запроса (это пример вебхуков в Node.js):1. Войдите в аккаунт Paxful, наведите курсор на свое имя пользователя (в правом верхнем углу страницы) и выберите Настройки в появившемся контекстном меню.
Вы перейдете на страницу настроек.
2. В меню в левой части страницы нажмите Для разработчиков.
Вы перейдете на страницу для разработчиков.
3. Если у вас нет API-ключа, введите двухфакторный код в поле ниже и нажмите Добавить новый API-ключ. Если у вас есть API-ключ, вы можете пропустить этот шаг.
Ваш новый API-ключ появится на странице для разработчиков вместе с дополнительными разделами.
4. Скопируйте URL из своего приложения.
Перейдите в раздел Вебхуки на странице Для разработчиков. Вставьте ссылку в поле URL запроса и нажмите Сохранить.Внимание! Наши вебхуки поддерживаются только адресами формата HTTPS. Вы не сможете использовать для этой цели адреса HTTP.
Заголовок запроса отправлен на ваше приложение.
Примечание: Таймаут при отправке — 10 секунд. Если мы за это время не получим ответ от вашего приложения, URL-ссылка не будет сохранена и вебхук не будет создан.
5. Если все сделано правильно, вы увидите список доступных для подписки событий. Пометьте галочкой события, на которые вы хотите подписаться.
Примечание:
- После выбора события будут сохранены автоматически.
- Чтобы вставить новую ссылку, замените текущую URL-ссылку новой и нажмите Изменить.
- Чтобы деактивировать вебхуки, нажмите Удалить.
- Чтобы заново активировать отключенную URL-ссылку, нажмите Повторить попытку.
Если URL запроса успешно сохранена, в вашем приложении события будут отображаться следующим образом:
Проверка запросов от Paxful
Paxful создает уникальную строку для вашего приложения и передает ее вам. Вы можете проверять запросы от Paxful при помощи проверки подписей.
Мы добавляем HTTPS-заголовок "X-Paxful-Signature" к каждому отправленному HTTPS-запросу. Подпись создается путем соединения ключа подписи с телом отправляемого запроса, для чего используется стандартный хеш HMAC-SHA256.
Примечание: В результате получается уникальная подпись для каждого запроса, которая не содержит какой-либо конфиденциальной информации. Это обеспечивает защиту вашего приложения от злоумышленников.
Примеры в JavaScript
const crypto = require('crypto'); const express = require('express'); const app = express(); const port = 3000; const bodyParser = require('body-parser');
Ваш приватный ключ API со страницы https://paxful.com/account/developer:
const apiSecret = 'maE5KV16FV0nDyh7XPm2F8f8FZTdtb5p'; app.use(bodyParser.json());
Когда вы получите запрос на подтверждение адреса, вам нужно скопировать заголовок "X-Paxful-Request-Challenge" из запроса и вставить его в ответ.
app.use((req, res, next) => {
Запрос на подтверждение информации не содержит содержимого запроса и подписи запроса.
if (!Object.keys(req.body).length && !req.get('X-Paxful-Signature')) { console.log('Address verification request received.'); const challengeHeader = 'X-Paxful-Request-Challenge'; res.set(challengeHeader, req.get(challengeHeader)); res.end(); } else { next(); } });
При получении уведомления о событии вы должны проверить заголовок "X-Paxful-Signature". Если запрос содержит неверную подпись, не обрабатывайте его.
app.use((req, res, next) => { const providedSignature = req.get('X-Paxful-Signature'); const calculatedSignature = crypto.createHmac('sha256', apiSecret).update(JSON.stringify(req.body)).digest('hex'); if (providedSignature !== calculatedSignature) { console.log('Request signature verification failed.'); res.status(403).end(); } else { next(); } });
Теперь вы можете обработать событие.
app.post('*', async (req, res) => { console.log('New event received:'); console.log(req.body); res.end(); }); app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`));
Если у вас есть вопросы, свяжитесь с нашей службой поддержки. Вы также можете изучить нашу документацию для разработчиков, чтобы узнать больше об API-сервисах.