Zahlungen per FPX akzeptieren
So akzeptieren Sie Zahlungen per FPX, einer gängigen Zahlungsmethode in Malaysia.
Vorsicht
Der Inhalt dieses Abschnitts bezieht sich auf ein Legacy-Produkt. Verwenden Sie den Leitfaden Zahlungen akzeptieren für den aktuellsten Integrationspfad. Auch wenn Stripe dieses Produkt jetzt noch unterstützt, kann sich dies ändern, wenn das Produkt nicht mehr unterstützt wird.
Bei FPX handelt es sich um eine Zahlungsmethode für die einmalige Nutzung. Bei Zahlungen mit FPX werden Kundinnen/Kunden zum Senden der Zahlung von Ihrer Website weggeleitet und dann wieder auf Ihre Website zurückgeleitet, wo Sie eine sofortige Benachrichtigung über den Erfolg oder das Fehlschlagen der Zahlung erhalten.
To enable FPX payments:
- Navigate to the Payment methods settings in the Dashboard. If you haven’t already, activate your Stripe account.
- Find FPX under Bank redirects and select Turn on.
- Accept the FPX terms of service.
FPX is only available to merchants based in Malaysia. See payment method support for more information about countries, currencies, and payment methods compatible with Stripe products.
Notiz
FPX ist eine Zahlungsmethode für die einmalige Nutzung und kann nicht für wiederkehrende oder zusätzliche Zahlungen verwendet werden. Sie wird derzeit von Stripe Billing nicht unterstützt. Die Unterstützung für FPX-Zahlungen für Custom-Konten befindet sich in der Betaphase. Bitte kontaktieren Sie bei Support-Anfragen den Stripe-Support.
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:
PaymentIntent erstellenServerseitig
Ein PaymentIntent stellt Ihre Absicht dar, Zahlungen von Kundinnen/Kunden einzuziehen. Der PaymentIntent dokumentiert jede Phase des gesamten Zahlungsvorgangs. Erstellen Sie einen PaymentIntent, sobald Sie den Betrag kennen (zum Beispiel zu Beginn des Bezahlvorgangs). Sie benötigen für die Erstellung des PaymentIntent folgende Werte:
Parameter | Wert |
---|---|
payment_ | fpx |
amount | Eine positive ganze Zahl in der kleinsten Währungseinheit, die den Betrag darstellt, der von dem Kunden/der Kundin abgebucht wird (zum Beispiel 1099 für eine Zahlung von 10,99 RM). Stripe unterstützt einen Mindestbetrag von 2 RM und einen Höchstbetrag von 30.000 RM pro Transaktion. |
currency | myr (FPX muss immer Ringgit verwenden). |
Sie können den Betrag auch später aktualisieren, falls er sich ändern sollte (zum Beispiel bei der Berechnung der Versandgebühren und Steuern).
Angaben zur Zahlungsmethode erfassenClientseitig
Stripe Elements beinhaltet vorgefertigte Komponenten der Nutzeroberfläche zur Erfassung von Zahlungsdetails. Elements ist ein Feature von Stripe.js und steht damit automatisch zur Verfügung. Fügen Sie das Stripe.js-Skript auf Ihrer Zahlungsseite ein, indem Sie es in den head
Ihrer HTML-Datei einbinden. Laden Sie Stripe.js immer direkt von js.stripe.com, um die PCI-Konformität zu gewährleisten. Fügen Sie das Skript nicht in ein Paket ein und hosten Sie selbst keine Kopie davon.
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/"></script> </head>
Erstellen Sie mit folgendem JavaScript-Code eine Instanz von Elements auf Ihrer Bezahlseite:
const stripe = Stripe(
); const elements = stripe.elements();'pk_test_TYooMQauvdEDq54NiTphI7jx'
Weisen Sie Elements in Ihrem Zahlungsformular einen festen Platz zu. Erstellen Sie in Ihrem Zahlungsformular leere DOM-Nodes (Container) mit eindeutigen IDs und übergeben Sie diese IDs dann an Elements.
<form id="payment-form"> <div class="form-row"> <div> <label for="fpx-bank-element"> FPX Bank </label> <div id="fpx-bank-element"> <!-- A Stripe Element will be inserted here. --> </div> </div> </div> <button id="fpx-button" data-secret="{{ CLIENT_SECRET }}"> Submit Payment </button> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> </form>
Wenn das oben erwähnte Formular geladen wurde, erstellen Sie eine Instanz des Elements fpxBank
und verbinden Sie sie mit dem oben erstellten Element-Container:
const style = { base: { // Add your base input styles here. For example: padding: '10px 12px', color: '#32325d', fontSize: '16px', }, }; // Create an instance of the fpxBank Element. const fpxBank = elements.create( 'fpxBank', { style: style, accountHolderType: 'individual', } ); // Add an instance of the fpxBank Element into the container with id `fpx-bank-element`. fpxBank.mount('#fpx-bank-element');
Zahlung an Stripe sendenClientseitig
Um eine Zahlung auf der Client-Seite zu erstellen, übergeben Sie das Client-Geheimnis aus dem in Schritt 1 erstellten PaymentIntent
-Objekt.
Verwenden Sie stripe.confirmFpxPayment, um die Weiterleitung von Ihrer Seite zu verarbeiten und die Zahlung zu ermöglichen. Fügen Sie dieser Funktion einereturn_
hinzu, um das Ziel anzugeben, an das Nutzer/innen weitergeleitet werden, nachdem sie die Zahlung auf der Website oder in der App ihrer Bank durchgeführt haben.
const form = document.getElementById('payment-form'); form.addEventListener('submit', async function(event) { event.preventDefault(); const fpxButton = document.getElementById('fpx-button'); const clientSecret = fpxButton.dataset.secret; const result = await stripe.confirmFpxPayment(clientSecret, { payment_method: { fpx: fpxBank, }, // Return URL where the customer should be redirected after the authorization return_url: `${window.location.href}`, }); if (result.error) { // Inform the customer that there was an error. const errorElement = document.getElementById('error-message'); errorElement.textContent = result.error.message; } });
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_ | The client secret of the PaymentIntent object. For subscription integrations, this client_secret is also exposed on the Invoice object through confirmation_ |
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.
Integration testen
Erfolgreiche und fehlgeschlagene Fälle der Authentifizierung
Testen Sie Ihre FPX-Integration, indem Sie eine beliebige Bank mit Ihren Test-API-Schlüsseln auswählen und die Weiterleitungsseite anzeigen. Sie können die erfolgreiche Zahlung testen, indem Sie die Zahlung auf der Weiterleitungsseite authentifizieren. Der PaymentIntent wechselt von requires_
zu succeeded
.
Um den Fall zu testen, in dem Nutzer/innen sich nicht authentifizieren können, wählen Sie aus der Liste mit Ihren Test-API-Schlüsseln eine Bank aus. Klicken Sie auf der Weiterleitungsseite auf Fail test payment (Testzahlung ablehnen). Der PaymentIntent wechselt von requires_
zu requires_
.
Bestätigung der Fehlerfälle
Andere mögliche Fehlerfälle sind Verbindungen zu Banken, die offline sind oder Verarbeitungsfehler während des Bestätigungsvorgangs. Um diese Fehler auszulösen, stellen Sie unten den Wert fpx[bank]
für bestätigen auf einen der Testwerte für Bankenfehler ein. Der PaymentIntent nimmt den Status requires_
an. Erfahren Sie mehr über diese Fehlercodes.
Parameter | Wert | Fehlercode |
---|---|---|
fpx[bank] | test_ | offline_ |
fpx[bank] | test_ | payment_ |
Ereignisse nach Zahlung verarbeitenServerseitig
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.
Manuell
Im Stripe-Dashboard können Sie alle Stripe-Zahlungen anzeigen, Zahlungsbelege per E-Mail versenden, Auszahlungen abwickeln oder fehlgeschlagene Zahlungen erneut durchfü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.
Anforderungen für den Bezahlvorgang und die Zahlungsbestätigung
Sie müssen auf der Seite Ihres Bezahlvorgangs die folgenden Anforderungen erfüllen:
Anforderung | Detail |
---|---|
FPX-Logo anzeigen. | Laden Sie das FPX-Logo hier herunter. |
FPX Buyer Bankauswahl in einer Dropdown-Liste erstellen | Die Namen der Banken müssen mit denen in der Bankauskunft übereinstimmen. |
Die Nutzungsbedingungen von FPX müssen als Standardformulierung und URL angegeben werden. | Standardformulierung: Indem Sie auf Weiter klicken, stimmen Sie den Nutzungsbedingungen von FPX zu. |
Die folgenden Informationen müssen auf der Zahlungsbestätigungsseite angezeigt werden, auf die Ihr/e Kund/in nach Abschluss der Authentifizierung durch seine/ihre Bank zurückkehrt.
Informationen | Informationsquelle |
---|---|
Transaktionsdatum und -zeit | created aus dem Charge -Objekt. |
Betrag | amount aus dem Charge -Objekt. |
Bestellnummer des Verkäufers | statement_ aus dem Charge -Objekt. |
FPX-Transaktions-ID | payment_ aus dem Charge -Objekt. |
Name der Bank des/der Käufer/in | payment_ aus dem Charge -Objekt |
Transaktionsstatus | status aus dem Charge -Objekt |
Sie können diese Informationen zu der Zahlung aus dem Ereignis payment_
abrufen.
Nutzer/innen der API-Version 2022-08-01 oder älter: Sie können diese Informationen zu der Zahlung aus dem Ereignis payment_
oder direkt aus dem PaymentIntent abrufen.
Bankreferenz
Name der Bank | Wert |
---|---|
Affin Bank | affin_bank |
Alliance Bank | alliance_bank |
AmBank | ambank |
Bank Islam | bank_islam |
Bank Muamalat | bank_muamalat |
Bank Rakyat | bank_rakyat |
BSN | bsn |
CIMB Clicks | cimb |
Hong Leong Bank | hong_leong_bank |
HSBC Bank | hsbc |
KFH | kfh |
Maybank2E | maybank2e |
Maybank2U | maybank2u |
OCBC Bank | ocbc |
Public Bank | public_bank |
RHB Bank | rhb |
Standard Chartered | standard_chartered |
UOB Bank | uob |
Fehlercodes
Im Folgenden finden Sie die häufigsten Fehlercodes und die entsprechenden empfohlenen Maßnahmen:
Fehlercode | Empfohlene Aktion |
---|---|
invalid_ | FPX-Transaktionen müssen größer als 2 RM und kleiner als 30.000 RM sein. |
invalid_ | Die angegebene Bank wird von FPX nicht unterstützt. Bitte verwenden Sie eine der Optionen aus der oben genannten Bankauskunft. |
invalid_ | FPX unterstützt nur MYR-Transaktionen. |
missing_ | Ein erforderlicher Parameter fehlt. Bitte prüfen Sie die error_ , um mehr Informationen über den erforderlichen Parameter zu erhalten. |
offline_ | Die angegebene Bank ist zurzeit offline. Versuchen Sie es mit einer anderen Bank oder Art der Zahlungsmethode. |
payment_ | Die Zahlungsmethode ist zurzeit nicht verfügbar. Bitten Sie Ihre Kundin/Ihren Kunden, zum Fortfahren auf eine andere Zahlungsmethode auszuweichen. |
payment_ | Es ist ein unerwarteter Fehler aufgetreten, der uns daran hindert, den PaymentIntent zu bestätigen. Es sollte erneut versucht werden, den PaymentIntent zu bestätigen. |
Auszahlungen und Überweisungen
Zur Einhaltung entsprechender Vorschriften werden Ihre FPX-Gelder über ein separates fpx
-Guthaben auf Ihrem Konto abgewickelt. Sie könnten also an einem Tag zwei separate Auszahlungen erhalten, und zwar eine für Ihre FPX-Gelder und eine weitere für alle anderen Gelder. Bei Connect-Plattformen können Sie eine Auszahlung oder eine Überweisung von Ihrem fpx
-Guthaben erstellen, indem Sie fpx
als source_
angeben:
Sie können Ihren Saldo auch abrufen, um eine Aufschlüsselung Ihres available
und pending
Stripe-Saldos nach source_
anzuzeigen.