Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Versionierung
Änderungsprotokoll
Aktualisieren Sie Ihre API-Version
Ihre SDK-Version aktualisieren
Essentials
SDKs
    Übersicht
    Serverseitige SDKs
    Mobile SDKs
    iOS SDK
    Android SDK
    React Native SDK
    Web-SDKs
    ES-Modul Stripe.js
    React Stripe.js
    Terminal-SDKs
    iOS SDK
    Android SDK
    React Native SDK
    Gemeinde
    Community-SDKs
    Mobile Migrationen
    Zu iOS SDK 24 migrieren
    Zu Android SDK 21 migrieren
API
Tests
Stripe-CLI
Beispiel-Projekte
Tools
Workbench
Entwickler-Dashboard
Stripe Shell
Stripe für Visual Studio Code
Funktionen
Arbeitsabläufe
Ereignisziele
Stripe-StatuswarnungenHochgeladene Dateien
KI-Lösungen
Agent-Toolkit
Model Context Protocol
Sicherheit und Datenschutz
Sicherheit
Datenschutz
Extend Stripe
Erstellen Sie Stripe-Apps
Verwenden Sie Apps von Stripe
Partner
Partner-Ecosystem
Partner-Zertifizierung
StartseiteEntwicklerressourcenSDKs

Einführung in serverseitige SDKs

Erfahren Sie, wie Sie die serverseitigen SDKs von Stripe installieren und verwenden können.

Die serverseitigen SDKs von Stripe reduzieren den Arbeitsaufwand für die Verwendung unserer REST-APIs. Stripe-verwaltete SDKs sind für Ruby, PHP, Java, Python, Node, .NET und Go verfügbar. Community-Bibliotheken sind auch für andere Serversprachen verfügbar.

Installation und Einrichtung

Wählen Sie Ihre Sprache in der Sprachauswahl unten aus und befolgen Sie dann die Anweisungen, um das SDK zu installieren.

Command Line
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Nach Abschluss der Installation müssen Sie Stripe initialisieren:

server.rb
Ruby
Python
PHP
Node
Java
Go
.NET
No results
require 'stripe' Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'

API-Anfragen senden

Sie können Objekte mit der Stripe-API auf sechs Hauptarten bearbeiten: Erstellen, Aktualisieren, Löschen, Abrufen, Auflisten und Suchen. Die folgenden Beispiele zeigen anhand des Customer-Objekts jede der sechs Möglichkeiten:

Erstellen Sie einen Kunden mit dem Namen Peter Mustermann.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="John Doe"

API-Anfragen können verschiedene Arten von Parametern enthalten. So erstellen Sie beispielsweise einen Kunden/eine Kundin mit name (einer Zeichenfolge), address (einem Objekt) und preferred_locales (einer Liste):

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="John Doe" \ -d "address[country]"=US \ -d "address[city]"="San Fransisco" \ -d "preferred_locales[]"=EN \ -d "preferred_locales[]"=FR

Wenn Sie ein Objekt aktualisieren, können Sie einige seiner Eigenschaften löschen. Senden Sie für dynamisch typisierte Sprachen eine leere Zeichenfolge. Verwenden Sie für stark typisierte Sprachen bestimmte Konstanten. So löschen Sie zum Beispiel den name (eine Zeichenfolge) und die metadata (einen Hash von Schlüssel-Wert-Paaren) eines Kunden/einer Kundin:

server.rb
Ruby
Python
PHP
Java
Node
Go
.NET
No results
customer = Stripe::Customer.update(
'{{CUSTOMER_ID}}'
, { name: '', metadata: '', })

In diesem Beispiel werden alle Metadaten gelöscht, Sie können jedoch auch einzelne Schlüssel löschen. Weitere Informationen zur Verwaltung von Metadaten finden Sie in unserem Metadaten-Leitfaden.

Auf die Antwort der API zugreifen

Jedes Mal, wenn Sie eine API Anfrage stellen, sendet Stripe Ihnen eine Antwort zurück.

Wenn Sie ein Objekt erstellen, abrufen oder aktualisieren, erhalten Sie das Objekt selbst zurück:

Sample API response (truncated)
{ "id": "pi_001", "object": "payment_intent", "amount": 1099, "currency": "usd", /* ... */ }

Verwenden Sie eine Variable, um auf die Eigenschaften dieses Objekts zuzugreifen:

server.rb
Ruby
Python
PHP
Node
Java
Go
.NET
No results
paymentIntent = Stripe::PaymentIntent.retrieve('{{PAYMENT_INTENT_ID}}') puts paymentIntent.amount

Wenn Sie Objekte auflisten oder suchen, erhalten Sie ein List-Objekt zurück, das ein data-Array mit den angeforderten Objekten enthält:

Sample API response (truncated)
{ "object": "list", "data": [ { "id": "pi_003", "object": "payment_intent", "amount": 4200, "currency": "usd", /* ... */ }, { "id": "pi_002", "object": "payment_intent", "amount": 2100, "currency": "usd", "payment_method_types": [ "link" ], /* ... */ } ], "has_more": true, "url": "/v1/payment_intents" }

Verwenden Sie eine Schleife für das data-Array, um auf die Eigenschaften jedes Objekts zuzugreifen:

server.rb
Ruby
Python
PHP
Node
Java
Go
.NET
No results
paymentIntentList = Stripe::PaymentIntent.list({ limit: 3 }) for pi in paymentIntentList.data do puts pi.amount end

Sie können auch die automatische Paginierung verwenden, um alle Ergebnisse zu durchlaufen.

Erweiterung der Antworten

Einige Eigenschaften können erweitert oder einbezogen werden, d. h., Sie können sie mithilfe des Parameters expand zurückgeben. Beispiel:

  • Rufen Sie einen PaymentIntent ab und erweitern Sie die zugehörige PaymentMethod.
    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node
    Go
    .NET
    No results
    curl -G https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}} \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "expand[]"=payment_method
  • Rufen Sie eine Checkout-Sitzung ab und fügen Sie die Eigenschaft line_items hinzu.
    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node
    Go
    .NET
    No results
    curl -G https://api.stripe.com/v1/checkout/sessions/{{SESSION_ID}} \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "expand[]"=line_items

Erfahren Sie mehr über die Erweiterung von Antworten.

Anfrage-ID abrufen

Jeder API-Anfrage ist eine eindeutige Anfrage-ID (req_xxx) zugeordnet. Sie können sie verwenden, um die Anfrage im Dashboard zu überprüfen, um die von Stripe empfangenen Parameter anzuzeigen oder um sie an den Stripe-Support weiterzuleiten, wenn Sie ein Problem lösen müssen.

Sie finden die IDs in Ihren Dashboard-Protokollen oder direkt mit Code wie dem folgenden:

server.rb
Ruby
Python
PHP
Node
Java
Go
.NET
No results
customer = Stripe::Customer.create({ name: 'John Doe', }) puts customer.last_response.request_id

Zusätzliche Anfrageoptionen festlegen

Beim Senden von API-Anfragen können Sie zusätzliche Anfrageoptionen für Folgendes festlegen:

  • Setzen Sie eine spezifische API-Version.
  • Stellen Sie Anfragen für Ihre verbundenen Konten.
  • Geben Sie Idempotenz-Schlüssel an.

Fehlerbehebung

Jedes Server-SDK interpretiert Fehlerantworten von der Stripe-API als Ausnahmetypen, sodass Sie den Antwortstatus nicht selbst analysieren müssen. Verwenden Sie für jede Sprache geeignete Fehlerbehandlungskonventionen, um mit diesen Fehlern umzugehen.

server.rb
Ruby
Python
PHP
Node
Java
Go
.NET
No results
begin Stripe::PaymentIntent.create(params) rescue Stripe::CardError => e puts "A payment error occurred: #{e.error.message}" rescue Stripe::InvalidRequestError => e puts "An invalid request occurred." rescue Stripe::StripeError => e puts "Another problem occurred, maybe unrelated to Stripe." else puts "No error." end

Erfahren Sie mehr über die Fehlerbehebung.

Undocumented params and fields

In some cases, you might encounter parameters on an API request or fields on an API response that aren’t available using the SDKs for strongly typed languages. Use the workarounds in this section to send undocumented parameters or access undocumented fields.

Nicht dokumentierte Parameter senden:

Server.java
Java
Go
.NET
No results
CustomerCreateParams params = CustomerCreateParams.builder() .setEmail("jenny.rosen@example.com") .putExtraParam("secret_feature_enabled", "true") .build(); client.customers().create(params);

Zugriff auf nicht dokumentierte Felder:

Server.java
Java
Go
.NET
No results
final Customer customer = client.customers().retrieve("cus_1234"); Boolean featureEnabled = customer.getRawJsonObject() .getAsJsonPrimitive("secret_feature_enabled") .getAsBoolean();

Quellcode

Der Quellcode für jedes unserer Server-SDKs ist auf GitHub verfügbar:

SpracheRepository
Rubystripe-ruby
PHPstripe-php
Javastripe-Java
Nodestripe-node
Pythonstripe-python
.NETstripe-dotnet
Gostripe-go

StripeClient

Die StripeClient-Klasse fungiert als Einstiegspunkt, um Ressourcen zu entdecken und Anfragen an die Stripe-API zu stellen. Die Vorteile der Verwendung dieses Musters gegenüber dem älteren, das eine globale Konfiguration verwendete, sind:

  • Sie können gleichzeitig mehrere Clients mit unterschiedlichen Konfigurationsoptionen (wie API-Schlüsseln) verwenden.
  • Es ermöglicht einfacheres Mocking während des Testens, da StripeClient keine statischen Methoden verwendet.
  • Keine zusätzlichen API-Aufrufe. In einigen Programmiersprachen musste man vor einer Aktualisierung oder einer Löschung zunächst einen Abruf durchführen. Bei Verwendung von StripeClient können Sie auf alle API-Endpoints mit einem einzigen Methodenaufruf zugreifen.

Das Node.js SDK hatte immer die Stripe-Klasse, die dem gleichen Muster folgte. Für die übrigen Programmiersprachen wurde das neue Muster in den folgenden SDK-Versionen eingeführt. Wenn Sie den Code vergleichen, der auf ältere Versionen dieser Bibliotheken mit dem alten Muster abzielt, könnten die Aufrufe unterschiedlich aussehen.

MigrationsleitfädenVeröffentlichung von StripeClient
stripe-php-Migrationshandbuch7.33.0
stripe-python-Migrationsleitfaden8.0.0
stripe-java Migrationshandbuch23.0.0
stripe-ruby Migrationshandbuch13.0.0
stripe-dotnet Migrationshandbuch46.0.0
stripe-go Migrationshandbuch82.1.0

Beta-Versionen

Stripe hat Funktionen in der öffentlichen Vorschauphase, auf die Sie über Versionen der SDKs mit dem Suffix -beta.X (zum Beispiel 15.2.0-beta.2) zugreifen können. Erfahren Sie mehr über den Öffentlichen Vorschau-Release-Kanal.

War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc