Zahlungen auf dem Server finalisieren
Hosted Invoice Page isn't compatible with ConfirmationTokens
You can’t yet use the Hosted Invoice Page on a PaymentIntent or SetupIntent that you first confirmed using a ConfirmationToken. This applies if you intend to use ConfirmationTokens to confirm a PaymentIntent or SetupIntent from a Subscription, and you need to collect payment asynchronously through the Hosted Invoice Page after the initial confirmation fails.
Mit dem Payment Element können Sie mehrere Zahlungsmethoden mithilfe einer einzigen Integration akzeptieren. Diese Integration erstellt einen nutzerdefinierten Zahlungsablauf, bei dem Sie das Payment Element rendern, den PaymentIntent erstellen und die Zahlung von Ihrem Server aus bestätigen.
Stripe einrichtenServerseitig
Erstellen Sie zunächst ein Stripe-Konto oder melden Sie sich an.
Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen:
Zahlungsmethoden aktivieren
Vorsicht
Stripe unterstützt zurzeit kein BLIK für diesen Integrationspfad.
Zeigen Sie Ihre Einstellungen für Zahlungsmethoden an und aktivieren Sie die Zahlungsmethoden, die Sie unterstützen möchten. Sie müssen mindestens eine Zahlungsmethode aktiviert haben, um einen PaymentIntent zu erstellen.
Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden, mit denen Sie mehr Kund/innen erreichen können. Wir empfehlen jedoch, zusätzliche Zahlungsmethoden zu aktivieren, die für Ihr Unternehmen und Ihre Kund/innen relevant sind. Informationen zur Unterstützung von Produkten und Zahlungsmethoden finden Sie auf der Seite Integrationsoptionen für Zahlungsmethoden und der Preisseite für Gebühren.
Zahlungsdetails erfassenClient-seitig
Sie können nun mit dem Payment Element Zahlungsdetails auf dem Client erfassen. Das Payment Element ist eine vorgefertigte UI-Komponente, die die Erfassung von Zahlungsdaten für eine Vielzahl von Zahlungsmethoden vereinfacht.
Das Payment Element enthält einen iFrame, der Zahlungsinformationen über eine HTTPS-Verbindung sicher an Stripe sendet. Vermeiden Sie es, das Payment Element in einem anderen iFrame zu platzieren, da einige Zahlungsmethoden die Weiterleitung an eine andere Seite zur Zahlungsbestätigung verlangen.
Die Adresse der Bezahlseite muss mit https://
beginnen, nicht mit http://
, damit Ihre Integration funktioniert. Sie können Ihre Integration ohne HTTPS testen. Denken Sie jedoch daran, sie zu aktivieren, wenn Sie bereit sind, Live-Zahlungen zu akzeptieren.
Das Payment Element rendert ein dynamisches Formular, mit dem Ihr/e Kund/in eine Zahlungsmethode auswählen kann. Das Formular erfasst automatisch alle notwendigen Zahlungsdetails für die vom Kunden/von der Kundin ausgewählte Zahlungsmethode.
Sie können das Payment Element an das Design Ihrer Website anpassen, indem Sie beim Erstellen des Elements
-Anbieters das Erscheinungs-Objekt an options
übergeben.
Adressen einholen
Standardmäßig erfasst das Payment Element nur die erforderlichen Angaben zur Rechnungsadresse. Verwenden Sie das Address Element, um die vollständige Rechnungsadresse (z. B. zur Berechnung der Steuer für digitale Waren und Dienstleistungen) oder die Versandadresse einer Kundin/eines Kunden zu erfassen.
ConfirmationToken erstellenClientseitig
Use createPaymentMethod through a legacy implementation
If you’re using a legacy implementation, you might be using the information from stripe.createPaymentMethod
to finalize payments on the server. While we encourage you to follow this guide to Migrate to Confirmation Tokens you can still access our old documentation to Finalize payments on the server
Wenn der Kunde/die Kundin ihr Zahlungsformular übermittelt, rufen Sie stripe.createConfirmationToken
auf, um ein ConfirmationToken zu erstellen, das zur zusätzlichen Validierung oder als zusätzliche Geschäftslogik vor der Zahlungsbestätigung an Ihren Server gesendet wird.
Durch Bestätigung des PaymentIntent wird eine PaymentMethod generiert. Sie können die payment_method-ID aus der PaymentIntent- Bestätigungsantwort lesen.
Vorsicht
Sie müssen das erstellte ConfirmationTokensofort verwenden, um einen PaymentIntent zu bestätigen. Wird es nicht verwendet, läuft es nach 12 Stunden ab.
Zahlung erstellen und an Stripe übermittelnServerseitig
Wenn der Kunde/die Kundin sein/ihr Zahlungsformular absendet, verwenden Sie einen PaymentIntent, um die Bestätigung und den Zahlungsvorgang zu vereinfachen. Erstellen Sie einen PaymentIntent auf Ihrem Server, wobei ein amount
und eine currency
angegeben werden. In der neuesten Version der API ist die Angabe des Parameters automatic_payment_methods
optional, da Stripe die Funktion standardmäßig aktiviert. Sie können Zahlungsmethoden über das Dashboard verwalten. Stripe handhabt die Rückgabe geeigneter Zahlungsmethoden basierend auf Faktoren wie Betrag, Währung und Zahlungsablauf der Transaktion. Um zu verhindern, dass böswillige Kunden/Kundinnen ihre eigenen Preise wählen, sollten Sie den Preis immer auf der Serverseite (einer vertrauenswürdigen Umgebung) festlegen und nicht auf dem Client.
Sie können das von Ihrem Client gesendete ConfirmationToken verwenden, um den PaymentIntent in einer einzigen Anfrage zu erstellen und zu bestätigen.
const stripe = require("stripe")(
); const express = require('express'); const app = express(); app.set('trust proxy', true); app.use(express.json()); app.use(express.static(".")); app.post('/create-confirm-intent', async (req, res) => { try { const intent = await stripe.paymentIntents.create({ confirm: true, amount: 1099, currency: 'usd', // In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, confirmation_token: req.body.confirmationTokenId, // the ConfirmationToken ID sent by your client }); res.json({ client_secret: intent.client_secret, status: intent.status }); } catch (err) { res.json({ error: err }) } }); app.listen(3000, () => { console.log('Running on port 3000'); });"sk_test_4eC39HqLyjWDarjtT1zdp7dc"
Nächste Aktionen bearbeitenClientseitig
Wenn der PaymentIntent zusätzliche Aktionen von den Kundinnen/Kunden verlangt, wie z. B. die Authentifizierung mit 3D Secure oder die Weiterleitung an eine andere Website, müssen Sie diese Aktionen auslösen. Mit stripe.handleNextAction
lösen Sie die Nutzeroberfläche für die Bearbeitung von Kundenaktionen und den Abschluss der Zahlung aus.