PaiementsAbonnements

Avec Pay.sh

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 subcommands
pay subscriptions list # same, scriptable
pay subscriptions list --network mainnet
pay 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.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 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?

Table des matières

Modifier la page
© 2026 Fondation Solana. Tous droits réservés.