ПлатежіПідписки

З 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?

Зміст

Редагувати сторінку