GrabPay-Zahlungen annehmen
So akzeptieren Sie Zahlungen per GrabPay, einer gängigen Zahlungsmethode in Südostasien.
Notiz
Abonnements und GrabPay für künftige Zahlungen werden derzeit nicht unterstützt. Wenden Sie sich an den Stripe-Support bei Fragen zu diesen Funktionen.
Bei GrabPay handelt es sich um eine Zahlungsmethode für die einmalige Nutzung. Bei Zahlungen mit GrabPay werden Kund/innen zur Autorisierung der Zahlung von Ihrer Anwendung zu GrabPay geleitet und dann wieder auf Ihre Anwendung zurückgeleitet, wo Sie eine sofortige Benachrichtigung über den Erfolg oder das Fehlschlagen der Zahlung erhalten.
Notiz
Erfahren Sie mehr zur Aktivierung von GrabPay im Dashboard.
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:
Erstellen Sie ein PaymentIntentServerseitig
Ein PaymentIntent stellt Ihre Absicht dar, Zahlungen von Kundinnen und Kunden einzuziehen, und dokumentiert den gesamten Zahlungsvorgang.
Erstellen Sie einen PaymentIntent
auf Ihrem Server und geben Sie den einzuziehenden amount
und die Währung sgd
oder myr
ein. Beachten Sie, dass es keinen Mindestabbuchungsbetrag für GrabPay gibt, sodass der Zahlungsbetrag durchaus so gering wie 1 sein kann. Falls Sie bereits eine Payment Intents-Integration haben, fügen Sie der Liste der Zahlungsmethodentypen grabpay
hinzu.
Client-Geheimnis abrufen
Im PaymentIntent ist ein Client-Geheimnis enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client.
Zahlung an Stripe sendenClientseitig
Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit GrabPay bezahlen, verwenden Sie Stripe.js, um die Zahlungen an Stripe zu übermitteln. Stripe.js 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.
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
Erstellen Sie auf Ihrer Checkout-Seite mit dem folgenden JavaScript eine Instanz von Stripe.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 const stripe = Stripe(
);'pk_test_TYooMQauvdEDq54NiTphI7jx'
Um eine Zahlung auf Client-Seite zu erstellen, fügen Sie die Schaltfläche Pay with GrabPay hinzu und verwenden stripe.
, um die Weiterleitung von Ihrer Seite zu verarbeiten und die Zahlung zu ermöglichen.
<button type="button" id="grabpay-button">Pay with GrabPay</button> <div id="error-message"></div>
const button = document.getElementById('grabpay-button'); button.addEventListener('click', async function() { // By this point, the PaymentIntent should have already been created // Pass the clientSecret of the PaymentIntent to confirmGrabPayPayment stripe.confirmGrabPayPayment(clientSecret, { // Return URL where the customer should be redirected after the authorization return_url: 'https://example.com/checkout/complete', }); });
Übergeben Sie das Client-Geheimnis des in Schritt 2 erstellten PaymentIntent
-Objekts nach stripe.
.
Fügen Sie dieser Funktion außerdem eine return_
hinzu, um das Ziel anzugeben, an das Nutzer/innen weitergeleitet werden, nachdem sie die Zahlung auf der Website von Grab durchgeführt haben.
Wenn Ihr Kunde/Ihre Kundin eine Zahlung übermittelt, leitet Stripe ihn an die return_
weiter und fügt die folgenden URL-Abfrageparameter ein. Die Rückgabeseite kann diese nutzen, um den Status des PaymentIntent abzurufen, damit der Kunde/die Kundin den Zahlungsstatus anzeigen kann.
Wenn Sie die return_
angeben, können Sie auch Ihre eigenen Abfrageparameter für die Verwendung auf der Rückgabeseite anhängen.
Parameter | Beschreibung |
---|---|
payment_ | Die eindeutige ID für den PaymentIntent . |
payment_ | Das Client-Geheimnis des PaymentIntent -Objekts. Bei Abonnementintegrationen wird dieses client_secret auch über confirmation_ im Invoice -Objekt sichtbar gemacht |
Wenn Kundinnen und Kunden auf Ihre Seite weitergeleitet werden, können Sie payment_
nutzen, um den PaymentIntent abzufragen und Ihren Kundinnen und Kunden den Transaktionsstatus anzuzeigen.
<h2>Payment result</h2> <div class="payment-result"> </div> <script> // Check if we're returning from a redirect. const url = new URL(window.location.href); const paymentIntentClientSecret = url.searchParams.get( "paymentIntentClientSecret" ); if (paymentIntentClientSecret) { stripe.retrievePaymentIntent(paymentIntentClientSecret).then(function(result) { const paymentIntent = result.paymentIntent; document.querySelector(".payment-result").textContent = paymentIntent.status; }); } </script>
Integration testen
Beim Testen führt Sie die clientseitige Weiterleitung zu einer von Stripe gehosteten Test-Zahlungsseite von GrabPay, auf der Sie die Testzahlung entweder autorisieren oder ablehnen können.
OptionalEreignisse nach der Zahlung verarbeiten
Stripe übermittelt ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie im Dashboard einen Webhook 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.
Ereignisse empfangen und Geschäftsaktionen ausführen
Es gibt mehrere Möglichkeiten, Geschäftsaktionen zu empfangen und auszuführen.
Manuell
Verwenden Sie das Stripe-Dashboard, um alle Stripe-Zahlungen anzuzeigen, Zahlungsbelege per E-Mail zu senden, Auszahlungen abzuwickeln oder fehlgeschlagene Zahlungen erneut durchzuführen.
Benutzerdefinierter Code
Erstellen Sie einen Webhook-Handler, um Ereignisse zu überwachen und benutzerdefinierte asynchrone Zahlungsabläufe zu erstellen. Mit der Stripe-CLI können Sie Ihre Webhook-Integration lokal testen und Fehler beheben.
Vorgefertigte Apps
Verarbeiten Sie häufige Geschäftsereignisse, wie Automatisierung oder Marketing und Vertrieb durch Integration einer Partneranwendung.
OptionalGrabPay-Weiterleitung manuell verarbeiten
Wir empfehlen, die Verarbeitung von GrabPay-Weiterleitungen und -Zahlungen mit confirmGrabPayPayment
Stripe.js zu überlassen. Sie können Kund/innen aber auch manuell weiterleiten. Gehen Sie dazu wie folgt vor:
- Geben Sie die URL an, an die Ihre Kund/innen weitergeleitet werden, sobald die Zahlung abgeschlossen ist.
- Beim Bestätigen hat der
PaymentIntent
den Statusrequires_
. Der Typ füraction next_
istaction redirect_
.to_ url
{ "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } }, "payment_method_types": [ "grabpay" ], "id": "pi_1G1sgdKi6xqXeNtkldRRE6HT", "object": "payment_intent", "amount": 1099, "confirmation_method": "automatic",
- Leiten Sie Kund/innen an die in der Eigenschaft
next_
angegebene URL weiter.action
const action = intent.next_action; if (action && action.type === 'redirect_to_url') { window.location = action.redirect_to_url.url; }
Bei Abschluss des Bezahlvorgangs werden die Kundinnen/Kunden an das return_
-Ziel weitergeleitet. Die URL-Abfrageparameter payment_
und payment_
sind enthalten, und Sie können Ihre eigenen Abfrageparameter übergeben, wie oben beschrieben.
Unterstützte Währungen
Stripe-Nutzer/innen in Malaysia und Singapur können Zahlungen mit GrabPay von Kund/innen aus dem jeweils anderen Land annehmen. Lesen Sie nachfolgend, welche Währungen unterstützt werden und welche Transaktionslimits GrabPay auferlegt:
Land | Kundenstandort | Unterstützte Währung | Transaktionslimits |
---|---|---|---|
Singapur (SG) | Singapur (SG) | SGD | GrabPay SG |
Malaysia (MY) | Malaysia (MY) | MYR | GrabPay MY |