Nutzerdefinierte Zahlungsmethoden hinzufügen
Erfahren Sie, wie Sie nutzerdefinierte Zahlungsmethoden zum Payment Element hinzufügen können.
Verwenden Sie das Payment Element in Verbindung mit der Payment Intents API, um über 50 voreingestellte Zahlungsmethoden sowie Ihre nutzerdefinierten Zahlungsmethoden über eine einzige Integration anzuzeigen. Nachdem Sie Ihre nutzerdefinierte Zahlungsmethode im Dashboard erstellt haben, konfigurieren Sie das Payment Element, um sicherzustellen, dass diese Transaktionen außerhalb von Stripe korrekt verarbeitet und abgeschlossen werden. Sie können diese Transaktionen zu Berichtszwecken in Ihrem Stripe-Konto erfassen.
Note
Bei der Integration eines Drittanbieter-Zahlungsabwicklers sind Sie für die Einhaltung der geltenden rechtlichen Bestimmungen verantwortlich, einschließlich Ihrer Vereinbarung mit Ihrem Zahlungsdienstleister, der geltenden Gesetze usw.
Bevor Sie loslegen
- Erstellen Sie ein Stripe-Konto oder melden Sie sich mit Ihrem bestehenden Konto an.
- Folgen Sie bitte diesem Leitfaden, um die Zahlungsintegration abzuschließen.
Ihre nutzerdefinierten Zahlungsmethode erstellenDashboard
Sie können im Dashboard eine nutzerdefinierte Zahlungsmethode erstellen, indem Sie zu Einstellungen > Zahlungen > Nutzerdefinierte Zahlungsmethoden navigieren. Geben Sie den Namen und das Logo für das Payment Element an, das angezeigt werden soll.
Wahl des richtigen Logos
- Bei Logos mit einem transparenten Hintergrund, berücksichtigen Sie die Hintergrundfarbe des Payment Element auf Ihrer Seite und stellen Sie sicher, dass es auffällt.
- Für Logos mit Hintergrundfüllung fügen Sie bitte bei Bedarf abgerundete Ecken in Ihre Datei ein.
- Wählen Sie eine Logo-Variante, die auf 16 x 16 Pixel verkleinert werden kann. Dies ist oft die eigenständige Logo-Marke für eine Marke.
Nach dem Erstellen der nutzerdefinierten Zahlungsmethode zeigt das Dashboard die ID der nutzerdefinierten Zahlungsmethode (beginnend mit cpmt_) an, die Sie im nächsten Schritt benötigen.
Nutzerdefinierte Arten von Zahlungsmethoden hinzufügenClientseitig
Fügen Sie anschließend den nutzerdefinierten Zahlungsmethoden-Typ zu Ihrer Stripe Elements-Konfiguration hinzu. Geben Sie in Ihrer Datei checkout., in der Sie Stripe Elements initialisieren, die customPaymentMethods an, die zum Payment Element hinzugefügt werden sollen. Geben Sie die nutzerdefinierte Zahlungsmethoden-ID aus dem vorherigen Schritt, den options. und einen optionalen Untertitel an.
const elements = stripe.elements({ // ... customPaymentMethods: [ { id:, options: { type: 'static', subtitle: Optional subtitle, } } ] });'{{CUSTOM_PAYMENT_METHOD_TYPE_ID}}'
Nach dem Laden zeigt das Payment Element Ihre nutzerdefinierte Zahlungsmethode an.

OptionalEingebettete nutzerdefinierte Inhalte anzeigenPreviewClientseitig
Verwenden Sie den eingebetteten Typ, um den Inhalt für Ihre nutzerdefinierte Zahlungsmethode im Payment Element anzuzeigen.

Verwalten Sie Ihre nutzerdefinierten Inhalte mithilfe dieser Rückrufe:
- handleRender: Wird aufgerufen, wenn eine Zahlungsmethode ausgewählt wird, und enthält einen Verweis auf einen Container-DOM-Knoten, in dem Sie Ihre Inhalte rendern können.
- handleDestroy: Wird aufgerufen, wenn die Auswahl einer Zahlungsmethode aufgehoben und Payment Element deaktiviert wird. Führt Bereinigungen durch, z. B. Ereignis-Listener oder ein nutzerdefiniertes SDK zu entfernen.
Security tip
Bitte rendern Sie nur vertrauenswürdige Inhalte innerhalb des Containers, der von handleEmbed bereitgestellt wird. Das Rendern von Transaktionsgebühren, die Sie nicht kontrollieren, insbesondere von einer Nutzerin bzw. einem Nutzer oder einer nicht bereinigten Quelle, kann zu einer Cross-Site-Scripting-Sicherheitslücke (XSS) führen.
Mit Tools wie React-Portalen können Sie Ihre Rendering-Logik in Ihren Anwendungscode integrieren:
import {Elements} from '@stripe/react-stripe-js'; import {loadStripe} from '@stripe/stripe-js'; // Make sure to call `loadStripe` outside of a component’s render to avoid // recreating the `Stripe` object on every render. const stripePromise = loadStripe(); export default function App() { const [embedContainer, setEmbedContainer] = useState(); const options = { customPaymentMethods: [ { id: '{{CUSTOM_PAYMENT_METHOD_TYPE_ID}}', options: { type: 'embedded', subtitle: Embedded payment method, embedded: { handleRender: (container) => { setEmbedContainer(container); }, handleDestroy: () => { setEmbedContainer(null); } } } } ] }; return ( <Elements stripe={stripePromise} options={options}> <CheckoutFormWithPaymentElement /> {embedContainer && createPortal(<EmbeddedCpmContent />, embedContainer)} </Elements> ); };'pk_test_TYooMQauvdEDq54NiTphI7jx'
Übermittlung der Zahlungsmethode handhabenClientseitig
Um Transaktionen mit nutzerdefinierten Zahlungsmethoden außerhalb von Stripe zu verarbeiten, aktualisieren Sie bitte die Funktion handleSubmit, die aufgerufen wird, wenn Nutzer/innen auf Ihrer Website auf die Schaltfläche „Bezahlen“ klicken.
Die Funktion elements.submit() ruft die ausgewählte Art der Zahlungsmethode ab. Beispielsweise können Sie ein Modal anzeigen und die Zahlung dann entweder auf Ihrem eigenen Server verarbeiten oder Ihren Kunden/Ihre Kundin auf eine externe Bezahlseite weiterleiten.
async function handleSubmit(e) { const { submitError, selectedPaymentMethod } = await elements.submit(); if (selectedPaymentMethod ===) { // Process CPM payment on merchant server and handle redirect const res = await fetch("/process-cpm-payment", { method: 'post' }); ... } else { // Process Stripe payment methods ... } }'{{CUSTOM_PAYMENT_METHOD_TYPE_ID}}'
OptionalGeben Sie die Reihenfolge der nutzerdefinierten Zahlungsmethoden anClientseitig
Standardmäßig zeigt das Payment Element die letzten nutzerdefinierten Zahlungsmethoden an. Um die Reihenfolge der Zahlungsmethoden manuell festzulegen, legen Sie die Eigenschaft paymentMethodOrder in der Konfiguration der Optionen fest, wenn Sie Ihre Payment Element-Instanz erstellen.
const paymentElement = elements.create('payment', { // an array of payment method types, including custom payment method types paymentMethodOrder: [...] });
OptionalDie Zahlung in Ihrem Stripe-Konto erfassenServerseitig
Wenn Sie Transaktionen mit nutzerdefinierten Zahlungsmethoden außerhalb von Stripe abwickeln, können Sie die Transaktionsdetails dennoch in Ihrem Stripe-Konto erfassen. Dies kann bei der einheitlichen Berichterstellung und der Erstellung von Backoffice-Workflows, wie der Ausstellung von Belegen oder der Erstellung von Berichten, hilfreich sein.
const stripe = new Stripe(, { apiVersion: '2025-10-29.clover; invoice_partial_payments_beta=v3' }); app.get('/process-cpm-payment', async (req, res) => { const paymentResult = processMyCustomPayment(...) // Create an instance of a custom payment method const paymentMethod = await stripe.paymentMethods.create({ type: 'custom', custom: { type:'sk_test_BQokikJOvBiI2HlWgH4olfQ2', } }); // Report successful payment const paymentRecord = await stripe.paymentRecords.reportPayment({ amount_requested: { value: paymentResult.amount, currency: paymentResult.currency }, payment_method_details: { payment_method: paymentMethod.id }, customer_details: { customer: paymentResult.customer.id }, processor_details: { type: 'custom', custom: { payment_reference: paymentResult.id } }, initiated_at: paymentResult.initiated_at, customer_presence: 'on_session', outcome: 'guaranteed', guaranteed: { guaranteed_at: paymentResult.completed_at } }); // Respond to frontend to finish buying experience return res.json(...) });'{{CUSTOM_PAYMENT_METHOD_TYPE_ID}}'