Aller au contenu principal

Documentation des composants

Ce document fournit une vue détaillée des composants React disponibles dans le SDK Client Mileston Payment. Remarque : Tous les composants nécessitent le MilestonPaymentProvider pour fournir apikey (clé API checkout) et businessid via le contexte.


MilestonPaymentProvider

Un provider de contexte React pour gérer la clé API et l'identifiant business. Ce provider doit encapsuler votre arbre de composants pour fournir le contexte nécessaire aux autres composants du SDK.

Utilisation

import { MilestonPaymentProvider } from "mileston-payment-client";

function App() {
return (
<MilestonPaymentProvider
apikey="votre-api-key"
businessid="votre-business-id"
>
{/* Vos composants applicatifs */}
</MilestonPaymentProvider>
);
}

Props

Nom de propTypeDescription
apikeystringVotre clé API pour l'authentification.
businessidstringL'identifiant de votre entreprise.
childrenReactNodeLes composants enfants qui consommeront le contexte.

Remarques

  • Assurez-vous que ce provider encapsule toute votre application ou les composants nécessitant l'accès à la clé API et au business ID.
  • Ce provider est requis pour les composants comme PayButton, InvoiceCheckout, SubscriptionCheckout, etc.

PayButton

Un composant React pour initier des paiements. Ce composant fournit un bouton personnalisable qui ouvre une popup pour traiter les paiements.

Utilisation

import { MilestonPaymentProvider, PayButton } from "mileston-payment-client";

function App() {
return (
<MilestonPaymentProvider
apikey="votre-api-key"
businessid="votre-business-id"
>
<PayButton
onPaymentComplete={() => console.log("Paiement terminé !")}
onPaymentError={(error) => console.error("Erreur de paiement :", error)}
paymentUrl="https://checkout.mileston.co/payment"
paymentId="payment-id"
paymentType="invoice"
theme="light"
style={{ backgroundColor: "green", color: "white" }}
className="custom-class"
>
Payer maintenant
</PayButton>
</MilestonPaymentProvider>
);
}

Props

Nom de propTypeDescription
onPaymentCompletefunctionCallback déclenché à la fin du paiement.
onPaymentErrorfunctionCallback déclenché en cas d'échec du paiement.
paymentUrlstringURL de la page de paiement.
paymentIdstringID du paiement (ex : facture, lien de paiement).
paymentTypestringType de paiement (ex : "invoice", "payment-link", "recurring").
themestringThème de la popup de paiement (ex : "light", "dark").
styleobjectStyles personnalisés pour le bouton.
classNamestringClasse CSS pour le bouton.
childrenReactNodeContenu à afficher dans le bouton (ex : "Payer maintenant").

Remarques

  • Assurez-vous que le MilestonPaymentProvider encapsule votre arbre de composants pour fournir le contexte nécessaire.
  • Personnalisez l'apparence du bouton avec les props style et className.
  • Le prop theme permet de définir le thème visuel de la popup de paiement.

SubscriptionCheckout

Un composant React pour les paiements par abonnement. Il simplifie la mise en place de paiements récurrents.

Utilisation

import {
MilestonPaymentProvider,
SubscriptionCheckout,
} from "mileston-payment-client";

<MilestonPaymentProvider apikey="votre-api-key" businessid="votre-business-id">
<SubscriptionCheckout
businessName="Mon Entreprise"
businessLogo="https://example.com/logo.png"
plan={{
name: "Formule Premium",
description: "Accès à toutes les fonctionnalités premium",
amount: 19.99,
currency: "USD",
interval: "monthly",
intervalCount: 1,
}}
walletConnectButtonText="S'abonner avec Wallet"
qrCodeButtonText="Générer QR Abonnement"
cardButtonText="S'abonner avec Carte"
buttonClassName="custom-button-class"
dialogTitle="Abonnement par carte"
dialogDescription="Configurez votre paiement récurrent via le formulaire sécurisé"
className="custom-class"
footerText="Merci pour votre abonnement !"
cancelText="Vous pouvez annuler votre abonnement à tout moment"
paymentLinkId="subscription123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Paiement abonnement Wallet terminé")
}
onWalletConnectPaymentError={(error) =>
console.error("Erreur Wallet abonnement :", error)
}
onQrCodePaymentComplete={() =>
console.log("Paiement QR abonnement terminé")
}
onQrCodePaymentError={(error) =>
console.error("Erreur QR abonnement :", error)
}
onCardPaymentComplete={() =>
console.log("Paiement carte abonnement terminé")
}
onCardPaymentError={(error) =>
console.error("Erreur carte abonnement :", error)
}
amount={19.99}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Props

Nom de propTypeDescription
businessNamestringNom de l'entreprise.
businessLogostringURL du logo de l'entreprise.
planobjectDétails de l'abonnement.
plan.namestringNom de la formule.
plan.descriptionstringDescription de la formule.
plan.amountnumberMontant de l'abonnement.
plan.currencystringDevise (ex : USD, EUR).
plan.intervalstringIntervalle de facturation (ex : mensuel, annuel).
plan.intervalCountnumberNombre d'intervalles entre chaque facturation.
walletConnectButtonTextstringTexte du bouton Wallet Connect.
qrCodeButtonTextstringTexte du bouton QR Code.
cardButtonTextstringTexte du bouton Carte.
buttonClassNamestringClasse CSS pour styliser les boutons.
dialogTitlestringTitre de la popup de paiement par carte.
dialogDescriptionstringDescription de la popup de paiement par carte.
classNamestringClasse CSS pour le composant principal.
footerTextstringTexte de pied de page du composant.
cancelTextstringMessage d'annulation d'abonnement.
paymentLinkIdstringID du lien de paiement.
envstringEnvironnement (ex : test, production).
onWalletConnectPaymentCompletefunctionCallback pour paiement Wallet Connect réussi.
onWalletConnectPaymentErrorfunctionCallback pour erreur Wallet Connect.
onQrCodePaymentCompletefunctionCallback pour paiement QR Code réussi.
onQrCodePaymentErrorfunctionCallback pour erreur QR Code.
onCardPaymentCompletefunctionCallback pour paiement carte réussi.
onCardPaymentErrorfunctionCallback pour erreur carte.
amountnumberMontant de l'abonnement.
recipientWalletAddressstringAdresse du portefeuille destinataire.

Remarques

  • Utilisez ce composant pour simplifier la gestion des abonnements.
  • Personnalisez les détails de l'abonnement via la prop plan.
  • Vérifiez la validité de recipientWalletAddress pour éviter les échecs de paiement.
  • Le prop cancelText permet d'afficher un message sur l'annulation d'abonnement.

InvoiceCheckout

Un composant React pour les paiements par facture. Idéal pour gérer les paiements ponctuels.

Utilisation

import {
MilestonPaymentProvider,
InvoiceCheckout,
} from "mileston-payment-client";

<MilestonPaymentProvider apikey="votre-api-key" businessid="votre-business-id">
<InvoiceCheckout
businessName="Mon Entreprise"
businessLogo="https://example.com/logo.png"
currency="USD"
description="Facture #12345"
walletConnectButtonText="Connecter Wallet & Payer"
qrCodeButtonText="Générer QR Paiement"
cardButtonText="Payer par Carte"
buttonClassName="custom-button-class"
dialogTitle="Payer la facture"
dialogDescription="Finalisez votre paiement en toute sécurité"
className="custom-class"
footerText="Merci pour votre confiance !"
paymentLinkId="invoice123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Paiement Wallet terminé")
}
onWalletConnectPaymentError={(error) =>
console.error("Erreur Wallet :", error)
}
onQrCodePaymentComplete={() => console.log("Paiement QR terminé")}
onQrCodePaymentError={(error) => console.error("Erreur QR :", error)}
onCardPaymentComplete={() => console.log("Paiement carte terminé")}
onCardPaymentError={(error) => console.error("Erreur carte :", error)}
amount={200}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Props

Nom de propTypeDescription
businessNamestringNom de l'entreprise.
businessLogostringURL du logo de l'entreprise.
currencystringDevise (ex : USD).
descriptionstringDescription de la facture.
walletConnectButtonTextstringTexte du bouton Wallet Connect.
qrCodeButtonTextstringTexte du bouton QR Code.
cardButtonTextstringTexte du bouton Carte.
buttonClassNamestringClasse CSS pour styliser les boutons.
dialogTitlestringTitre de la popup de paiement par carte.
dialogDescriptionstringDescription de la popup de paiement par carte.
classNamestringClasse CSS pour le composant principal.
footerTextstringTexte de pied de page du composant.
paymentLinkIdstringID du lien de paiement.
envstringEnvironnement (ex : test, production).
onWalletConnectPaymentCompletefunctionCallback pour paiement Wallet Connect réussi.
onWalletConnectPaymentErrorfunctionCallback pour erreur Wallet Connect.
onQrCodePaymentCompletefunctionCallback pour paiement QR Code réussi.
onQrCodePaymentErrorfunctionCallback pour erreur QR Code.
onCardPaymentCompletefunctionCallback pour paiement carte réussi.
onCardPaymentErrorfunctionCallback pour erreur carte.
amountnumberMontant de la facture.
recipientWalletAddressstringAdresse du portefeuille destinataire.

Remarques

  • Utilisez ce composant pour les paiements ponctuels (factures).
  • Vérifiez la validité de recipientWalletAddress pour éviter les échecs de paiement.
  • Personnalisez l'apparence et le comportement via les props fournies.

PaymentLinkCheckout

Un composant React pour les paiements via lien de paiement. Idéal pour générer des liens de paiement pour vos clients.

Utilisation

import {
MilestonPaymentProvider,
PaymentLinkCheckout,
} from "mileston-payment-client";

<MilestonPaymentProvider apikey="votre-api-key" businessid="votre-business-id">
<PaymentLinkCheckout
businessName="Mon Entreprise"
businessLogo="https://example.com/logo.png"
bannerImage="https://example.com/banner.png"
title="Demande de paiement"
currency="USD"
description="Payez votre commande"
walletConnectButtonText="Connecter Wallet & Payer"
qrCodeButtonText="Générer QR Paiement"
cardButtonText="Payer par Carte"
buttonClassName="custom-button-class"
dialogTitle="Paiement sécurisé"
dialogDescription="Finalisez votre paiement via le formulaire sécurisé"
className="custom-class"
footerText="Merci pour votre paiement !"
paymentLinkId="payment123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Paiement Wallet terminé")
}
onWalletConnectPaymentError={(error) =>
console.error("Erreur Wallet :", error)
}
onQrCodePaymentComplete={() => console.log("Paiement QR terminé")}
onQrCodePaymentError={(error) => console.error("Erreur QR :", error)}
onCardPaymentComplete={() => console.log("Paiement carte terminé")}
onCardPaymentError={(error) => console.error("Erreur carte :", error)}
amount={100}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Props

Nom de propTypeDescription
businessNamestringNom de l'entreprise.
businessLogostringURL du logo de l'entreprise.
bannerImagestringURL de la bannière pour la page de paiement.
titlestringTitre de la demande de paiement.
currencystringDevise (ex : USD).
descriptionstringDescription de la demande de paiement.
walletConnectButtonTextstringTexte du bouton Wallet Connect.
qrCodeButtonTextstringTexte du bouton QR Code.
cardButtonTextstringTexte du bouton Carte.
buttonClassNamestringClasse CSS pour styliser les boutons.
dialogTitlestringTitre de la popup de paiement par carte.
dialogDescriptionstringDescription de la popup de paiement par carte.
classNamestringClasse CSS pour le composant principal.
footerTextstringTexte de pied de page du composant.
paymentLinkIdstringID du lien de paiement.
envstringEnvironnement (ex : test, production).
onWalletConnectPaymentCompletefunctionCallback pour paiement Wallet Connect réussi.
onWalletConnectPaymentErrorfunctionCallback pour erreur Wallet Connect.
onQrCodePaymentCompletefunctionCallback pour paiement QR Code réussi.
onQrCodePaymentErrorfunctionCallback pour erreur QR Code.
onCardPaymentCompletefunctionCallback pour paiement carte réussi.
onCardPaymentErrorfunctionCallback pour erreur carte.
amountnumberMontant du paiement.
recipientWalletAddressstringAdresse du portefeuille destinataire.

Remarques

  • Utilisez ce composant pour générer des liens de paiement pour vos clients.
  • Personnalisez la page de paiement avec les props bannerImage et title.
  • Vérifiez la validité de recipientWalletAddress pour éviter les échecs de paiement.

PaymentOptions

Un composant React pour afficher les options de paiement disponibles. Il propose des onglets pour Wallet Connect, QR Code et paiement par carte.

Utilisation

import { PaymentOptions } from "mileston-payment-client";

function App() {
return (
<PaymentOptions
walletConnectButtonText="Connecter Wallet & Payer"
qrCodeButtonText="Générer QR Paiement"
cardButtonText="Payer par Carte"
buttonClassName="custom-button-class"
dialogTitle="Paiement sécurisé"
dialogDescription="Finalisez votre paiement via le formulaire sécurisé"
defaultTab="wallet"
onTabChange={(tab) => console.log("Onglet sélectionné :", tab)}
onWalletConnectPaymentComplete={(networkId, tokenId) =>
console.log("Paiement Wallet terminé :", networkId, tokenId)
}
onWalletConnectPaymentError={(error) =>
console.error("Erreur Wallet :", error)
}
onQrCodePaymentComplete={(networkId, tokenId) =>
console.log("Paiement QR terminé :", networkId, tokenId)
}
onQrCodePaymentError={(error) => console.error("Erreur QR :", error)}
onCardPaymentComplete={() => console.log("Paiement carte terminé")}
onCardPaymentError={(error) => console.error("Erreur carte :", error)}
amount={100}
env="test"
recipientWalletAddress="0x123456789abcdef"
paymentType="invoice"
paymentLinkId="payment123"
/>
);
}

Props

Nom de propTypeDescription
walletConnectButtonTextstringTexte du bouton Wallet Connect.
qrCodeButtonTextstringTexte du bouton QR Code.
cardButtonTextstringTexte du bouton Carte.
buttonClassNamestringClasse CSS pour styliser les boutons.
dialogTitlestringTitre de la popup de paiement par carte.
dialogDescriptionstringDescription de la popup de paiement par carte.
defaultTabstringOnglet sélectionné par défaut (ex : "wallet", "qrcode", "card").
onTabChangefunctionCallback lors du changement d'onglet.
onWalletConnectPaymentCompletefunctionCallback pour paiement Wallet Connect réussi.
onWalletConnectPaymentErrorfunctionCallback pour erreur Wallet Connect.
onQrCodePaymentCompletefunctionCallback pour paiement QR Code réussi.
onQrCodePaymentErrorfunctionCallback pour erreur QR Code.
onCardPaymentCompletefunctionCallback pour paiement carte réussi.
onCardPaymentErrorfunctionCallback pour erreur carte.
amountnumberMontant du paiement.
envstringEnvironnement (ex : test, production).
recipientWalletAddressstringAdresse du portefeuille destinataire.
paymentTypestringType de paiement (ex : "invoice", "payment-link", "recurring").
paymentLinkIdstringID du lien de paiement.

Remarques

  • Utilisez ce composant pour proposer plusieurs options de paiement à vos utilisateurs.
  • Personnalisez l'apparence des boutons avec la prop buttonClassName.
  • Le prop defaultTab permet de définir la méthode de paiement sélectionnée par défaut.
  • Vérifiez la validité de recipientWalletAddress pour éviter les échecs de paiement.

SuiWalletProvider

Un provider de contexte React pour intégrer les portefeuilles blockchain Sui. Il configure les réseaux Sui et gère les connexions portefeuille.

Utilisation

import SuiWalletProvider from "mileston-payment-client";

function App() {
return (
<SuiWalletProvider>{/* Vos composants applicatifs */}</SuiWalletProvider>
);
}

Props

Nom de propTypeDescription
childrenReactNodeLes composants enfants qui consommeront le contexte.

Remarques

  • Le réseau par défaut est testnet, mais mainnet est aussi supporté.

Fonctionnalités

  • Configuration réseau : Configure les réseaux Sui (testnet et mainnet) via createNetworkConfig.
  • Connexion automatique : Se connecte automatiquement au portefeuille à l'initialisation.
  • Gestion des requêtes : Utilise QueryClientProvider pour la gestion des requêtes et du cache.

WalletConnectPayment

Un composant React pour gérer les paiements via WalletConnect. Il supporte plusieurs blockchains et tokens.

Utilisation

import { WalletConnectPayment } from "mileston-payment-client";

function App() {
return (
<WalletConnectPayment
onPaymentComplete={(networkId, tokenId) =>
console.log("Paiement terminé :", networkId, tokenId)
}
onPaymentError={(error) => console.error("Erreur de paiement :", error)}
buttonText="Connecter Wallet & Payer"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Props

Nom de propTypeDescription
onPaymentCompletefunctionCallback pour paiement réussi.
onPaymentErrorfunctionCallback pour erreur de paiement.
buttonTextstringTexte du bouton de paiement.
buttonClassNamestringClasse CSS pour styliser le bouton.
recipientWalletAddressobjectAdresses portefeuille pour chaque blockchain.
amountnumberMontant du paiement.
paymentLinkIdstringID du lien de paiement.
envstringEnvironnement (ex : test, production).
paymentTypestringType de paiement (ex : invoice, recurring).
userUUIDstringUUID utilisateur pour le suivi des paiements.

Remarques

  • Supporte plusieurs blockchains comme Ethereum, Sui et Solana.
  • Gère automatiquement la connexion portefeuille et le traitement du paiement.

QrCodePayment

Un composant React pour générer et vérifier des paiements par QR code.

Utilisation

import { QrCodePayment } from "mileston-payment-client";

function App() {
return (
<QrCodePayment
onPaymentComplete={(networkId, tokenId) =>
console.log("Paiement terminé :", networkId, tokenId)
}
onPaymentError={(error) => console.error("Erreur de paiement :", error)}
buttonText="Générer QR Paiement"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Props

Nom de propTypeDescription
onPaymentCompletefunctionCallback pour paiement réussi.
onPaymentErrorfunctionCallback pour erreur de paiement.
buttonTextstringTexte du bouton QR code.
buttonClassNamestringClasse CSS pour styliser le bouton.
recipientWalletAddressobjectAdresses portefeuille pour chaque blockchain.
amountnumberMontant du paiement.
paymentLinkIdstringID du lien de paiement.
envstringEnvironnement (ex : test, production).
paymentTypestringType de paiement (ex : invoice, recurring).
userUUIDstringUUID utilisateur pour le suivi des paiements.

Remarques

  • Génère un QR code pour le paiement et vérifie la transaction par polling.
  • Supporte plusieurs blockchains et tokens.

CardPayment

Un composant React pour gérer les paiements par carte. Il s'intègre avec des services onramp pour traiter les paiements.

Utilisation

import { CardPayment } from "mileston-payment-client";

function App() {
return (
<CardPayment
onPaymentComplete={() => console.log("Paiement carte terminé")}
onPaymentError={(error) => console.error("Erreur carte :", error)}
buttonText="Payer par Carte"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Props

Nom de propTypeDescription
onPaymentCompletefunctionCallback pour paiement carte réussi.
onPaymentErrorfunctionCallback pour erreur carte.
buttonTextstringTexte du bouton de paiement.
buttonClassNamestringClasse CSS pour styliser le bouton.
recipientWalletAddressobjectAdresses portefeuille pour chaque blockchain.
amountnumberMontant du paiement.
paymentLinkIdstringID du lien de paiement.
envstringEnvironnement (ex : test, production).
paymentTypestringType de paiement (ex : invoice, recurring).
userUUIDstringUUID utilisateur pour le suivi des paiements.

Remarques

  • Ouvre une popup pour traiter les paiements carte via des services onramp.
  • Suit le statut du paiement et met à jour l'UI en conséquence.

SolanaWalletProvider

Un provider de contexte React pour intégrer les portefeuilles blockchain Solana. Il configure les réseaux Solana et gère les connexions portefeuille.

Utilisation

import SolanaWalletProvider from "mileston-payment-client";

function App() {
return (
<SolanaWalletProvider env="test">
{/* Vos composants applicatifs */}
</SolanaWalletProvider>
);
}

Props

Nom de propTypeDescription
childrenReactNodeLes composants enfants qui consommeront le contexte.
envstringL'environnement (ex : "test", "prod").

Remarques

  • Le prop env détermine si le provider se connecte au mainnet ou au devnet.

Fonctionnalités

  • Configuration réseau : Configure les réseaux Solana (mainnet et devnet) via clusterApiUrl.
  • Connexion automatique : Se connecte automatiquement au portefeuille à l'initialisation.
  • Wallet Modal : Fournit une modal pour sélectionner et connecter les portefeuilles.