Vous pouvez configurer des abonnements via Pay.sh en installant un client Pay sur votre appareil ou en configurant un serveur Pay. Installez Pay avec :
brew install pay
ou
npm install -g @solana/pay
Vérifiez l'installation avec :
pay --version
La chaîne d'outils configurera votre adresse automatiquement. Exécutez la commande suivante pour configurer et recharger votre portefeuille :
pay setup
Abonnements en tant que client
Les utilisateurs s'abonnent aux endpoints API protégés par abonnement en
invoquant pay normalement. L'API doit envoyer les détails de l'abonnement dans
la réponse 402 Status initiale. Pay gère l'abonnement automatiquement, y
compris l'invocation des instructions sur le programme Solana SPL Subscriptions.
Les utilisateurs peuvent gérer leurs abonnements à l'aide des commandes suivantes :
pay subscriptions # default: list + show available subcommandspay subscriptions list # same, scriptablepay subscriptions list --network mainnetpay subscriptions list --json
Vous pouvez en savoir plus sur la gestion de vos abonnements en tant qu'utilisateur dans la documentation Pay.sh > Utiliser Pay > Gérer les abonnements.
Gestion des abonnements en tant que fournisseur (démo)
Les serveurs Pay permettent de configurer les abonnés et leurs abonnements pour chaque endpoint. Voici un exemple d'endpoint utilisant pay que vous pouvez tester avec votre projet :
# 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 gère les abonnements à l'aide de l'attribut subscription: dans sa
spécification YAML endpoints. Cela s'oppose à l'attribut metering: utilisé
pour les endpoints à la consommation.
Le démarrage du serveur dans l'exemple ci-dessus crée un endpoint appelé
api/v1/pro/feed qui exige que l'utilisateur effectue des paiements récurrents
de 9,99 USDC toutes les 30 jours.
Vous pouvez l'essayer en exécutant la commande suivante :
pay server start monthly.yml
L'exécution de cette commande vous invitera à créer un plan. Cela crée un plan et met à jour le fichier yml. Si vous prévoyez de l'utiliser à nouveau, notez l'adresse du plan et utilisez-la dans votre configuration lors de vos modifications.
Vous pouvez tester le bon fonctionnement des abonnements en exécutant les commandes suivantes en tant que client sur un autre terminal :
# 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
Vous devriez voir un statut OK en réponse, comme ceci :
{ "status": "ok" }
Vous pouvez en savoir plus sur la gestion des abonnements sur un serveur Pay via la documentation Pay.sh > Building with Pay > Subscriptions > YAML Specification docs.
Is this page helpful?