Принимайте платежи с Pay.sh
Вы можете принимать платежи по API-запросам через Pay.sh, настроив Pay-сервер. Установите Pay с помощью:
brew install pay
или
npm install -g @solana/pay
Проверьте установку с помощью:
pay --version
Инструментарий автоматически настроит ваш адрес. Выполните следующую команду для настройки и пополнения кошелька:
pay setup
Настройка демо-сервера
Вы можете начать принимать платежи, запустив сервер. Посмотрите демо-сервер в действии с помощью:
pay server demo
Это выполняет два действия: запускает рабочий Pay-сервер, к которому можно
обращаться через HTTP-запросы, и создаёт файл pay-demo.yml в вашей текущей
директории.
Все маршруты API настраиваются через YAML-конфигурацию endpoints. Чтобы
принимать платежи, необходимо добавить атрибут metering:. Маршрут
/api/v1/reports/usage уже настроен в качестве примера:
endpoints:- method: GETpath: "api/v1/reports/usage"resource: "reports"description: "Usage report — flat fee, no splits."metering:dimensions:- direction: usageunit: requestsscale: 1tiers:- price_usd: 0.01
Вы можете проверить работу платежей, выполнив следующую команду в качестве клиента в другом терминале:
pay --sandbox curl http://127.0.0.1:1402/api/v1/reports/usage
Узнайте больше о настройке тарификации в документации Pay.sh: Разработка с Pay > Тарификация
Узнайте больше о настройке Pay.sh в продакшене в документации Pay.sh по конфигурации.
Создавайте подписки с помощью Pay.sh
Вы можете настроить подписки через Pay.sh, установив Pay-клиент на своём устройстве или настроив Pay-сервер. Установите Pay с помощью:
brew install pay
или
npm install -g @solana/pay
Проверьте установку с помощью:
pay --version
Инструментальная цепочка автоматически настроит ваш адрес. Выполните следующую команду для настройки и пополнения вашего кошелька:
pay setup
Подписки в качестве клиента
Пользователи подписываются на API-эндпоинты, защищённые подпиской, вызывая pay
как обычно. API должен передавать детали подписки в первоначальном ответе
402 Status. Pay обрабатывает подписку автоматически, включая вызов инструкций
в программе Solana SPL Subscriptions.
Пользователи могут управлять своими подписками с помощью следующих команд:
pay subscriptions # default: list + show available subcommandspay subscriptions list # same, scriptablepay subscriptions list --network mainnetpay subscriptions list --json
Подробнее об управлении подписками в качестве пользователя можно узнать в Pay.sh > Использование Pay > Документация по управлению подписками.
Управление подписками в качестве провайдера (демо)
Pay-серверы позволяют настраивать подписчиков и их подписки для каждого эндпоинта. Ниже приведён пример эндпоинта с использованием pay, который вы можете опробовать в своём проекте:
# monthly.ymlname: Subscriptions Examplesubdomain: subscriptions-exampletitle: "Subscription Example"description: "Demo Subscriptions"category: ai_mlversion: v1routing:type: respondoperator:currencies:usd: ["USDC", "USDT", "CASH"]network: "localnet"fee_payer: truechallenge_binding_secret: d858d9104afd728f58a1f73d806dd75d8f32ebd37c9707145816b490e8631d41# insert your own challenge_binding_secret here. use `openssl rand -hex 32`endpoints:- method: GETpath: "api/v1/pro/feed"resource: "pro-feed"description: "Pro feed — monthly subscription, 30-day billing period."subscription:period: "30d"price_usd: 9.99currency: USDCplan_id_numeric: 1
Pay управляет подписками с помощью атрибута subscription: в своей
YAML-спецификации endpoints. Это отличает его от атрибута metering: для
эндпоинтов с оплатой за использование.
Запуск сервера в приведённом выше примере создаёт эндпоинт api/v1/pro/feed,
который требует от пользователя регулярных платежей в размере 9,99 USDC каждые
30 дней.
Вы можете опробовать это, выполнив следующую команду:
pay server start monthly.yml
Выполнение этой команды предложит вам создать план. Это создаёт план и обновляет yml-файл. Если вы планируете использовать его повторно, запомните адрес плана и укажите его в конфигурации при внесении изменений.
Вы можете проверить работу подписок, выполнив следующие команды от имени клиента в другом терминале:
# First call — activates the subscription, $9.99 USDC charge settles.pay --sandbox curl http://127.0.0.1:1402/api/v1/pro/feed# Same call within 30 days — no payment prompt, just the response.pay --sandbox curl http://127.0.0.1:1402/api/v1/pro/feed
В ответ вы должны увидеть статус OK, как показано ниже:
{ "status": "ok" }
Подробнее об управлении подписками на Pay-сервере можно узнать в документации Pay.sh > Building with Pay > Subscriptions > YAML Specification docs.
Is this page helpful?