# Eine Zahlung mit lokalen Karten in Nigeria annehmen # Checkout > This is a Checkout for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/ng-card/accept-a-payment?payment-ui=checkout. > Stripe kann Ihren Kundinnen und Kunden automatisch die relevanten Zahlungsmethoden anzeigen, indem Währungen, Einschränkungen der Zahlungsmethode und andere Parameter ausgewertet werden. > > - Befolgen Sie den Leitfaden [Eine Zahlung akzeptieren](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted), um eine Checkout-Integration zu erstellen, die [dynamische Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) verwendet. - Wenn Sie keine dynamischen Zahlungsmethoden verwenden möchten, befolgen Sie die folgenden Schritte, um die Zahlungsmethoden in Ihrer Checkout-Integration manuell zu konfigurieren. Durch die Integration mit einer Naira-Karte können nigerianische Kundinnen/Kunden mit in Nigeria ausgestellten Karten bezahlen. Lokale Karten bieten einen auf Weiterleitung basierenden Zahlungsablauf. Wenn Kundinnen/Kunden eine Zahlung vornehmen, leitet Stripe sie zur Bezahlseite des lokalen Händlers weiter, um die Zahlung zu authentifizieren und zu autorisieren. Nachdem der Kunde/die Kundin die Zahlung autorisiert hat, leitet Stripe ihn/sie zurück zu Ihrer Website. ## Kompatibilität bestimmen **Unterstützte Unternehmensstandorte**: US **Unterstützte Währungen**: `ngn` **Transaktionswährungen**: `ngn` **Zahlungsmodus**: Yes **Einrichtungsmodus**: Yes **Abonnementmodus**: Yes Für die Unterstützung von Zahlungen mit nigerianischen Zahlungsmethoden muss eine [Checkout-Sitzung](https://docs.stripe.com/payments/checkout/how-checkout-works.md#session) alle folgenden Bedingungen erfüllen: - Die *Preise* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions) für alle Posten müssen in nigerianischen Naira (Währungscode `ngn`) angegeben werden. - Der akzeptierte Mindestbetrag beträgt 500 NGN und der akzeptierte Höchstbetrag 100.000.000 NGN. ## Naira-Kartenzahlung akzeptieren Aktivieren Sie Naira-Karten, indem Sie die folgenden Aktualisierungen an Ihrer Integration vornehmen. Beim Erstellen einer [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) müssen Sie Folgendes tun: - Fügen Sie `ng_card` zur Liste der `payment_method_types` hinzu. - Stellen Sie sicher, dass für alle `line_items` die Währung `ngn` verwendet wird. #### Von Stripe gehostete Seite ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]"=ngn \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d "payment_method_types[0]"=card \ -d "payment_method_types[1]"=ng_card \ --data-urlencode success_url="https://example.com/success" ``` #### Eingebettetes Formular ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]"=ngn \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d "payment_method_types[0]"=card \ -d "payment_method_types[1]"=ng_card \ --data-urlencode return_url="https://example.com/return" \ -d ui_mode=embedded ``` ## Integration testen Wählen Sie beim Testen Ihrer Checkout-Integration **Naira-Zahlungsmethoden als Zahlungsmethode** aus und klicken Sie auf **Bezahlen**. # Direkte API > This is a Direkte API for when payment-ui is direct-api. View the full page at https://docs.stripe.com/payments/ng-card/accept-a-payment?payment-ui=direct-api. Durch die Integration mit einer Naira-Karte können nigerianische Kundinnen/Kunden mit in Nigeria ausgestellten Karten bezahlen. Lokale Karten bieten einen auf Weiterleitung basierenden Zahlungsablauf. Wenn Kundinnen/Kunden eine Zahlung vornehmen, leitet Stripe sie zur Bezahlseite des lokalen Händlers weiter, um die Zahlung zu authentifizieren und zu autorisieren. Nachdem der Kunde/die Kundin die Zahlung autorisiert hat, leitet Stripe ihn/sie zurück zu Ihrer Website. Mithilfe der [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) können Sie Zahlungen von nigerianischen Kundinnen/Kunden mit lokalen Karten und lokalen Zahlungsmethoden annehmen. ## Stripe einrichten [Serverseitig] Zunächst benötigen Sie ein Stripe-Konto. [Registrieren Sie sich jetzt](https://dashboard.stripe.com/register). Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## PaymentIntent erstellen [Serverseitig] Das Objekt [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) stellt die Absicht dar, eine Zahlung von einer Kundin/einem Kunden einzuziehen und verfolgt den Zahlungsvorgang. Um einen `PaymentIntent` zu erstellen, der eine Zahlung mit nigerianischen Zahlungsmethoden annimmt, geben Sie Folgendes an: - Den einzuziehenden Betrag - `ngn` als Währung - `ng_card` in der Liste [payment_method_types](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types). Wenn Sie eine Liste von Zahlungsmethoden führen, die Sie bei der Erstellung eines `PaymentIntent` übergeben, fügen Sie `ng_card` hinzu. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1000000 \ -d currency=ngn \ -d "payment_method_types[]"=ng_card \ -d "payment_method_data[type]"=ng_card ``` ### Client-Geheimnis abrufen Im PaymentIntent ist ein *Client-Geheimnis* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client. #### Einseitige Anwendung Rufen Sie das Client-Geheimnis von einem Endpoint auf Ihrem Server ab, indem Sie die Browser-Funktion `fetch` verwenden. Diese Vorgehensweise funktioniert am besten, wenn es sich bei Ihrer Client-Seite um eine einseitige Anwendung handelt, insbesondere wenn sie mit einem modernen Frontend-Framework wie React erstellt wurde. Erstellen Sie den Server-Endpoint, der das Client-Geheimnis bereitstellt: #### Ruby ```ruby get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end ``` Und dann rufen Sie das Client-Geheimnis mit JavaScript auf der Client-Seite ab: ```javascript (async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })(); ``` #### Serverseitiges Rendering Übergeben Sie das Client-Geheimnis von Ihrem Server an den Client. Diese Vorgehensweise funktioniert am besten, wenn Ihre Anwendung statische Inhalte auf dem Server generiert, bevor sie an den Browser gesendet werden. Fügen Sie das [client_secret](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) in Ihr Bezahlformular ein. Rufen Sie in Ihrem serverseitigen Code das Client-Geheimnis aus dem PaymentIntent ab: #### Ruby ```erb
``` ```ruby get '/checkout' do @intent = # ... Fetch or create the PaymentIntent erb :checkout end ``` ## An lokalen Dienstleister weiterleiten [Clientseitig] Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit Naira card bezahlen, verwenden Sie Stripe.js, um die Zahlungen an Stripe zu übermitteln. [Stripe.js](https://docs.stripe.com/payments/elements.md) ist die grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen. Sie verarbeitet automatisch komplexe Szenarien wie die nachfolgend beschriebene Weiterleitung und ermöglicht die Erweiterung Ihrer Integration durch zusätzliche Zahlungsmethoden. Binden Sie das Stripe.js-Skript in Ihre Bezahlseite ein, indem Sie es im `head` Ihrer HTML-Datei einfügen. ```html Checkout ``` Erstellen Sie auf Ihrer Checkout-Seite mit dem folgenden JavaScript eine Instanz von Stripe.js. ```javascript // Set your publishable key. Remember to change this to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe('<>'); ``` Verwenden Sie das [Client-Geheimnis](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) des `PaymentIntent` und rufen Sie `stripe.confirmPayment` auf, um die Weiterleitung zum lokalen Dienstleister des eingetragenen Händlers zu verarbeiten. Fügen Sie eine `return_url` hinzu, um festzulegen, wohin Stripe Kundinnen/Kunden weiterleitet, nachdem sie ihre Zahlung abgeschlossen haben. ```javascript const form = document.getElementById('payment-form'); form.addEventListener('submit', async function(event) { event.preventDefault(); // Set the clientSecret of the PaymentIntent const { error } = await stripe.confirmPayment({ clientSecret: clientSecret, confirmParams: { payment_method_data: { type: 'ng_card', }, // Return URL where the customer should be redirected after the authorization return_url: `${window.location.href}`, }, }); if (error) { // Inform the customer that there was an error. const errorElement = document.getElementById('error-message'); errorElement.textContent = result.error.message; } }); ``` Die `return_url` verweist auf eine Seite auf Ihrer Website, auf der das Ergebnis der Zahlung angezeigt wird. Durch [Verifizieren des Status](https://docs.stripe.com/payments/payment-intents/verifying-status.md#checking-status) des `PaymentIntent` können Sie festlegen, was angezeigt werden soll. Zur Verifizierung des Status enthält die Stripe-Weiterleitung zu der `return_url` die folgenden URL-Abfrageparameter. Sie können auch Ihre eigenen Abfrageparameter an die `return_url` anhängen. Diese bleiben während des gesamten Weiterleitungsvorgangs bestehen. | Parameter | Beschreibung | | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `payment_intent` | Die eindeutige ID für den `PaymentIntent`. | | `payment_intent_client_secret` | Das [Client-Geheimnis](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) des `PaymentIntent`-Objekts. | ## Integration mit Naira-Zahlungsmethoden testen Testen Sie Ihre Integration für Naira-Zahlungsmethoden mit Ihren Test-API-Schlüsseln, indem Sie die Weiterleitungsseite anzeigen. Sie können die erfolgreiche Zahlung testen, indem Sie die Zahlung auf der Weiterleitungsseite authentifizieren. Der PaymentIntent wechselt von `requires_action` zu `succeeded`. Um den Fall zu testen, dass die Authentifizierung auf Kundenseite nicht erfolgreich ist, verwenden Sie Ihre Test-API-Schlüssel und rufen die Weiterleitungsseite auf. Klicken Sie auf dieser Seite auf **Testzahlung fehlgeschlagen lassen**. Der PaymentIntent wechselt dann von `requires_action` zu `requires_payment_method`. ## Optional: Ereignisse nach der Zahlung verarbeiten Stripe übermittelt ein [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded)-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kund/innen, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs). Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnte der Kunde/die Kundin das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist und böswillige Clients könnten die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass asynchrone Ereignisse überwacht werden, hilft Ihnen dies auch dabei, in Zukunft mehr Zahlungsmethoden zu akzeptieren. Hier erhalten Sie Informationen zu den [Unterschieden zwischen allen unterstützten Zahlungsmethoden](https://stripe.com/payments/payment-methods-guide). - **Manuelles Bearbeiten von Ereignissen im Dashboard** Verwenden Sie das Dashboard, um [Ihre Testzahlungen im Dashboard anzuzeigen](https://dashboard.stripe.com/test/payments), E-Mail-Belege zu senden, Auszahlungen zu bearbeiten oder fehlgeschlagene Zahlungen erneut zu versuchen. - **Erstellen eines benutzerdefinierten Webhooks** [Build a custom webhook](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) handler to listen for events and build custom asynchronous payment flows. Test and debug your webhook integration locally with the Stripe CLI. - **Integrieren einer vorgefertigten App** Bearbeiten Sie häufige Unternehmensereignisse, wie z. B.[Automatisierung](https://stripe.partners/?f_category=automation) oder[Marketing und Vertrieb](https://stripe.partners/?f_category=marketing-and-sales), indem Sie eine Partneranwendung integrieren.