Puoi configurare gli abbonamenti tramite Pay.sh impostando un client Pay sul tuo dispositivo o configurando un server Pay. Installa Pay con:
brew install pay
oppure
npm install -g @solana/pay
Verifica l'installazione con:
pay --version
La toolchain configurerà automaticamente il tuo indirizzo. Esegui il seguente comando per configurare e ricaricare il tuo wallet:
pay setup
Abbonamenti come client
Gli utenti si abbonano agli endpoint API con accesso a pagamento richiamando pay
come di consueto. Spetta all'API inviare i dettagli dell'abbonamento nella
risposta iniziale 402 Status. Pay gestisce l'abbonamento automaticamente,
inclusa l'invocazione delle istruzioni sul Programma Solana SPL Subscriptions.
Gli utenti possono gestire i propri abbonamenti utilizzando i seguenti comandi:
pay subscriptions # default: list + show available subcommandspay subscriptions list # same, scriptablepay subscriptions list --network mainnetpay subscriptions list --json
Per saperne di più sulla gestione degli abbonamenti come utente, consulta la documentazione Pay.sh > Utilizzo di Pay > Gestisci abbonamenti.
Gestione degli abbonamenti come provider (demo)
I server Pay consentono di configurare gli iscritti e i relativi abbonamenti per ciascun endpoint. Di seguito è riportato un esempio di endpoint che utilizza Pay e che puoi provare nel tuo progetto:
# 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 gestisce gli abbonamenti utilizzando l'attributo subscription: nella sua
specifica YAML endpoints. Questo si contrappone all'attributo metering: per
gli endpoint a pagamento per utilizzo.
L'avvio del server nell'esempio precedente crea un endpoint chiamato
api/v1/pro/feed che richiede all'utente di effettuare pagamenti ricorrenti di
9,99 USDC ogni 30 giorni.
Puoi provarlo eseguendo il seguente comando:
pay server start monthly.yml
L'esecuzione di questo comando ti chiederà di creare un piano. Questo crea un piano e aggiorna il file yml. Se intendi utilizzarlo di nuovo, ricorda l'indirizzo del piano e usalo nella tua configurazione mentre apporti le modifiche.
Puoi verificare che le sottoscrizioni funzionino eseguendo i seguenti comandi come client su un altro terminale:
# 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
Dovresti vedere uno stato OK come risposta, come in questo esempio:
{ "status": "ok" }
Puoi saperne di più sulla gestione delle sottoscrizioni su un server Pay tramite la documentazione Pay.sh > Sviluppo con Pay > Sottoscrizioni > Specifiche YAML.
Is this page helpful?