Pay.sh

Приймайте платежі за допомогою 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: GET
path: "api/v1/reports/usage"
resource: "reports"
description: "Usage report — flat fee, no splits."
metering:
dimensions:
- direction: usage
unit: requests
scale: 1
tiers:
- 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 subcommands
pay subscriptions list # same, scriptable
pay subscriptions list --network mainnet
pay subscriptions list --json

Ви можете дізнатися більше про керування підписками як користувач у документації Pay.sh > Використання Pay > Керування підписками.

Керування підписками як провайдер (демо)

Сервери Pay дозволяють налаштовувати підписників та їхні підписки для кожного ендпоінту. Нижче наведено приклад ендпоінту з використанням pay, який ви можете випробувати у своєму проєкті:

# monthly.yml
name: Subscriptions Example
subdomain: subscriptions-example
title: "Subscription Example"
description: "Demo Subscriptions"
category: ai_ml
version: v1
routing:
type: respond
operator:
currencies:
usd: ["USDC", "USDT", "CASH"]
network: "localnet"
fee_payer: true
challenge_binding_secret: d858d9104afd728f58a1f73d806dd75d8f32ebd37c9707145816b490e8631d41
# insert your own challenge_binding_secret here. use `openssl rand -hex 32`
endpoints:
- method: GET
path: "api/v1/pro/feed"
resource: "pro-feed"
description: "Pro feed — monthly subscription, 30-day billing period."
subscription:
period: "30d"
price_usd: 9.99
currency: USDC
plan_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?