Solana Pay — это стандартный протокол и набор эталонных реализаций, которые позволяют разработчикам интегрировать децентрализованные платежи в свои приложения и сервисы. Он обеспечивает единый подход к платежам в рамках всей экосистемы Solana, гарантируя совместимость между кошельками, приложениями и сервисами.
Обзор протокола
Solana Pay определяет два основных типа платёжных запросов:
Запросы на перевод (неинтерактивные)
Запросы на перевод описывают простые переводы SOL или SPL-токенов с использованием URL-параметров. Кошелёк может напрямую составить и подписать транзакцию без дополнительного взаимодействия с сервером.
solana:recipient?amount=1.5&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Варианты использования:
- Простые платежи и пожертвования
- Платежи по QR-коду в точках продаж
- Платёжные ссылки в электронных письмах или сообщениях
- Глубокие ссылки в мобильных приложениях
Запросы транзакций (интерактивные)
Запросы транзакций обеспечивают сложные взаимодействия, позволяя кошельку связываться с сервером для формирования любой транзакции Solana. Это открывает расширенные варианты использования помимо простых переводов.
solana:https://merchant.com/api/payment
Варианты использования:
- Минтинг NFT в точках продаж
- Динамическое ценообразование и скидки
- Многоэтапные DeFi-транзакции
- Интеграция программ лояльности
- Пользовательская бизнес-логика
Ключевые преимущества
Для разработчиков
- Стандартный протокол: одна реализация работает со всеми кошельками Solana
- Независимость от фреймворков: используйте с любым веб-фреймворком или мобильной платформой
- Типобезопасность: полная поддержка TypeScript в JavaScript SDK
- Гибкость: от простых переводов до сложных многоинструкционных транзакций
Для пользователей
- Быстро: транзакции подтверждаются менее чем за секунду
- Дёшево: средняя стоимость $0,0005 за транзакцию
- Безопасно: без посредников или сторонних обработчиков платежей
- Универсально: работает с любым кошельком Solana
Для продавцов
- Без комиссий: Прямые платежи без комиссий за обработку
- В реальном времени: Мгновенное подтверждение и расчёт
- Глобально: Принимайте платежи из любой точки мира
- Компонуемость: Интегрируйтесь с протоколами DeFi и маркетплейсами NFT
Техническая архитектура
Схема URL
Solana Pay использует пользовательскую схему URL solana:, которая работает в
веб-браузерах и мобильных операционных системах:
- Веб: URL могут использоваться как ссылки или кодироваться в QR-коды
- Мобильные устройства: Интеграция через deep linking с приложениями кошельков
- Десктоп: Обработчики протоколов для бесшовного запуска кошелька
JavaScript SDK
SDK @solana/pay (построенный на @solana/kit) предоставляет:
- Фабрики клиентов:
createMerchantClient,createWalletClient,createSolanaPayClientдля компонуемых платёжных потоков - Кодирование/парсинг URL:
encodeURL,parseURLдля URL Solana Pay - Создание переводов:
createTransferдля инструкций оплаты SOL и SPL-токенов - Валидация платежей:
findReference,validateTransfer,watchReferenceдля обнаружения и проверки платежей - QR-коды: Встроенный
createQRдля генерации сканируемых платёжных кодов - Плагины Kit:
solanaPayMerchant(),solanaPayWallet()для композиции с другими плагинами@solana/kit
Интеграция кошелька
Поддерживающие кошельки реализуют:
- Обработку и парсинг схемы URL
- Композицию и валидацию транзакций
- Потоки подтверждения пользователя
- Трансляцию и мониторинг транзакций
Примеры платёжных потоков
Из веб-приложения в мобильный кошелёк
- Веб-приложение генерирует QR-код с URL Solana Pay
- Пользователь сканирует QR-код приложением кошелька
- Кошелёк парсит URL и показывает детали платежа
- Пользователь подтверждает платёж в кошельке
- Кошелёк подписывает и транслирует транзакцию
- Веб-приложение обнаруживает подтверждение платежа
Из веб-приложения в браузерный кошелёк
- Веб-приложение показывает кнопку «Оплатить через Solana»
- Пользователь нажимает кнопку для запуска кошелька
- Расширение кошелька показывает подтверждение платежа
- Пользователь одобряет транзакцию
- Транзакция подписывается и отправляется
- Веб-приложение получает подтверждение платежа
Мобильное приложение — мобильный кошелек
- Мобильное приложение создает платежную ссылку
- Ссылка запускает приложение кошелька
- Кошелек показывает подтверждение платежа
- Пользователь одобряет или отклоняет платеж
- Кошелек возвращается в исходное приложение
- Приложение получает результат платежа
Вопросы безопасности
Для продавцов
- Проверяйте транзакции: Всегда проверяйте детали транзакций в блокчейне
- Используйте ссылки: Включайте уникальные ключи для идентификации платежей
- Валидация на сервере: Рассчитывайте суммы и проверяйте платежи на стороне сервера
- Ограничение частоты запросов: Применяйте соответствующие лимиты к платежным эндпоинтам
Для разработчиков кошельков
- Валидация URL: Проверяйте и санитизируйте все компоненты URL
- Подтверждение пользователя: Всегда показывайте пользователям четкие детали платежа
- Валидация транзакций: Проверяйте содержимое транзакции перед подписанием
- Только HTTPS: Разрешайте только HTTPS URL для запросов транзакций
Паттерны интеграции
Оформление заказа в электронной коммерции
- Клиент добавляет товары в корзину
- Продавец генерирует запрос на оплату с деталями заказа
- Клиент сканирует QR-код или нажимает кнопку оплаты
- Кошелек показывает детализированный чек и итоговую сумму
- Клиент подтверждает платеж
- Продавец проверяет транзакцию и выполняет заказ
Торговая точка
- Кассир вводит сумму продажи
- POS-система отображает QR-код
- Клиент сканирует его мобильным кошельком
- Платеж обрабатывается мгновенно
- Чек печатается автоматически
Услуги по подписке
- Пользователь оформляет подписку на сервис
- Сервис создает график регулярных платежей
- Автоматизированная система генерирует запросы на оплату
- Пользователь одобряет платежи через кошелек
- Сервис отслеживает статус платежей
Лучшие практики
Генерация URL
- Используйте HTTPS для всех эндпоинтов запросов транзакций
- Включайте понятные метки и сообщения
- Генерируйте уникальные ссылки для отслеживания платежей
- Проверяйте все параметры перед созданием URL
Обработка транзакций
- Всегда проверяйте транзакции на стороне сервера
- Используйте соответствующее количество подтверждений для обеспечения безопасности
- Реализуйте правильную обработку ошибок и повторные попытки
- Записывайте события платежей для сверки
Пользовательский опыт
- Предоставляйте четкие подтверждения платежей
- Показывайте обновления статуса транзакций
- Корректно обрабатывайте подключение кошельков
- Поддерживайте несколько вариантов кошельков
Дальнейшие шаги
Готовы интегрировать Solana Pay? Начните с этих руководств:
- Руководство по установке - Настройте SDK и инструменты
- Запросы на перевод - Создавайте простые URL-адреса для платежей
- Запросы транзакций - Создавайте интерактивные процессы
- Примеры интеграции - Смотрите реальные реализации
Ресурсы
- Официальная спецификация - Полная спецификация протокола
- Репозиторий GitHub - Исходный код и примеры
- Руководство по брендингу - Логотипы и брендовые ресурсы
Is this page helpful?