Аутентификация
Эта страница описывает, как получить и использовать API ключи для доступа к API платежного шлюза Crypton Studio.
Интерактивное тестирование
На этой странице вы можете тестировать методы аутентификации в реальном времени! Введите ваш API ключ в поле ниже и нажимайте кнопки "Тест" для отправки запросов на сервер https://cp-merch-dev.wsdemo.online/api
.
При возникновении CORS ошибок:
- Используйте кнопки "📋 Копировать curl" для получения готовых команд
- Выполняйте команды в терминале или используйте Postman
- Установите расширение для браузера, отключающее CORS (например, "CORS Unblock")
Типы API ключей
Мы предоставляем два типа API ключей:
Client Key (Клиентский ключ)
- Права доступа: Только чтение
- Использование: Запрос данных, создание платежных адресов
- Уровень безопасности: Может использоваться на клиенте
- Префикс:
ck_
Admin Key (Административный ключ)
- Права доступа: Полный доступ
- Использование: Все операции, включая выводы средств, управление настройками
- Уровень безопасности: Только для серверной части
- Префикс:
ak_
Важное предупреждение о безопасности
- Никогда не раскрывайте Admin Key в клиентском коде
- Никогда не используйте Admin Key в frontend JavaScript
- Никогда не коммитьте Admin Key в систему контроля версий
Получение API ключей
- Войдите в Консоль мерчанта
- Перейдите на страницу "Настройки API"
- Нажмите "Создать новый ключ"
- Выберите тип ключа (Client или Admin)
- Установите имя ключа и права доступа
- Безопасно сохраните сгенерированный ключ
Использование API ключей
HTTP заголовки
Включите следующие заголовки во все API запросы:
X-Api-Key: your-api-key
Content-Type: application/json
Пример запроса
curl -X GET "https://api.crypton.studio/v1/networks" \
-H "X-Api-Key: ck_test_1234567890abcdef" \
-H "Content-Type: application/json"
Конфигурация окружения
Тестовое окружение (Sandbox)
- Базовый URL API:
https://api-sandbox.crypton.studio
- Префикс ключа:
ck_test_
илиak_test_
- Назначение: Разработка и тестирование
Продакшн окружение (Production)
- Базовый URL API:
https://api.crypton.studio
- Префикс ключа:
ck_live_
илиak_live_
- Назначение: Реальный бизнес
Контроль доступа
Различные типы API ключей имеют разные права доступа:
Операция | Client Key | Admin Key |
---|---|---|
Просмотр информации о мерчанте | ✅ | ✅ |
Создание платежных адресов | ✅ | ✅ |
Просмотр истории транзакций | ✅ | ✅ |
Просмотр информации о сетях | ✅ | ✅ |
Просмотр информации о монетах | ✅ | ✅ |
Создание выводов | ❌ | ✅ |
Управление монетами | ❌ | ✅ |
Настройка Webhook | ❌ | ✅ |
Просмотр конфиденциальных данных | ❌ | ✅ |
Лучшие практики безопасности
1. Управление ключами
- Используйте переменные окружения для хранения API ключей
- Регулярно ротируйте API ключи
- Используйте разные ключи для разных окружений
# Пример переменных окружения
export CRYPTON_API_KEY="ck_live_1234567890abcdef"
export CRYPTON_ENVIRONMENT="production"
2. Белый список IP
Настройте белый список IP в консоли для ограничения доступа к API:
{
"allowedIPs": [
"192.168.1.100",
"10.0.0.0/8",
"203.0.113.0/24"
]
}
3. Подпись запросов
Для операций с высокими требованиями к безопасности мы поддерживаем подпись запросов:
const crypto = require('crypto')
function signRequest(method, path, body, timestamp, secret) {
const payload = `${method}${path}${body}${timestamp}`
return crypto.createHmac('sha256', secret).update(payload).digest('hex')
}
// Пример использования
const timestamp = Date.now()
const signature = signRequest('POST', '/v1/withdrawals', JSON.stringify(body), timestamp, apiSecret)
// Заголовки запроса
headers['X-Crypton-Timestamp'] = timestamp
headers['X-Crypton-Signature'] = signature
4. Принудительное использование HTTPS
Все API запросы должны использовать HTTPS. HTTP запросы будут отклонены.
Обработка ошибок
Ошибка аутентификации
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Недействительный API ключ",
"details": "Пожалуйста, проверьте правильность заголовка Authorization"
}
}
Недостаточно прав
{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "Недостаточно прав",
"details": "Эта операция требует Admin Key"
}
}
Истекший ключ
{
"success": false,
"error": {
"code": "KEY_EXPIRED",
"message": "API ключ истек",
"details": "Пожалуйста, создайте новый API ключ в консоли"
}
}
Примеры конфигурации SDK
JavaScript/TypeScript
import { CryptonClient } from '@crypton/payment-sdk'
const client = new CryptonClient({
apiKey: process.env.CRYPTON_API_KEY,
environment: process.env.CRYPTON_ENVIRONMENT || 'sandbox'
})
Python
import os
from crypton_sdk import CryptonClient
client = CryptonClient(
api_key=os.getenv('CRYPTON_API_KEY'),
environment=os.getenv('CRYPTON_ENVIRONMENT', 'sandbox')
)
Конфигурация API
Тестирование аутентификации
curl -X GET "https://cp-merch-dev.wsdemo.online/api/v1/auth/test" \
-H "X-Api-Key: YOUR_API_KEY"
Go
package main
import (
"os"
"github.com/crypton-studio/payment-sdk-go"
)
func main() {
client := crypton.NewClient(&crypton.Config{
APIKey: os.Getenv("CRYPTON_API_KEY"),
Environment: os.Getenv("CRYPTON_ENVIRONMENT"),
})
}
Тестирование подключения
Используйте следующий эндпоинт для проверки работы вашего API ключа:
curl -X GET "https://api.crypton.studio/v1/merchant" \
-H "X-Api-Key: your-api-key" \
-H "Content-Type: application/json"
Успешный ответ:
{
"success": true,
"data": {
"id": "merchant_123",
"name": "Your Business Name",
"status": "ACTIVE",
"createdAt": "2024-01-15T10:30:00Z"
}
}
Часто задаваемые вопросы
В: Как отличить ключи тестового и продакшн окружения?
О: Ключи тестового окружения содержат test
, продакшн ключи содержат live
.
В: Есть ли срок действия у API ключей?
О: По умолчанию API ключи не истекают, но вы можете установить срок действия в консоли.
В: Можно ли использовать несколько API ключей одновременно?
О: Да, вы можете создать несколько ключей для разных приложений или сервисов.
В: Как отозвать API ключ?
О: Удалите соответствующий ключ на странице "Настройки API" в консоли.
Готовы начать? Посмотрите Обзор API для получения дополнительной информации.