General
Solana Pay

Solana Pay

Solana Pay

Solana Pay

Solana Pay est un framework de paiement open-source qui permet des transactions instantanées, presque sans frais sur Solana.

Déjà adopté par des millions d'entreprises grâce à l'intégration avec Shopify, il transforme le commerce en éliminant complètement les intermédiaires de paiement traditionnels.

Solana Pay standardise les paiements via des URLs. Au lieu d'intégrations complexes de portefeuilles, vous créez des liens simples qui fonctionnent automatiquement avec tous les portefeuilles Solana.

Fonctionnalités principales

Solana Pay se caractérise par :

  • Règlement direct : Les paiements vont directement des portefeuilles des clients à ceux des marchands en SOL ou n'importe quel jeton SPL. Pas de banques, de processeurs ou d'intermédiaires prenant une commission.

  • Finalité instantanée : Les fonds arrivent immédiatement après confirmation grâce au règlement quasi instantané de Solana.

  • Compatibilité universelle : Une seule implémentation fonctionne avec tous les portefeuilles et applications Solana.

Tout cela à travers deux types de requêtes fondamentales :

Requêtes de transfert (paiements simples)

URLs non interactives pour des transactions prédéterminées. Tout est encodé dans l'URL.

text
solana:mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN?amount=0.01&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Parfait pour : les paiements e-commerce, les dons, les abonnements, tout transfert simple de jetons.

Requêtes de transaction (paiements dynamiques)

URLs interactives qui composent des transactions complexes côté serveur.

Le portefeuille fait une requête HTTP à votre serveur, qui renvoie une transaction personnalisée construite avec des données en temps réel.

Parfait pour : les NFT à prix dynamiques, les interactions DeFi, les programmes de fidélité, la logique métier complexe.

Options d'intégration

Solana Pay propose :

  • Codes QR : Paiements instantanés en personne

  • Liens partageables : Fonctionnent sur toutes les plateformes

  • Boutons intégrés : Expériences de paiement fluides

  • Flux personnalisés : Transactions multi-parties, accès conditionnels, signatures partielles

Pourquoi c'est important

Solana Pay remplace toute la pile de paiement traditionnelle par de simples URLs. Au lieu d'intégrer plusieurs portefeuilles et de gérer des flux de transactions complexes, vous créez des liens standardisés qui fonctionnent partout automatiquement.

Flux de paiement traditionnel : Client → Banque → Processeur de paiement → Votre banque → Vous (jours plus tard, moins les frais)

Flux de paiement Solana : Client → Vous (instantanément, frais quasi nuls)

La spécification Solana Pay transforme fondamentalement les paiements blockchain en remplaçant les intégrations complexes de portefeuilles par des URL simples et standardisées qui fonctionnent partout.

Reference

Les références sont l'une des parties les plus importantes de la pile Solana Pay. Comme votre backend ne soumet pas de transactions au réseau mais renvoie uniquement des réponses de transaction que les portefeuilles signent, il n'y a pas de signatures de transaction pour aider à déterminer si le paiement a été effectué.

Une reference est une clé publique unique incluse comme compte non-signataire et non-inscriptible dans les transactions. Elle n'affecte pas le comportement de la transaction mais sert d'identifiant de suivi.

Voici le flux :

  1. Générer une référence unique (clé publique) pour chaque demande de paiement

  2. L'inclure dans vos URL de demande de transaction comme paramètre

  3. L'ajouter à vos instructions de transaction comme compte non-signataire

  4. Suivre la transaction en utilisant la référence

Vous pouvez utiliser la méthode RPC getSignaturesForAddress de Solana ou l'assistant findReference de la bibliothèque @solana/pay pour localiser les transactions contenant votre référence comme ceci :

ts
useEffect(() => {
    // Poll the network for transactions that include the reference address
    const interval = setInterval(async () => {
        try {
            // Find transactions that include the reference address
            const signatureInfo = await findReference(connection, reference, {
                until: mostRecentNotifiedTransaction.current, // Only look for transactions after the most recent one we've found
                finality: "confirmed",
            });
            // Update the most recent transaction with the transaction we just found
            mostRecentNotifiedTransaction.current = signatureInfo.signature;
            // Toast notification
            displayToast(signatureInfo.signature);
        } catch (e) {
            if (e instanceof FindReferenceError) {
                // No transaction found yet, ignore this error
                return;
            }
            console.error("Unknown error", e);
        }
    }, 1000); // Check for new transactions every second
    
    return () => {
        clearInterval(interval);
    };
}, [reference]);

QR Code Generation

Transformez n'importe quelle demande de transaction en code QR scannable en utilisant la bibliothèque @solana/pay :

ts
import { createQR, encodeURL, TransactionRequestURLFields } from '@solana/pay'; 

const urlParams: TransactionRequestURLFields = {
  link: new URL("https://yourapi.com/pay"),
};
const solanaUrl = encodeURL(urlParams);

const qr = createQR(
  solanaUrl,
  400,
  "transparent"
);
Blueshift © 2025Commit: e573eab