# Zahlungen per FPX akzeptieren So akzeptieren Sie Zahlungen per FPX, einer gängigen Zahlungsmethode in Malaysia. # Checkout > This is a Checkout for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/fpx/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. Bei FPX handelt es sich um eine Zahlungsmethode für die [einmalige Nutzung](https://docs.stripe.com/payments/payment-methods.md#usage). 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](https://docs.stripe.com/payments/payment-methods.md#payment-notification) über den Erfolg oder das Fehlschlagen der Zahlung erhalten. ## Kompatibilität bestimmen **Kundenregion**: Malaysia **Unterstützte Währungen**: `myr` **Transaktionswährungen**: `myr` **Zahlungsmodus**: Yes **Einrichtungsmodus**: No **Abonnementmodus**: No Für die Unterstützung von Zahlungen per FPX 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) sämtlicher Posten müssen in der gleichen Währung angegeben werden. Falls Posten in verschiedenen Währungen vorhanden sind, muss für jede Währung eine separate Checkout-Sitzung erstellt werden. - Sie können nur einmalige Posten verwenden (wiederkehrende *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 werden nicht unterstützt). ## Zahlung annehmen > Erstellen Sie zunächst eine Integration, um mit Checkout [Zahlungen anzunehmen](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout), bevor Sie mit diesem Leitfaden fortfahren. Das führt Sie durch die Aktivierung von FPX und zeigt die Unterschiede zwischen dem Akzeptieren von Zahlungen mit dynamischen Zahlungsmethoden und dem manuellen Konfigurieren von Zahlungsmethoden. ### FPX 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 `fpx` zur Liste der `payment_method_types` hinzu. 1. Stellen Sie sicher, dass alle `line_items` die Währung `myr` verwenden. #### Von Stripe gehostete Seite ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=myr" \ -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]=fpx" \ --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]=myr" \ -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]=fpx" \ --data-urlencode "return_url=https://example.com/return" \ -d ui_mode=embedded_page ``` ### 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. ### Bestätigungsseite FPX verlangt, dass den Kundinnen und Kunden nach Abschluss der Zahlung die Transaktionsinformationen angezeigt werden. Im Leitfaden zur [nutzerdefinierten Bestätigungsseite](https://docs.stripe.com/payments/checkout/custom-success-page.md) erfahren Sie, wie Sie Ihre Bestätigungsseite anpassen können. Bei der Anpassung müssen Sie das Charge-Objekt direkt vom [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-latest_charge)-Objekt mithilfe der PaymentIntent-ID aus Ihrer Checkout-Sitzung abrufen und die folgenden Informationen auf Ihrer `success_url`-Seite anzeigen. | Informationen | Informationsquelle | | -------------------------------------------- | ---------------------------------------------------------------------- | | Transaktionsdatum und -zeit | `created` aus dem `Charge`-Objekt. | | Betrag | `amount` aus dem `Charge`-Objekt. | | Bestellnummer der Verkäuferin/des Verkäufers | `statement_descriptor` aus dem `Charge`-Objekt. | | FPX-Transaktions-ID | `payment_method_details[fpx][transaction_id]` aus dem `Charge`-Objekt. | | Name der Bank der Käuferin/des Käufers | `payment_method_details[fpx][bank]` aus dem `Charge`-Objekt | | Transaktionsstatus | `status` aus dem `Charge`-Objekt | ## Integration testen Wählen Sie beim Testen Ihrer Checkout-Integration FPX als Zahlungsmethode aus und klicken Sie auf **Bezahlen**. ## Bearbeitung von Rückerstattungen und Anfechtungen Das Rückerstattungszeitfenster für FPX beträgt bis zu 60 Tage nach der Zahlung. Es gibt kein Verfahren für angefochtene Zahlungen. Kund/innen authentifizieren sich über ihre Bank. ## See also - [Weitere Informationen zu FPX](https://docs.stripe.com/payments/fpx.md) - [Checkout-Ausführung](https://docs.stripe.com/checkout/fulfillment.md) - [Checkout anpassen](https://docs.stripe.com/payments/checkout/customization.md) # Elements > This is a Elements for when payment-ui is elements. View the full page at https://docs.stripe.com/payments/fpx/accept-a-payment?payment-ui=elements. > Der Inhalt dieses Abschnitts bezieht sich auf ein *Legacy* (Technology that's no longer recommended)-Produkt. Verwenden Sie den Leitfaden [Zahlungen akzeptieren](https://docs.stripe.com/payments/accept-a-payment.md) 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](https://docs.stripe.com/payments/payment-methods.md#usage). 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](https://docs.stripe.com/payments/payment-methods.md#payment-notification) über den Erfolg oder das Fehlschlagen der Zahlung erhalten. So aktivieren Sie FPX-Zahlungen: 1. Gehen Sie im Dashboard zu den [Einstellungen für Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods). Falls Sie das noch nicht getan haben, [aktivieren Sie Ihr Stripe-Konto](https://docs.stripe.com/get-started/account/activate.md). 1. Suchen Sie FPX unter **Bank Redirects** (Bankumleitungen) und wählen Sie **Aktivieren** aus. 1. Akzeptieren Sie die Nutzungsbedingungen von FPX. FPX steht nur Unternehmen mit Sitz in Malaysia zur Verfügung. Weitere Informationen zu Ländern, Währungen und Zahlungsmethoden, die mit Stripe-Produkten kompatibel sind, finden Sie unter [Unterstützung der Zahlungsmethode](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). > FPX ist eine Zahlungsmethode für die einmalige Nutzung und kann somit nicht für wiederkehrende oder zusätzliche Zahlungen verwendet werden. Sie wird derzeit nicht von [Stripe Billing](https://stripe.com/billing) unterstützt. Die Unterstützung von FPX-Zahlungen für [Custom-Konten](https://docs.stripe.com/connect/custom-accounts.md) befindet sich in der Beta-Phase. Wenden Sie sich für Support-Anfragen an den [Stripe-Support](https://support.stripe.com/contact). ## 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] Ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) stellt Ihre Absicht dar, Zahlungen von Kundinnen/Kunden einzuziehen. Der PaymentIntent dokumentiert [jede Phase](https://docs.stripe.com/payments/paymentintents/lifecycle.md) 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_method_types` | **fpx** | | `amount` | Eine positive ganze Zahl in der [kleinsten Währungseinheit](https://docs.stripe.com/currencies.md#zero-decimal), 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). | ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=fpx" \ -d amount=1099 \ -d currency=myr ``` Sie können den [Betrag](https://docs.stripe.com/api.md#payment_intent_object-amount) auch später [aktualisieren](https://docs.stripe.com/api.md#update_payment_intent), falls er sich ändern sollte (zum Beispiel bei der Berechnung der Versandgebühren und Steuern). ```curl curl https://api.stripe.com/v1/payment_intents/pi_1DRuHnHgsMRlo4MtwuIAUe6u \ -u "<>:" \ -d amount=1499 ``` ## Angaben zur Zahlungsmethode erfassen [Clientseitig] [Stripe Elements](https://docs.stripe.com/payments/elements.md) 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. ```html Checkout ``` Erstellen Sie mit folgendem JavaScript-Code eine Instanz von Elements auf Ihrer Bezahlseite: ```javascript const stripe = Stripe('<>'); const elements = stripe.elements(); ``` 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. ```html
``` > Diese Dokumentation bezieht sich auf eine *Legacy* (Technology that's no longer recommended)-Funktion, die in der neuesten Version von Stripe.js nicht mehr verfügbar ist. Wir empfehlen die Nutzung des [Payment Element](https://docs.stripe.com/payments/payment-element.md), einer Web-UI-Komponente, die über 40 Zahlungsmethoden akzeptiert, Eingaben validiert und Fehler behandelt. Wenn das oben erwähnte Formular geladen wurde, [erstellen Sie eine Instanz](https://docs.stripe.com/js/elements_object/create_element?type=fpxBank) des Elements `fpxBank` und verbinden Sie sie mit dem oben erstellten Element-Container: ```javascript 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 senden [Clientseitig] Um eine Zahlung auf der Client-Seite zu erstellen, übergeben Sie das [Client-Geheimnis](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) aus dem in Schritt 1 erstellten `PaymentIntent`-Objekt. Verwenden Sie [stripe.confirmFpxPayment](https://docs.stripe.com/js.md#stripe-confirm-fpx-payment), um die Weiterleitung von Ihrer Seite zu verarbeiten und die Zahlung zu ermöglichen. Fügen Sie dieser Funktion eine`return_url` 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. ```javascript 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_url` 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_url` angeben, können Sie auch Ihre eigenen Abfrageparameter für die Verwendung auf der Rückgabeseite anhängen. | 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. Bei Abonnementintegrationen wird dieses client_secret auch über [`confirmation_secret`](https://docs.stripe.com/api/invoices/object.md#invoice_object-confirmation_secret) im `Invoice`-Objekt sichtbar gemacht | Wenn Kundinnen und Kunden auf Ihre Seite weitergeleitet werden, können Sie `payment_intent_client_secret` 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_action` 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_action` zu `requires_payment_method`. #### 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_confirmation` an. Erfahren Sie mehr über diese [Fehlercodes](https://docs.stripe.com/payments/fpx/accept-a-payment.md#error-codes). | Parameter | Wert | Fehlercode | | ----------- | ----------------------- | ------------------------------------------- | | `fpx[bank]` | `test_offline_bank` | `offline_bank` | | `fpx[bank]` | `test_processing_error` | `payment_method_processing_error_transient` | ## Ereignisse nach Zahlung verarbeiten [Serverseitig] 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. ## Optional: Ereignisse des FPX-Bank-Elements verarbeiten Sie können die Konfigurationsoptionen (zum Beispiel den `style`) des `fpxBank`-Elements mithilfe von [`.update(options)`](https://docs.stripe.com/js.md#other-methods) aktualisieren. Das FPX-Bank-Element gibt die von Kund/innen gewählte Bank an, wenn sie sich ändert. Um mit dem Wert der Bank eine zusätzliche Logik auszuführen (zum Beispiel für das Feld, das für die Validierung des Formulars erforderlich ist), können Sie das Change-Ereignis überwachen: ```javascript fpxBank.on('change', function(event) { var bank = event.value; // Perform any additional logic here... }); ``` Das Änderungsereignis enthält andere hilfreiche Parameter: | Parameter | Beschreibung | | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `elementType` | Der Name des Elements. Der Standardwert ist `fpxBank`. | | `empty` | Wenn `true`, ist der Wert leer. | | `complete` | Wenn `true`, hat der/die Kund/in den Wert ausgewählt. Sie können diesen Parameter verwenden, um den Rest Ihres Formulars schrittweise offenzulegen, um das Einreichen des Formulars zu ermöglichen. | | `value` | Die FPX-Bank, die der Kunde/die Kundin aus dem Element ausgewählt hat. Der [FPX-Leitfaden](https://docs.stripe.com/payments/fpx/accept-a-payment.md#bank-reference) enthält die vollständige Bankenliste. | ## Optional: FPX-Weiterleitung manuell verarbeiten Wir empfehlen, die Verarbeitung von FPX-Weiterleitungen und -Zahlungen mit `confirmFpxPayment` Stripe.js zu überlassen. Sie können Kund/innen aber auch manuell weiterleiten. Gehen Sie dazu wie folgt vor: 1. Geben Sie die URL an, an die Ihre Kund/innen weitergeleitet werden, sobald die Zahlung abgeschlossen ist. ```curl curl https://api.stripe.com/v1/payment_intents/pi_1DRuHnHgsMRlo4MtwuIAUe6u/confirm \ -u "<>:" \ -d payment_method=pm_1EnPf7AfTbPYpBIFLxIc8SD9 \ --data-urlencode "return_url=https://shop.example.com/crtA6B28E1" ``` An dieser Stelle prüft Stripe, ob die ausgewählte Bank online und für die Authentifizierung verfügbar ist. Ist die Bank nicht verfügbar, gibt Stripe den folgenden Fehlercode und die folgende Fehlermeldung zurück: | | | | | `error_code` | offline_bank | | `error_message` | %{bank} ist zurzeit offline. Versuchen Sie es mit einer anderen Bank. | Sie sollten den Kunden/die Kundin dann auffordern, entweder eine andere Bank oder eine andere Zahlungsmethode auszuwählen, um die Transaktion abzuschließen. **Testen einer Offline-Bank** Sie können den oben beschriebenen `offline_bank`-Fehler testen, indem Sie in Schritt 2 eine *PaymentMethod* (PaymentMethods represent your customer's payment instruments, used with the Payment Intents or Setup Intents APIs) mit dem folgenden Wert erstellen und diese dann wie oben gezeigt an den PaymentIntent anhängen. | Parameter | Wert | | ----------- | ------------------- | | `fpx[bank]` | `test_offline_bank` | 1. Beim Bestätigen des `PaymentIntent` gilt der Status `requires_action`. Der Typ für `next_action` ist `redirect_to_url`. ```json "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } } ``` 1. Leiten Sie die Kundin/den Kunden an die in der Eigenschaft `next_action` angegebene URL weiter. ```javascript 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 Kund/innen an das Ziel `return_url` weitergeleitet. Die URL-Abfrageparameter `payment_intent` und `payment_intent_client_secret` sind enthalten und Sie können wie oben beschrieben Ihre eigenen Abfrageparameter übergeben. ## 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](https://exchange.fpx.prod.inet.paynet.my/files/FPX%20Logo.zip) herunter. | | FPX Buyer Bankauswahl in einer Dropdown-Liste erstellen | Die Namen der Banken müssen mit denen in der [Bankauskunft](https://docs.stripe.com/payments/fpx/accept-a-payment.md#bank-reference) übereinstimmen. | | Die Nutzungsbedingungen von FPX müssen als Standardformulierung und URL angegeben werden. | **Standardformulierung:** Indem Sie auf **Weiter** klicken, stimmen Sie den [Nutzungsbedingungen](https://www.mepsfpx.com.my/FPXMain/termsAndConditions.jsp) 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_descriptor` aus dem `Charge`-Objekt. | | FPX-Transaktions-ID | `payment_method_details[fpx][transaction_id]` aus dem `Charge`-Objekt. | | Name der Bank des/der Käufer/in | `payment_method_details[fpx][bank]` aus dem `Charge`-Objekt | | Transaktionsstatus | `status` aus dem `Charge`-Objekt | Sie können diese Informationen zu der [Zahlung](https://docs.stripe.com/api/charges/object.md) aus dem Ereignis `payment_intent.succeeded` abrufen. Nutzer/innen der API-Version [2022-08-01](https://docs.stripe.com/upgrades.md#2022-08-01) oder älter: Sie können diese Informationen zu der [Zahlung](https://docs.stripe.com/api/charges/object.md) aus dem Ereignis `payment_intent.succeeded` oder direkt aus dem [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-charges-data) abrufen. #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') intent = client.v1.payment_intents.retrieve('{{PAYMENT_INTENT_ID}}') charges = intent.charges.data ``` ## 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_amount` | FPX-Transaktionen müssen größer als 2 RM und kleiner als 30.000 RM sein. | | `invalid_bank` | Die angegebene Bank wird von FPX nicht unterstützt. Bitte verwenden Sie eine der Optionen aus der obigen [Bankreferenz](https://docs.stripe.com/payments/fpx/accept-a-payment.md#bank-reference). | | `invalid_currency` | FPX unterstützt nur MYR-Transaktionen. | | `missing_parameter` | Ein erforderlicher Parameter fehlt. Bitte prüfen Sie die `error_message`, um mehr Informationen über den erforderlichen Parameter zu erhalten. | | `offline_bank` | Die angegebene Bank ist zurzeit offline. Versuchen Sie es mit einer anderen Bank oder Art der Zahlungsmethode. | | `payment_method_not_available` | Die Zahlungsmethode ist zurzeit nicht verfügbar. Bitten Sie Ihre Kundin/Ihren Kunden, zum Fortfahren auf eine andere Zahlungsmethode auszuweichen. | | `payment_method_processing_error_transient` | 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 Aus Compliance-Gründen werden Ihre FPX-Gelder über ein separates `fpx`-Guthaben auf Ihrem Konto abgewickelt. Sie könnten also an einem Tag zwei separate *Auszahlungen* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit) erhalten, und zwar eine für Ihre FPX-Gelder und eine weitere für alle anderen Gelder. Bei [Connect-Plattformen](https://docs.stripe.com/connect.md) können Sie [eine Auszahlung](https://docs.stripe.com/api/payouts/create.md) oder [Überweisung](https://docs.stripe.com/api/transfers/create.md) von Ihrem `fpx`-Guthaben erstellen, indem Sie `fpx` als `source_type` angeben: ```curl curl https://api.stripe.com/v1/payouts \ -u "<>:" \ -d amount=5000 \ -d currency=myr \ -d source_type=fpx ``` Sie können Ihren Saldo auch [abrufen](https://docs.stripe.com/api/balance/balance_retrieve.md), um eine Aufschlüsselung Ihres `available` und `pending` Stripe-Saldos nach `source_type` anzuzeigen. FPX ist eine [einmalige](https://docs.stripe.com/payments/payment-methods.md#usage) Zahlungsmethode, die nur in Malaysia verfügbar ist. Kundinnen und Kunden werden von Ihrer App weitergeleitet, um die Zahlung mit FPX abzuschließen, Ihnen die Zahlung zu senden und dann zu Ihrer App zurückzukehren, wo Sie eine [sofortige Benachrichtigung](https://docs.stripe.com/payments/payment-methods.md#payment-notification) erhalten, ob die Zahlung erfolgreich war oder fehlgeschlagen ist. So aktivieren Sie FPX-Zahlungen: 1. Gehen Sie im Dashboard zu den [Einstellungen für Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods). Falls Sie das noch nicht getan haben, [aktivieren Sie Ihr Stripe-Konto](https://docs.stripe.com/get-started/account/activate.md). 1. Suchen Sie FPX unter **Bank Redirects** (Bankumleitungen) und wählen Sie **Aktivieren** aus. 1. Akzeptieren Sie die Nutzungsbedingungen von FPX. FPX steht nur Unternehmen mit Sitz in Malaysia zur Verfügung. Weitere Informationen zu Ländern, Währungen und Zahlungsmethoden, die mit Stripe-Produkten kompatibel sind, finden Sie unter [Unterstützung der Zahlungsmethode](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). Nachdem Sie FPX-Zahlungen aktiviert haben, integrieren Sie das [Mobile Payment Element](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=mobile&platform=android), um Online-Zahlungen zu akzeptieren. Sie haben die Wahl zwischen Android, iOS und React Native.