# PayNow-Zahlung annehmen Akzeptieren Sie Online-Zahlungen mit PayNow, einem in Singapur beliebten Geld-Überweisungsdienst. # Checkout > This is a Checkout for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/paynow/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. PayNow ist eine Zahlungsmethode zur [einmaligen Verwendung](https://docs.stripe.com/payments/payment-methods.md#usage). Kundinnen/Kunden zahlen mit PayNow, indem Sie den QR-Code scannen, der ihnen beim Bezahlvorgang angezeigt wird. Nach Abschluss der Zahlung werden die Kundinnen/Kunden wieder an Ihre Website weitergeleitet. Dieser Leitfaden beschreibt die Verwendung von Paynow in Ihrem Online Bezahlvorgang. Für persönliche Zahlungen mit Stripe Terminal finden Sie weitere Informationen unter [Zusätzliche Zahlungsmethoden](https://docs.stripe.com/terminal/payments/additional-payment-methods.md). ## Kompatibilität bestimmen **Unterstützte Unternehmensstandorte**: SG **Unterstützte Währungen**: `sgd` **Transaktionswährungen**: `sgd` **Zahlungsmodus**: Yes **Einrichtungsmodus**: No **Abonnementmodus**: No Für die Unterstützung von Zahlungen per PayNow muss eine Checkout-Sitzung 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 der gleichen Währung und in `sgd` angegeben werden. - Sie können nur einmalige Posten verwenden (Checkout-Sitzungen des Typs PayNow unterstützen keine wiederkehrenden *Abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis)pläne). ## Zahlung annehmen > Dieser Leitfaden beruht auf der grundlegenden Checkout-Integration für die [Annahme einer Zahlung](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout). Das führt Sie durch die Aktivierung von PayNow und zeigt die Unterschiede zwischen dem Akzeptieren von Zahlungen mit dynamischen Zahlungsmethoden und dem manuellen Konfigurieren von Zahlungsmethoden. ### PayNow als Zahlungsmethode aktivieren Führen Sie bei der Erstellung einer neuen [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) folgende Schritte aus: 1. Fügen Sie `paynow` zur Liste der `payment_method_types` hinzu. 1. Stellen Sie sicher, dass alle die `line_items` gleiche Währung verwenden. #### Von Stripe gehostete Seite ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=sgd" \ -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]=paynow" \ --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]=sgd" \ -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]=paynow" \ --data-urlencode "return_url=https://example.com/return" \ -d ui_mode=embedded ``` ### Abwicklung Ihrer Bestellungen Informieren Sie sich über die [Ausführung von Bestellungen](https://docs.stripe.com/checkout/fulfillment.md), nachdem Sie eine Zahlung angenommen haben. ## Ihre Integration testen Wählen Sie beim Testen Ihrer Checkout-Integration PayNow als Zahlungsmethode aus und klicken Sie auf die Schaltfläche zum **Generieren des QR-Codes**. Dadurch wird ein QR-Code erstellt und gerendert. Während des Tests können Sie den QR-Code mit einer QR-Code-Scanner-App auf Ihrem Mobilgerät scannen. Die Nutzlast des QR-Codes enthält eine URL, die Sie zu einer von Stripe gehosteten PayNow-Testzahlungsseite weiterleitet, auf der Sie die Testzahlung entweder autorisieren oder ablehnen können. Im Live-Modus können Sie den QR-Code mit einer bevorzugten Banking-App oder Zahlungs-App scannen, die PayNow unterstützt. ## See also - [Checkout-Ausführung](https://docs.stripe.com/checkout/fulfillment.md) - [Checkout anpassen](https://docs.stripe.com/payments/checkout/customization.md) # Direkt-API > This is a Direkt-API for when payment-ui is direct-api. View the full page at https://docs.stripe.com/payments/paynow/accept-a-payment?payment-ui=direct-api. PayNow ist eine Zahlungsmethode zur [einmaligen Verwendung](https://docs.stripe.com/payments/payment-methods.md#usage). Kundinnen/Kunden verwenden ihre bevorzugte App von teilnehmenden Banken und anderen teilnehmenden Finanzinstituten (keine Banken), um den QR-Code zu scannen, der ihnen beim Bezahlvorgang vorgelegt wird, und die Zahlung abzuschließen. Dieser Leitfaden beschreibt die Verwendung von Paynow in Ihrem Online Bezahlvorgang. Für persönliche Zahlungen mit Stripe Terminal finden Sie weitere Informationen unter [Zusätzliche Zahlungsmethoden](https://docs.stripe.com/terminal/payments/additional-payment-methods.md). ## Stripe einrichten Zunächst benötigen Sie ein Stripe-Konto. [Jetzt registrieren](https://dashboard.stripe.com/register). Verwenden 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] Ein [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) ist ein Objekt, das Ihre Absicht, eine Zahlung von Kundinnen und Kunden einzuziehen, darstellt und den gesamten Zahlungsvorgang dokumentiert. Erstellen Sie zunächst einen PaymentIntent auf Ihrem Server und geben Sie den einzuziehenden Betrag und die Währung an. Falls Sie bereits über eine Integration verfügen, die die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) verwendet, fügen Sie der Liste der [Zahlungsmethoden](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) für Ihren `PaymentIntent` die Zahlungsmethode `paynow` hinzu. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=paynow" \ -d "payment_method_data[type]=paynow" \ -d amount=1099 \ -d currency=sgd ``` ### 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 ``` ## QR-Code von PayNow anzeigen [Clientseitig] In diesem Schritt führen Sie PayNow-Zahlungen auf dem Client mit [Stripe.js](https://docs.stripe.com/payments/elements.md) durch. Binden Sie das Stripe.js-Skript auf Ihrer Bezahlseite ein, indem Sie es dem `head` Ihrer HTML-Datei hinzufügen. #### HTML ```html Checkout ``` Erstellen Sie einen Instanz von Stripe.js mit dem folgenden JavaScript auf Ihrer Bezahlseite. #### JavaScript ```js // Set your publishable key. Remember to change this to your live publishable key in production. // See your keys here: https://dashboard.stripe.com/apikeys var stripe = Stripe('<>'); ``` Verwenden Sie `stripe.confirmPayNowPayment`, um die Zahlung auf der Client-Seite zu bestätigen. #### JavaScript ```js var form = document.getElementById('payment-form'); form.addEventListener('submit', function(event) { event.preventDefault(); // Set the clientSecret here you got in Step 2 stripe.confirmPayNowPayment( clientSecret, ).then((res) => { if(res.paymentIntent.status === 'succeeded') { // The user scanned the QR code } else { // The user closed the modal, cancelling payment } }); }); ``` Nach dem Aufruf von `confirmPayNowPayment` zeigt die Webseite einen QR-Code an. Ihre Kundinnen/Kunden können den QR-Code scannen und die Zahlung mit ihrer bevorzugten Banking-App oder Zahlungs-App authentifizieren. Sie sollten auf der Seite mit dem QR-Code bleiben, bis Stripe [die Bestellung ausführt](https://docs.stripe.com/payments/paynow/accept-a-payment.md#fulfill-order) und Sie das Ergebnis der Zahlung kennen. ## Bestellung ausführen [Serverseitig] [Verwenden Sie eine Methode wie Webhooks](https://docs.stripe.com/payments/payment-intents/verifying-status.md#webhooks), um die *Ausführung* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) der Bestellung abzuwickeln, statt sich darauf zu verlassen, dass Ihre Kundinnen/Kunden zur Zahlungsstatusseite zurückkehren. Wenn ein Kunde/eine Kundin die Zahlung abschließt, wechselt der `PaymentIntent` zu `succeeded` und gibt das *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests)-Ereignis [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) aus. ## Ihre Integration testen Während des Tests können Sie den QR-Code mit einer QR-Code-Scanner-App auf Ihrem Mobilgerät scannen. Die Nutzlast des QR-Codes enthält eine URL, die Sie zu einer von Stripe gehosteten Test-Zahlungsseite von PayNow weiterleitet, auf der Sie die Testzahlung entweder autorisieren oder ablehnen können. Im Live-Modus können Sie den QR-Code mit einer App von teilnehmenden Banken und anderen teilnehmenden Finanzinstituten (keine Banken) scannen.