Konbini-Zahlungen
Verwenden Sie die Payment Intents API und Payment Methods API, um Zahlungen über Konbini anzunehmen, eine beliebte Zahlungsmethode für
Stripe-Nutzer/innen in Japan können Konbini-Zahlungen von Kund/innen in Japan mit der Payment Intents API und der Payment Methods API annehmen. Kund/innen zahlen, indem sie einen Zahlungscode, eine Bestätigungsnummer und die Option Barzahlung in japanischen Bedarfsartikelgeschäften angeben. Stripe benachrichtigt Sie, wenn die Zahlung abgeschlossen ist.
Stripe einrichtenServerseitig
Als Erstes 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
Stripe verwendet ein PaymentIntent-Objekt, um Ihre Absicht darzustellen, Zahlungen von Kundinnen/Kunden einzuziehen und Statusänderungen vom Konbini PaymentIntent Erstellung bis zum Abschluss zu verfolgen.
Erstellen Sie einen PaymentIntent auf Ihrem Server mit einem Betrag und der Währung jpy
(Konbini unterstützt keine anderen Währungen). Wenn Sie bereits eine Integration mit dem Payment Intents API haben, fügen Sie konbini
zur Liste der Zahlungsmethoden für Ihren PaymentIntent 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.
Zusätzliche Optionen für Zahlungsmethoden
Optionen für Zahlungsmethoden können unter dem Schlüssel konbini
in den Optionen für Zahlungsmethoden angegeben werden.
Feld | Wert | Erforderlich | Standardwert |
---|---|---|---|
expires_ | Die Anzahl der Kalendertage, bevor eine ausstehende Konbini-Zahlung abläuft. Gültige Werte liegen zwischen 1 und 60 Tagen. Weitere Informationen finden Sie unter Ablaufdatum. | Nein | 3 |
expires_ | Ein Unix-Zeitstempel, an dem die ausstehende Konbini-Zahlung abläuft. Dieses Ablaufdatum muss mehr als 30 Minuten nach der aktuellen Uhrzeit und weniger als 60 Tage nach Anwendung der Einstellung auf den PaymentIntent liegen. Weitere Informationen finden Sie unter Ablaufdatum. | Nein | nicht festgelegt |
product_ | Eine Produktbeschreibung mit bis zu 22 Zeichen, die den Kund/innen im Minimarkt angezeigt wird. Wenn nicht in Shift JIS (JIS X 0208:1997) enthaltene Zeichen vorhanden sind, wird ein Fehler zurückgegeben. Es ist zwar nicht erforderlich, wir empfehlen jedoch, diese Option festzulegen. Andernfalls greifen wir auf einen generischen Platzhalter zurück, den wir nach eigenem Ermessen auswählen, z. B. お買い上げ商品・サービス. | Nein | Platzhalter |
Ablaufdatum
Ausstehende Konbini-Zahlungen laufen am angegebenen Datum kurz vor Mitternacht (23:59:59 JST) ab. Wenn beispielsweise expires_
auf 2 festgelegt ist und der PaymentIntent am Montag bestätigt wird, läuft die ausstehende Konbini-Zahlung am Mittwoch um 23:59:59 japanischer Zeit (UTC+9) ab.
Die Einstellung expires_
ist ein Unix-Zeitstempel in Sekunden. Wenn der Wert weniger als 30 Minuten von der aktuellen Uhrzeit entfernt ist oder die PaymentIntent-Bestätigung weniger als 30 Minuten vor dem Ablaufdatum erfolgt, wird ein Fehler zurückgegeben.
expires_
und expires_
schließen sich gegenseitig aus. Wenn beide Werte festgelegt sind, wird ein Fehler zurückgegeben. Beide Werte sind zudem optional, und wenn keiner von beiden festgelegt ist, ist die Ablaufzeit standardmäßig 3 Tage nach der Erstellung des PaymentIntent um 23:59 japanischer Zeit (UTC+9).
Fehlerbehebung
Anfragen in PaymentIntents, wie solche zum Erstellen, Aktualisieren und Bestätigen, können fehlschlagen. Sie können den error
-Wert der API-Antwort überprüfen, um den Grund zu ermitteln, und in vielen Fällen die Anfrage entweder erneut übermitteln oder den Fehler beheben. Insbesondere wenn Sie einen Wert für die Option confirmation_
für die Zahlungsmethode angeben, empfiehlt es sich, bei bestimmten von uns zurückgegebenen Fehlercodes entsprechende Maßnahmen zu ergreifen. Weitere Informationen finden Sie unter Bestätigungsnummern.
Es kann vorkommen, dass die Zahlungsmethode aufgrund von Ausfällen, geplanten Wartungsarbeiten oder Ihrem Nutzungsverhalten vorübergehend nicht verfügbar ist. Weitere Informationen finden Sie unter Umgang mit vorübergehenden Verfügbarkeitsproblemen.
Angaben zur Zahlungsmethode erfassenClientseitig
Erstellen Sie ein Zahlungsformular auf Ihrem Client, um die erforderlichen Rechnungsdaten von den Kund/innen zu erfassen:
Feld | Wert |
---|---|
name | Der vollständige Kundenname, gekürzt auf maximal 20 Zeichen auf Benutzeroberflächenelementen und Belegen der Bedarfsartikelgeschäfte. Nicht in Shift JIS (JIS X 0208:1997) enthaltene Zeichen werden weggelassen oder ersetzt. |
email | Die vollständige E-Mail-Adresse des/der Kund/in. |
In diesem Beispielformular wird auch eine Telefonnummer erfasst, die als von den Kund/innen bereitgestellte Bestätigungsnummer verwendet werden soll:
<form id="payment-form"> <div class="form-row"> <label for="name"> Name </label> <input id="name" name="name" required> </div> <div class="form-row"> <label for="email"> Email </label> <input id="email" name="email" required> </div> <div class="form-row"> <label for="phone"> Phone Number </label> <input id="phone" name="phone" required> </div> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> <button id="submit-button">Pay with Konbini</button> </form>
Zahlung an Stripe übermittelnClientseitig
Verwenden Sie Stripe.js zur Übermittlung von Zahlungen an Stripe, wenn Kundinnen/Kunden mit Konbini bezahlen möchten. Stripe.js ist unsere grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen.
Fügen Sie das Stripe.js-Skript auf Ihrer Bezahlseite ein, indem Sie es zum head
der HTML-Datei hinzufügen.
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>
Erstellen Sie auf Ihrer Bezahlseite eine Instanz von Stripe.js mit dem folgenden JavaScript.
// Set your publishable key. Remember to switch to your live publishable key in production! // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
);'pk_test_TYooMQauvdEDq54NiTphI7jx'
Verwenden Sie stripe.confirmKonbiniPayment und das Client-Geheimnis des PaymentIntent
-Objekts, das Sie in Schritt 2 erstellt haben, um die Rechnungsdaten der Kundin/des Kunden zu übermitteln.
Bei Bestätigung öffnet Stripe automatisch ein Modal, in dem Ihren Kund/innen die Konbini-Zahlungsanweisungen angezeigt werden.
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const result = await stripe.confirmKonbiniPayment( '{{PAYMENT_INTENT_CLIENT_SECRET}}', { payment_method: { billing_details: { name: document.getElementById('name').value, email: document.getElementById('email').value, }, }, payment_method_options: { konbini: { confirmation_number: document.getElementById('phone').value.replace(/\D/g,''), }, }, } ); // Stripe.js will open a modal to display the Konbini payment instructions to your customer // This async function finishes when the customer closes the modal if (result.error) { // Display error to your customer const errorMsg = document.getElementById('error-message'); errorMsg.innerText = result.error.message; } });
Notiz
Die Ausführung von stripe.
kann einige Sekunden dauern. Während dieser Zeit sollten Sie Ihr Formular deaktivieren, damit keine erneute Absendung erfolgen kann. Lassen Sie stattdessen ein Wartesymbol einblenden, wie beispielsweise eine Sanduhr. Tritt ein Fehler auf, lassen Sie eine Fehlermeldung für den/die Kund/in anzeigen, aktivieren Sie das Formular erneut und blenden Sie das Wartesymbol aus.
Zusätzliche Optionen für Zahlungsmethoden
Bei der Bestätigung eines Konbini-PaymentIntent können Sie zusätzliche Optionen für Zahlungsmethoden in den Optionen für Zahlungsmethoden unter dem Schlüssel konbini
angeben.
Feld | Wert | Erforderlich | Standardwert |
---|---|---|---|
confirmation_ | Eine 10- bis 11-stellige numerische Zeichenfolge. Diese Zeichenfolge wird auch in den Zahlungsanweisungen angezeigt und kann nicht ausschließlich aus Nullen bestehen. Wenn Sie keinen Wert für confirmation_ angeben, generiert Stripe einen zufälligen Wert für Sie. Weitere Informationen finden Sie unter Bestätigungsnummern. | Nein | nicht festgelegt |
Bestätigungsnummern
Ihre Kund/innen müssen sich auf die confirmation_
beziehen, wenn sie ihre Zahlung abschließen. Wenn Sie diesen Wert festlegen möchten oder den Kund/innen ermöglichen, den Wert festzulegen, wird als zu verwendender Wert die Telefonnummer der Kund/innen empfohlen. Eine confirmation_
kann auch während der Erstellung des PaymentIntent auf Serverseite festgelegt werden, wird aber in der Regel bei Bestätigung des PaymentIntent von den Kund/innen auf Client-Seite festgelegt. Sie kann ab der PaymentIntent-Erstellung bis zur PaymentIntent-Bestätigung jederzeit geändert werden.
Wenn eine angegebene confirmation_
zu häufig bei den laufenden Transaktionen für Minimärkte vorkommt, kann sie bei der PaymentIntent-Bestätigung abgelehnt werden. Der in diesem Fall zurückgegebene Fehlercode ist payment_
(tritt nur bei Bestätigung eines PaymentIntent auf).
Stripe blockiert bei der Erstellung des PaymentIntent sowie bei Aktualisierung und Bestätigung proaktiv Bestätigungsnummern, die nur aus Nullen bestehen. Stellen Sie daher sicher, dass Sie diesen Wert nicht verwenden bzw. die Kund/innen nicht die Möglichkeit haben, ihn zu verwenden.
Fehlerbehebung
Die clientseitige Bestätigung eines PaymentIntent kann auch fehlschlagen. Sie sollten den error
-Rückgabewert überprüfen, um den Grund für den Fehler zu ermitteln. Diesen können Sie wenn möglich dem/der Kund/in anzeigen oder ihn korrigieren und es erneut versuchen.
Ereignisse nach Zahlung verarbeitenServerseitig
Konbini ist eine Zahlungsmethode mit verzögerter Benachrichtigung. Daher sind die Gelder nicht sofort verfügbar. Es kann vorkommen, dass Kundinnen/Kunden die ausstehende Konbini-Zahlung nicht sofort bei Abschluss des Bestellvorgangs im Minimarkt erledigen.
Nach Abschluss einer ausstehenden Konbini-Zahlung sendet Stripe das Ereignis payment_intent.succeeded für diese Zahlung. Verwenden Sie das Dashboard oder erstellen Sie einen Webhook-Handler, um diese Ereignisse zu erhalten und Aktionen auszuführen. Beispiele für Aktionen sind u. a. das Senden einer E-Mail zur Bestellbestätigung an Ihre Kundinnen/Kunden, das Protokollieren des Verkaufs in einer Datenbank oder das Starten eines Versand-Workflows.
Wenn es eindeutig ist, dass eine ausstehende Konbini-Zahlung nicht durchgeführt wurde, in der Regel etwa eine Stunde nach Ablauf der Frist, sendet Stripe das Ereignis payment_intent.payment_failed.
Ereignis | Beschreibung | Nächste Schritte |
---|---|---|
payment_ | Die ausstehende Konbini-Zahlung wurde erstellt. | Senden Sie den/die Kund/in optional auf die Seite mit den Zahlungsanweisungen. Warten Sie, bis der/die Kund/in die Konbini-Zahlung durchführt. |
payment_ | Der/die Kundin hat vor Ablauf für die ausstehende Konbini-Zahlung bezahlt. | Wickeln Sie die Bestellung der Waren oder Dienstleistungen ab, die der/die Kund/in gekauft hat. |
payment_ | Der/die Kund/in hat die ausstehende Konbini-Zahlung vor Ablauf nicht bezahlt. | Kontaktieren Sie Ihre/n Kund/in per E-Mail oder Push-Benachrichtigung, um eine andere Zahlungsmethode anzufordern. |
Notiz
Während des Testens kann sich der Status eines Konbini-PaymentIntent automatisch basierend auf den gesendeten Parametern, z. B. email
, ändern. Sie können alle Aktualisierungen im Dashboard bestätigen. Weitere Informationen finden Sie unter Integration testen.
Ereignisse empfangen und Geschäftsaktionen ausführen
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.
Integration testen
Legen Sie payment_
beim Testen auf die folgenden Werte fest, wenn Sie stripe.confirmKonbiniPayment aufrufen, um verschiedene Szenarien zu testen. Sie können die Tests entweder mit einer speziellen Bestätigungsnummer oder einem E-Mail-Muster durchführen. Wenn beides angegeben wird, gilt das Verhalten der speziellen Bestätigungsnummer.
Bestätigungsnummer | Beschreibung | |
---|---|---|
|
| Simuliert eine Konbini-Zahlung, die nach 3 Minuten erfolgreich ausgeführt wurde, wobei der Webhook Beispiel: hanako@test.com |
|
| Simuliert eine Konbini-Zahlung, die sofort erfolgreich ausgeführt wurde, wobei der Webhook Beispiel: succeed_immediately@test.com |
|
| Simuliert eine Konbini-Zahlung, die sofort abläuft, wobei der Webhook Das Feld Beispiel: expire_immediately@test.com |
|
| Simuliert eine Konbini-Zahlung, die nie erfolgreich ist. Sie läuft in 3 Minuten ab, und der Webhook Das Feld Beispiel: expire_with_delay@test.com |
|
| Simuliert eine Konbini-Zahlung, die nie erfolgreich ist. Sie läuft entsprechend der Angabe im Feld Beispiel: fill_never@test.com |
Um die Bestätigungsnummer zu testen, können Sie die folgenden Werte für payment_
verwenden:
01234567890
ergibt den Fehlercodepayment_
.intent_ konbini_ rejected_ confirmation_ number 00000000000
ergibt einen generischen Validierungsfehlercode. Sie sollten diesen Fehler mithilfe der Vorabvalidierung in Ihrer Integration vermeiden.
Ablauf und Stornierung
Nach Ablauf der Zeit, die durch den Wert expires_
in den next_action.konbini_display_details angegeben wurde, können die Kundinnen/Kunden den Zahlungsvorgang für eine ausstehende Konbini-Zahlung in einem Minimarkt nicht mehr initiieren. Wenn sie vor Fristablauf einen gültigen Einzahlungsschein ausgestellt haben, können sie die Zahlung ggf. nach der Uhrzeit unter expires_
an der Ladenkasse abschließen.
Es gibt eine Pufferzeit, um in einem solchen Fall vorzeitige Zahlungsausfälle zu vermeiden. Der Status des PaymentIntent ändert sich in requires_
. Zu diesem Zeitpunkt können Sie den PaymentIntent stornieren oder mit einer anderen Zahlungsmethode bestätigen.
Sie können eine ausstehende Konbini-Zahlung auch nach Bestätigung und vor dem durch next_
angegebenen Zeitpunkt stornieren. Auch durch die Aktualisierung des PaymentIntent oder die Bestätigung mit einer anderen Zahlungsmethode wird die bestehende Konbini-Zahlung implizit storniert.
Wenn der Kunde/die Kundin die Konbini-Zahlung gerade im Minimarkt bezahlt, schlägt die Stornierungsanfrage fehl. Es kann erneut versucht werden, die Stornierung durchzuführen, wenn der Kunde/die Kundin den Zahlungsversuch abbricht und der Einzahlungsschein abläuft.
Beachten Sie, dass Probleme mit der vorübergehenden Verfügbarkeit von Zahlungsmethoden auch (sowohl explizite als auch implizite) Stornoanfragen betreffen.
Vorsicht
Wenn Sie eine ausstehende Zahlung stornieren, verlieren die ursprünglichen Zahlungsanweisungen ihre Gültigkeit. Für die meisten Anwendungsfälle empfehlen wir Ihnen, Ihre Kundin/Ihren Kunden zu kontaktieren, um sie/ihn über die Stornierung zu informieren.
Wenn Sie einen PaymentIntent mit dem Status requires_
erfolgreich erneut bestätigen, erstellen wir neue Anweisungen und eine neue hosted_
. Sie müssen Ihre Kund/innen darüber in Kenntnis setzen.
Umgang mit vorübergehenden Verfügbarkeitsproblemen
Die folgenden Fehlercodes weisen auf vorübergehende Probleme mit der Verfügbarkeit der Zahlungsmethode hin:
Code | Beschreibung | Handling |
---|---|---|
payment_ | Für diese Zahlungsmethode, die strengeren Limits als unseren API-weiten Ratenlimits unterliegt, werden in kurzer Zeit zu viele Anfragen gestellt. | Ein erneuter Versuch mit Backoff löst das Problem in der Regel. Bei anhaltender starker Nutzung der Zahlungsmethode (z. B. während eines laufenden Verkaufs auf Ihrer Website) können diese Fehler jedoch bei einer gewissen Anzahl von Anfragen weiter auftreten. In diesem Fall können Sie Ihre Kund/innen zusätzlich darum bitten, eine andere Zahlungsmethode zu wählen. |
payment_ | Bei der Zahlungsmethode treten unbekannte vorübergehende Probleme auf, die möglicherweise eine Weile andauern können (z. B. bei Ausfällen oder geplanten Wartungsarbeiten). | Fordern Sie Ihre Nutzer/innen am besten auf, ihren Kauf mit einer anderen Zahlungsmethode abzuschließen oder es zu einem späteren Zeitpunkt erneut zu versuchen. |
Vorsicht
Wenn Sie allgemein starke Nutzung erwarten oder aufgrund eines anstehenden Ereignisses, informieren Sie uns bitte rechtzeitig.
Rückerstattungen
Es ist möglich, Konbini-Zahlungen über das Dashboard oder die API zurückzuerstatten.
Um eine Rückerstattung abzuwickeln, die direkt auf das Bankkonto eines/einer Kund/in eingegangen ist, müssen die Kund/innen die Kontoverbindung angeben, an die die Rückerstattung erfolgen soll. Stripe kontaktiert die Kund/innen über die E-Mail-Adresse aus den Abrechnungsdaten für die Zahlungsmethode und fordert die benötigten Daten an. Nachdem wir die Bankdaten erhalten haben, bearbeiten wir die Rückerstattung automatisch.
Der Status der Rückerstattung ändert sich wie folgt:
Ereignis | Rückerstattungsstatus |
---|---|
Rückerstattung wird erstellt | requires_ |
Der Kunde/Die Kundin reicht die Bankkontodaten ein und Stripe beginnt, die Rückerstattung zu bearbeiten. | pending |
Die Rückerstattung wird von der Bank des Kunden/der Kundin erwartet | succeeded |
Die Bank des Kunden/der Kundin überweist die Gelder zurück an Stripe. | requires_ |
Die Rückerstattung erfolgt requires_ 45 Tage nach Erstellung | failed |
Rückerstattung wurde aufgrund des Status requires_ storniert | canceled |
Wenn die Bank des Kunden/der Kundin die Überweisung nicht erfolgreich abschließen kann, wird das Geld an Stripe zurückgesendet und die Rückerstattung wechselt in den Status requires_
. Dies kann passieren, wenn der Name des Kontoinhabers/der Kontoinhaberin nicht mit den Daten der Empfängerbank übereinstimmt oder wenn die angegebene Bankkontonummer einen Tippfehler enthält. In diesen Fällen informieren wir den Kunden/die Kundin per E-Mail über den Fehler und bitten ihn/sie, seine/ihre Bankkontodaten erneut einzureichen.
Wenn die Kontodaten nicht innerhalb von 45 Tagen angegeben werden, wechselt der Status der Rückerstattung zu failed
und wir senden das Ereignis refund.failed. Das bedeutet, dass Stripe die Rückerstattung nicht bearbeiten kann und Sie die Gelder außerhalb von Stripe an Ihre Kundinnen/Kunden zurückerstatten müssen.
Das Feld instructions_email der Rückerstattung enthält die E-Mail-Adresse, an die die Rückerstattung gesendet wurde. Während eine Rückerstattung auf eine Antwort des Kunden/der Kundin wartet, finden Sie Details zu der E-Mail, die an den Kunden/die Kundin gesendet wurde, unter next_action.display_details.email_sent auf der Rückerstattung.
Für jede einzelne Rückerstattung (einschließlich jeder Teilrückerstattung) können Gebühren anfallen. Bitte wenden Sie sich an Ihren Ansprechpartner bei Stripe, um mehr darüber zu erfahren.
Rückerstattungen testen
Das Rückerstattungsverhalten können Sie im Test-Modus testen. Verwenden Sie dazu die folgenden Testbankkonten auf der Seite zur Erfassung von Bankkontodaten, die in der an die Kund/innen gesendeten E-Mail verlinkt ist. Bankkontodaten außerhalb dieser Testbankkonten werden nicht akzeptiert.
Bankleitzahl | Konto | Typ |
---|---|---|
1100000 | 0001234 | Rückerstattung erfolgreich. |
|
| Rückerstattung fehlgeschlagen. |
Ablaufdatum von Rückerstattungen testen
Sie können einen API-Aufruf durchführen, um den Ablauf einer Rückerstattung im Testmodus zu simulieren.
curl https://api.stripe.com/v1/test_helpers/refunds/{{REFUND_ID}}/expire \ -X POST \ -u
:sk_test_BQokikJOvBiI2HlWgH4olfQ2