Asynchronous Capture
Verwenden Sie Asynchronous Capture, um PaymentIntents schneller zu bestätigen.
Die asynchrone Erfassung reduziert die Latenzzeit von PaymentIntent-Bestätigungen, da der Erfassungsvorgang im Hintergrund ausgeführt wird. Nachdem Sie die Erfassungsanfrage gestellt haben, erhält Ihre Integration eine erfolgreiche Antwort, und Stripe schließt die Zahlungserfassung im Backend ab. Um diese schnellere Erfassung der PaymentIntents zu verwenden, legen Sie bei der Bestätigung eines PaymentIntent den Parameter capture_
fest.
Für die asynchrone Erfassung anmelden
Um Ihre bestehende Integration zu aktualisieren und Unterstützung für die asynchrone Erfassung hinzuzufügen, legen Sie beim Erstellen eines PaymentIntent automatic_
als Erfassungsmethode fest. Die Angabe des Parameters capture_
ist optional, da Stripe seine Funktionalität standardmäßig in der neuesten Version der API aktiviert.
Möglicherweise müssen Sie weitere Änderungen vornehmen, wenn Sie sich für die asynchrone Erfassung entscheiden, da sich die API-Antwort und einige Webhooks anders verhalten als bei anderen Erfassungsmethoden.
Für alle Zahlungen ist die balance_transaction bei den folgenden Objekten null
. Bei Connect-Zahlungen sind transfer und application_fee bei den folgenden Objekten ebenfalls null
:
- angehängtes Charge-Objekt der API-Antwort
- charge.succeeded-Webhook
- payment_intent.succeeded-Webhook
Geändertes Charge-Objekt für den Webhook charge.succeeded:
# Charge Object { "id": "ch_123", "object": "charge", "amount_captured": 1000, # the capture has happened "application_fee_amount": 100, "captured": true, "balance_transaction": "txn_123", # applicable to all charges. "transfer": "tr_123", # applicable to destination charge only. "application_fee": "fee_123", # applicable to destination charge only. "balance_transaction": null, # object might not be created yet, might be shown as nil. "transfer": null, # object might not be created yet, might be shown as nil. "application_fee": null, # object might not be created yet, might be shown as nil. ... }
API-Antwort und Webhook payment_intent.succeeded geändert: (je nach API-Version unterschiedlich)
Überwachen Sie Webhooks, um benachrichtigt zu werden, wenn zusätzliche Daten verfügbar sind
Achtung
Unsere SLA für den charge.updated Webhook gilt 1 Stunde nach der erfolgreichen Bestätigung der PaymentIntent.
Wenn Sie die asynchrone Erfassung nutzen, können Sie Webhooks überwachen, um den Status von Objekten zu überprüfen, die zu anfangs null
sind.
- Um die balance_transaction zu erhalten, abonnieren Sie das Webhook-Ereignis charge.updated.
- Um die application_fee zu erhalten, abonnieren Sie das Webhook-Ereignis application_fee.created.
- Um die Übertragung zu erhalten, abonnieren Sie die Webhook-Ereignisse transfer.created.
Webhooks für Asynchronous Capture
# charge.updated events { "data": { "id": "ch_123", "object": "charge", "amount": 100, "balance_transaction": "txn_123", # applicable to all charges. "transfer": "tr_123", # applicable to destination charge only. "application_fee": "fee_123", # applicable to destination charge only. ... }, previous_attributes: { "balance_transaction": null, # applicable to all charges. "transfer": null, # applicable to destination charge only. "application_fee": null, # applicable to destination charge only. } }
# transfer.created events { "data": { "id": "tr_123", "object": "transfer", "amount": 1000, ... } }
# application_fee.created events { "data": { "id": "fee_123", "object": "application_fee", "amount": 100, ... } }