Zum Hauptinhalt springen

Komponenten-Dokumentation

Dieses Dokument bietet einen umfassenden Überblick über die in der Mileston Payment Client SDK verfügbaren React-Komponenten. Hinweis: Alle Komponenten benötigen den MilestonPaymentProvider, der apikey (Checkout-API-Schlüssel) und businessid per Kontext bereitstellt.


MilestonPaymentProvider

Ein React Context Provider zur Verwaltung von API-Schlüssel und Business-ID. Dieser Provider muss Ihre Komponentenhierarchie umschließen, damit andere Komponenten im SDK darauf zugreifen können.

Verwendung

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

function App() {
return (
<MilestonPaymentProvider
apikey="your-api-key"
businessid="your-business-id"
>
{/* Ihre Anwendungskomponenten */}
</MilestonPaymentProvider>
);
}

Props

Prop NameTypBeschreibung
apikeystringIhr API-Schlüssel für die Authentifizierung.
businessidstringIhre Business-ID zur Identifikation Ihres Geschäfts.
childrenReactNodeDie Kindkomponenten, die den Kontext nutzen.

Hinweise

  • Der Provider muss Ihre gesamte Anwendung oder die Komponenten umschließen, die Zugriff auf apikey und businessid benötigen.
  • Dieser Provider ist für Komponenten wie PayButton, InvoiceCheckout, SubscriptionCheckout usw. erforderlich.

PayButton

Eine React-Komponente zum Starten von Zahlungen. Diese Komponente bietet einen anpassbaren Button, der ein Popup für die Zahlungsabwicklung öffnet.

Verwendung

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

function App() {
return (
<MilestonPaymentProvider
apikey="your-api-key"
businessid="your-business-id"
>
<PayButton
onPaymentComplete={() => console.log("Zahlung abgeschlossen!")}
onPaymentError={(error) => console.error("Zahlungsfehler:", error)}
paymentUrl="https://checkout.mileston.co/payment"
paymentId="payment-id"
paymentType="invoice"
theme="light"
style={{ backgroundColor: "green", color: "white" }}
className="custom-class"
>
Jetzt bezahlen
</PayButton>
</MilestonPaymentProvider>
);
}

Props

Prop NameTypBeschreibung
onPaymentCompletefunctionCallback bei erfolgreicher Zahlung.
onPaymentErrorfunctionCallback bei Zahlungsfehlern.
paymentUrlstringURL der Zahlungsseite.
paymentIdstringID der Zahlung (z.B. Rechnung, Zahlungslink).
paymentTypestringZahlungsart (z.B. "invoice", "payment-link", "recurring").
themestringTheme für das Zahlungs-Popup (z.B. "light", "dark").
styleobjectBenutzerdefinierte Stile für den Button.
classNamestringCSS-Klasse für den Button.
childrenReactNodeInhalt des Buttons (z.B. "Jetzt bezahlen").

Hinweise

  • Der MilestonPaymentProvider muss Ihre Komponentenhierarchie umschließen.
  • Das Aussehen des Buttons kann mit style und className angepasst werden.
  • Mit dem theme-Prop kann das visuelle Theme des Zahlungs-Popups gesetzt werden.

SubscriptionCheckout

Eine React-Komponente für abonnementbasierte Zahlungen. Diese Komponente vereinfacht das Einrichten wiederkehrender Zahlungen.

Verwendung

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

<MilestonPaymentProvider apikey="your-api-key" businessid="your-business-id">
<SubscriptionCheckout
businessName="Mein Unternehmen"
businessLogo="https://example.com/logo.png"
plan={{
name: "Premium-Tarif",
description: "Zugang zu allen Premium-Funktionen",
amount: 19.99,
currency: "USD",
interval: "monthly",
intervalCount: 1,
}}
walletConnectButtonText="Mit Wallet abonnieren"
qrCodeButtonText="Abo-QR generieren"
cardButtonText="Mit Karte abonnieren"
buttonClassName="custom-button-class"
dialogTitle="Kartenabonnement"
dialogDescription="Richten Sie Ihre wiederkehrende Zahlung sicher ein"
className="custom-class"
footerText="Danke für Ihr Abonnement!"
cancelText="Sie können Ihr Abonnement jederzeit kündigen"
paymentLinkId="subscription123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Wallet-Abo-Zahlung abgeschlossen")
}
onWalletConnectPaymentError={(error) =>
console.error("Wallet-Abo-Zahlungsfehler:", error)
}
onQrCodePaymentComplete={() =>
console.log("QR-Code-Abo-Zahlung abgeschlossen")
}
onQrCodePaymentError={(error) =>
console.error("QR-Code-Abo-Zahlungsfehler:", error)
}
onCardPaymentComplete={() =>
console.log("Karten-Abo-Zahlung abgeschlossen")
}
onCardPaymentError={(error) =>
console.error("Karten-Abo-Zahlungsfehler:", error)
}
amount={19.99}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Props

Prop NameTypBeschreibung
businessNamestringName des Unternehmens.
businessLogostringURL des Unternehmenslogos.
planobjectDetails zum Abonnementplan.
plan.namestringName des Plans.
plan.descriptionstringBeschreibung des Plans.
plan.amountnumberBetrag des Abonnements.
plan.currencystringWährung (z.B. USD, EUR).
plan.intervalstringAbrechnungsintervall (z.B. täglich, monatlich, jährlich).
plan.intervalCountnumberAnzahl der Intervalle zwischen Abrechnungen (z.B. 1 für monatlich).
walletConnectButtonTextstringText für den Wallet Connect Button.
qrCodeButtonTextstringText für den QR-Code Button.
cardButtonTextstringText für den Karten-Button.
buttonClassNamestringCSS-Klasse für die Buttons.
dialogTitlestringTitel für den Kartenzahlungsdialog.
dialogDescriptionstringBeschreibung für den Kartenzahlungsdialog.
classNamestringCSS-Klasse für die Hauptkomponente.
footerTextstringFußzeilentext für die Komponente.
cancelTextstringText für die Kündigungsnachricht.
paymentLinkIdstringID des Zahlungslinks.
envstringUmgebung (z.B. test, production).
onWalletConnectPaymentCompletefunctionCallback für erfolgreiche Wallet Connect Zahlungen.
onWalletConnectPaymentErrorfunctionCallback für Wallet Connect Fehler.
onQrCodePaymentCompletefunctionCallback für erfolgreiche QR-Code Zahlungen.
onQrCodePaymentErrorfunctionCallback für QR-Code Fehler.
onCardPaymentCompletefunctionCallback für erfolgreiche Kartenzahlungen.
onCardPaymentErrorfunctionCallback für Kartenfehler.
amountnumberAbonnementbetrag.
recipientWalletAddressstringWallet-Adresse des Empfängers.

Hinweise

  • Nutzen Sie diese Komponente für ein effizientes Abonnementmanagement.
  • Die Details des Abonnementplans können über das plan-Prop angepasst werden.
  • Die recipientWalletAddress muss gültig sein, um Zahlungsfehler zu vermeiden.
  • Mit dem cancelText-Prop können Sie eine Kündigungsnachricht anzeigen.

InvoiceCheckout

Eine React-Komponente für rechnungsbasierte Zahlungen. Ideal für einmalige Zahlungen.

Verwendung

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

<MilestonPaymentProvider apikey="your-api-key" businessid="your-business-id">
<InvoiceCheckout
businessName="Mein Unternehmen"
businessLogo="https://example.com/logo.png"
currency="USD"
description="Rechnung #12345"
walletConnectButtonText="Wallet verbinden & bezahlen"
qrCodeButtonText="Zahlungs-QR generieren"
cardButtonText="Mit Karte bezahlen"
buttonClassName="custom-button-class"
dialogTitle="Rechnung bezahlen"
dialogDescription="Schließen Sie Ihre Zahlung sicher ab"
className="custom-class"
footerText="Danke für Ihr Vertrauen!"
paymentLinkId="invoice123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Wallet-Zahlung abgeschlossen")
}
onWalletConnectPaymentError={(error) =>
console.error("Wallet-Zahlungsfehler:", error)
}
onQrCodePaymentComplete={() => console.log("QR-Code-Zahlung abgeschlossen")}
onQrCodePaymentError={(error) =>
console.error("QR-Code-Zahlungsfehler:", error)
}
onCardPaymentComplete={() => console.log("Kartenzahlung abgeschlossen")}
onCardPaymentError={(error) =>
console.error("Kartenzahlungsfehler:", error)
}
amount={200}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Props

Prop NameTypBeschreibung
businessNamestringName des Unternehmens.
businessLogostringURL des Unternehmenslogos.
currencystringWährung (z.B. USD).
descriptionstringBeschreibung der Rechnung.
walletConnectButtonTextstringText für den Wallet Connect Button.
qrCodeButtonTextstringText für den QR-Code Button.
cardButtonTextstringText für den Karten-Button.
buttonClassNamestringCSS-Klasse für die Buttons.
dialogTitlestringTitel für den Kartenzahlungsdialog.
dialogDescriptionstringBeschreibung für den Kartenzahlungsdialog.
classNamestringCSS-Klasse für die Hauptkomponente.
footerTextstringFußzeilentext für die Komponente.
paymentLinkIdstringID des Zahlungslinks.
envstringUmgebung (z.B. test, production).
onWalletConnectPaymentCompletefunctionCallback für erfolgreiche Wallet Connect Zahlungen.
onWalletConnectPaymentErrorfunctionCallback für Wallet Connect Fehler.
onQrCodePaymentCompletefunctionCallback für erfolgreiche QR-Code Zahlungen.
onQrCodePaymentErrorfunctionCallback für QR-Code Fehler.
onCardPaymentCompletefunctionCallback für erfolgreiche Kartenzahlungen.
onCardPaymentErrorfunctionCallback für Kartenfehler.
amountnumberRechnungsbetrag.
recipientWalletAddressstringWallet-Adresse des Empfängers.

Hinweise

  • Nutzen Sie diese Komponente für einmalige Zahlungen wie Rechnungen.
  • Die recipientWalletAddress muss gültig sein, um Zahlungsfehler zu vermeiden.
  • Das Aussehen und Verhalten kann über die bereitgestellten Props angepasst werden.

PaymentLinkCheckout

Eine React-Komponente für zahlungslinkbasierte Zahlungen. Nützlich, um Zahlungslinks für Kunden zu generieren.

Verwendung

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

<MilestonPaymentProvider apikey="your-api-key" businessid="your-business-id">
<PaymentLinkCheckout
businessName="Mein Unternehmen"
businessLogo="https://example.com/logo.png"
bannerImage="https://example.com/banner.png"
title="Zahlungsanforderung"
currency="USD"
description="Bezahlen Sie Ihre Bestellung"
walletConnectButtonText="Wallet verbinden & bezahlen"
qrCodeButtonText="Zahlungs-QR generieren"
cardButtonText="Mit Karte bezahlen"
buttonClassName="custom-button-class"
dialogTitle="Sicher bezahlen"
dialogDescription="Schließen Sie Ihre Zahlung sicher ab"
className="custom-class"
footerText="Danke für Ihre Zahlung!"
paymentLinkId="payment123"
env="test"
onWalletConnectPaymentComplete={() =>
console.log("Wallet-Zahlung abgeschlossen")
}
onWalletConnectPaymentError={(error) =>
console.error("Wallet-Zahlungsfehler:", error)
}
onQrCodePaymentComplete={() => console.log("QR-Code-Zahlung abgeschlossen")}
onQrCodePaymentError={(error) =>
console.error("QR-Code-Zahlungsfehler:", error)
}
onCardPaymentComplete={() => console.log("Kartenzahlung abgeschlossen")}
onCardPaymentError={(error) =>
console.error("Kartenzahlungsfehler:", error)
}
amount={100}
recipientWalletAddress="0x123456789abcdef"
/>
</MilestonPaymentProvider>;

Props

Prop NameTypBeschreibung
businessNamestringName des Unternehmens.
businessLogostringURL des Unternehmenslogos.
bannerImagestringURL des Banners für die Zahlungsseite.
titlestringTitel der Zahlungsanforderung.
currencystringWährung (z.B. USD).
descriptionstringBeschreibung der Zahlungsanforderung.
walletConnectButtonTextstringText für den Wallet Connect Button.
qrCodeButtonTextstringText für den QR-Code Button.
cardButtonTextstringText für den Karten-Button.
buttonClassNamestringCSS-Klasse für die Buttons.
dialogTitlestringTitel für den Kartenzahlungsdialog.
dialogDescriptionstringBeschreibung für den Kartenzahlungsdialog.
classNamestringCSS-Klasse für die Hauptkomponente.
footerTextstringFußzeilentext für die Komponente.
paymentLinkIdstringID des Zahlungslinks.
envstringUmgebung (z.B. test, production).
onWalletConnectPaymentCompletefunctionCallback für erfolgreiche Wallet Connect Zahlungen.
onWalletConnectPaymentErrorfunctionCallback für Wallet Connect Fehler.
onQrCodePaymentCompletefunctionCallback für erfolgreiche QR-Code Zahlungen.
onQrCodePaymentErrorfunctionCallback für QR-Code Fehler.
onCardPaymentCompletefunctionCallback für erfolgreiche Kartenzahlungen.
onCardPaymentErrorfunctionCallback für Kartenfehler.
amountnumberZahlungsbetrag.
recipientWalletAddressstringWallet-Adresse des Empfängers.

Hinweise

  • Nutzen Sie diese Komponente, um Zahlungslinks für Kunden zu generieren.
  • Das Aussehen der Zahlungsseite kann mit bannerImage und title angepasst werden.
  • Die recipientWalletAddress muss gültig sein, um Zahlungsfehler zu vermeiden.

PaymentOptions

Eine React-Komponente zur Anzeige verfügbarer Zahlungsoptionen. Sie bietet Tabs für Wallet Connect, QR-Code und Kartenzahlung.

Verwendung

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

function App() {
return (
<PaymentOptions
walletConnectButtonText="Wallet verbinden & bezahlen"
qrCodeButtonText="Zahlungs-QR generieren"
cardButtonText="Mit Karte bezahlen"
buttonClassName="custom-button-class"
dialogTitle="Sicher bezahlen"
dialogDescription="Schließen Sie Ihre Zahlung sicher ab"
defaultTab="wallet"
onTabChange={(tab) => console.log("Ausgewählter Tab:", tab)}
onWalletConnectPaymentComplete={(networkId, tokenId) =>
console.log("Wallet-Zahlung abgeschlossen:", networkId, tokenId)
}
onWalletConnectPaymentError={(error) =>
console.error("Wallet-Zahlungsfehler:", error)
}
onQrCodePaymentComplete={(networkId, tokenId) =>
console.log("QR-Code-Zahlung abgeschlossen:", networkId, tokenId)
}
onQrCodePaymentError={(error) =>
console.error("QR-Code-Zahlungsfehler:", error)
}
onCardPaymentComplete={() => console.log("Kartenzahlung abgeschlossen")}
onCardPaymentError={(error) =>
console.error("Kartenzahlungsfehler:", error)
}
amount={100}
env="test"
recipientWalletAddress="0x123456789abcdef"
paymentType="invoice"
paymentLinkId="payment123"
/>
);
}

Props

Prop NameTypBeschreibung
walletConnectButtonTextstringText für den Wallet Connect Button.
qrCodeButtonTextstringText für den QR-Code Button.
cardButtonTextstringText für den Karten-Button.
buttonClassNamestringCSS-Klasse für die Buttons.
dialogTitlestringTitel für den Kartenzahlungsdialog.
dialogDescriptionstringBeschreibung für den Kartenzahlungsdialog.
defaultTabstringStandardmäßig ausgewählter Tab (z.B. "wallet", "qrcode", "card").
onTabChangefunctionCallback bei Tab-Wechsel.
onWalletConnectPaymentCompletefunctionCallback für erfolgreiche Wallet Connect Zahlungen.
onWalletConnectPaymentErrorfunctionCallback für Wallet Connect Fehler.
onQrCodePaymentCompletefunctionCallback für erfolgreiche QR-Code Zahlungen.
onQrCodePaymentErrorfunctionCallback für QR-Code Fehler.
onCardPaymentCompletefunctionCallback für erfolgreiche Kartenzahlungen.
onCardPaymentErrorfunctionCallback für Kartenfehler.
amountnumberZahlungsbetrag.
envstringUmgebung (z.B. test, production).
recipientWalletAddressstringWallet-Adresse des Empfängers.
paymentTypestringZahlungsart (z.B. "invoice", "payment-link", "recurring").
paymentLinkIdstringID des Zahlungslinks.

Hinweise

  • Nutzen Sie diese Komponente, um Nutzern mehrere Zahlungsoptionen anzubieten.
  • Das Aussehen der Buttons kann mit buttonClassName angepasst werden.
  • Mit defaultTab kann die anfängliche Zahlungsart festgelegt werden.
  • Die recipientWalletAddress muss gültig sein, um Zahlungsfehler zu vermeiden.

SuiWalletProvider

Ein React Context Provider zur Integration von Sui-Blockchain-Wallets. Dieser Provider richtet die nötigen Konfigurationen für Sui-Netzwerke und Wallet-Verbindungen ein.

Verwendung

import SuiWalletProvider from "mileston-payment-client";

function App() {
return (
<SuiWalletProvider>{/* Ihre Anwendungskomponenten */}</SuiWalletProvider>
);
}

Props

Prop NameTypBeschreibung
childrenReactNodeDie Kindkomponenten, die den Wallet-Kontext nutzen.

Hinweise

  • Standardmäßig ist das Netzwerk auf testnet gesetzt, aber auch mainnet wird unterstützt.

Features

  • Netzwerkkonfiguration: Konfiguriert Sui-Netzwerke (testnet und mainnet) mit createNetworkConfig.
  • Auto-Verbindung: Verbindet sich automatisch mit der Wallet beim Initialisieren.
  • Query Management: Nutzt QueryClientProvider für Query- und Cache-Management.

WalletConnectPayment

Eine React-Komponente für Zahlungen via WalletConnect. Unterstützt mehrere Blockchains und Tokens.

Verwendung

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

function App() {
return (
<WalletConnectPayment
onPaymentComplete={(networkId, tokenId) =>
console.log("Zahlung abgeschlossen:", networkId, tokenId)
}
onPaymentError={(error) => console.error("Zahlungsfehler:", error)}
buttonText="Wallet verbinden & bezahlen"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Props

Prop NameTypBeschreibung
onPaymentCompletefunctionCallback für erfolgreiche Zahlungen.
onPaymentErrorfunctionCallback für Zahlungsfehler.
buttonTextstringText für den Zahlungsbutton.
buttonClassNamestringCSS-Klasse für den Button.
recipientWalletAddressobjectWallet-Adressen für verschiedene Blockchains.
amountnumberZahlungsbetrag.
paymentLinkIdstringID des Zahlungslinks.
envstringUmgebung (z.B. test, production).
paymentTypestringZahlungsart (z.B. invoice, recurring).
userUUIDstringUser-UUID zur Zahlungsnachverfolgung.

Hinweise

  • Unterstützt mehrere Blockchains wie Ethereum, Sui und Solana.
  • Verbindet und verarbeitet Zahlungen automatisch.

QrCodePayment

Eine React-Komponente zum Generieren und Verifizieren von QR-Code-Zahlungen.

Verwendung

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

function App() {
return (
<QrCodePayment
onPaymentComplete={(networkId, tokenId) =>
console.log("Zahlung abgeschlossen:", networkId, tokenId)
}
onPaymentError={(error) => console.error("Zahlungsfehler:", error)}
buttonText="Zahlungs-QR generieren"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Props

Prop NameTypBeschreibung
onPaymentCompletefunctionCallback für erfolgreiche Zahlungen.
onPaymentErrorfunctionCallback für Zahlungsfehler.
buttonTextstringText für den QR-Code-Button.
buttonClassNamestringCSS-Klasse für den Button.
recipientWalletAddressobjectWallet-Adressen für verschiedene Blockchains.
amountnumberZahlungsbetrag.
paymentLinkIdstringID des Zahlungslinks.
envstringUmgebung (z.B. test, production).
paymentTypestringZahlungsart (z.B. invoice, recurring).
userUUIDstringUser-UUID zur Zahlungsnachverfolgung.

Hinweise

  • Generiert einen QR-Code für die Zahlung und prüft die Transaktion per Polling.
  • Unterstützt mehrere Blockchains und Tokens.

CardPayment

Eine React-Komponente für Kartenzahlungen. Sie integriert Onramp-Services zur Zahlungsabwicklung.

Verwendung

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

function App() {
return (
<CardPayment
onPaymentComplete={() => console.log("Zahlung abgeschlossen")}
onPaymentError={(error) => console.error("Zahlungsfehler:", error)}
buttonText="Mit Karte bezahlen"
buttonClassName="custom-class"
recipientWalletAddress={{
eth: "0x123456789abcdef",
sui: "sui-address",
solana: "solana-address",
}}
amount={100}
paymentLinkId="payment123"
env="test"
paymentType="invoice"
userUUID="user-uuid"
/>
);
}

Props

Prop NameTypBeschreibung
onPaymentCompletefunctionCallback für erfolgreiche Zahlungen.
onPaymentErrorfunctionCallback für Zahlungsfehler.
buttonTextstringText für den Zahlungsbutton.
buttonClassNamestringCSS-Klasse für den Button.
recipientWalletAddressobjectWallet-Adressen für verschiedene Blockchains.
amountnumberZahlungsbetrag.
paymentLinkIdstringID des Zahlungslinks.
envstringUmgebung (z.B. test, production).
paymentTypestringZahlungsart (z.B. invoice, recurring).
userUUIDstringUser-UUID zur Zahlungsnachverfolgung.

Hinweise

  • Öffnet ein Popup für Kartenzahlungen über Onramp-Services.
  • Verfolgt den Zahlungsstatus und aktualisiert die UI entsprechend.

SolanaWalletProvider

Ein React Context Provider zur Integration von Solana-Blockchain-Wallets. Dieser Provider richtet die nötigen Konfigurationen für Solana-Netzwerke und Wallet-Verbindungen ein.

Verwendung

import SolanaWalletProvider from "mileston-payment-client";

function App() {
return (
<SolanaWalletProvider env="test">
{/* Ihre Anwendungskomponenten */}
</SolanaWalletProvider>
);
}

Props

Prop NameTypBeschreibung
childrenReactNodeDie Kindkomponenten, die den Wallet-Kontext nutzen.
envstringDie Umgebung (z.B. "test", "prod").

Hinweise

  • Das env-Prop bestimmt, ob der Provider mit Mainnet oder Devnet verbindet.

Features

  • Netzwerkkonfiguration: Konfiguriert Solana-Netzwerke (mainnet und devnet) mit clusterApiUrl.
  • Auto-Verbindung: Verbindet sich automatisch mit der Wallet beim Initialisieren.
  • Wallet-Modal: Bietet ein Modal zur Auswahl und Verbindung von Wallets.