サーバーサイド SDK の概要
Stripe のサーバー側 SDK をインストールして使用する方法について説明します。
Stripe のサーバー側 SDK を使用すると、Stripe の REST API が使用されるため必要な作業量が削減されます。Stripe が管理しているる SDK は、Ruby、PHP、Java、Python、Node、.NET、Go で利用できます。コミュニティライブラリは、他のサーバー言語でも利用できます。
インストールとセットアップ
以下の言語セレクターで言語を選択し、指示に従って SDK をインストールします。
インストールが完了したら、Stripe を初期化する必要があります。
API リクエストを送信する
Stripe API が使用されているオブジェクトは、主に作成、更新、削除、取得、一覧表示、検索の 6 つの方法で操作できます。次の例は、Customer
オブジェクトを用いて 6 つの方法をそれぞれ説明しています。
API リクエストには、さまざまなタイプのパラメーターを含めることができます。たとえば、name
(文字列)、address
(オブジェクト)、preferred_
(リスト) を使用して顧客を作成する方法を次に示します。
オブジェクトを更新するときに、そのプロパティの一部をクリアできます。動的な型付き言語の場合は、空の文字列を送信します。強力な型付き言語の場合は、特定の定数を使用します。たとえば、顧客の name
(文字列) と metadata
(キーと値のペアのハッシュ)を クリアする方法は次のとおりです。
この例では、すべてのメタデータをクリアしますが、個々のキーをクリアすることもできます。メタデータの管理について詳しくは、メタデータガイドをご覧ください。
API レスポンスにアクセスする
API リクエストを行うたびに、Stripe から応答が返されます。
オブジェクトを作成、取得、または更新すると、オブジェクト自体が返されます。
{ "id": "pi_001", "object": "payment_intent", "amount": 1099, "currency": "usd", /* ... */ }
変数を使用して、そのオブジェクトのプロパティにアクセスします。
オブジェクトを一覧表示または検索すると、要求されたオブジェクトと data
配列を含む List
オブジェクトが返されます。
{ "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" }
data
配列でループを使用して、各オブジェクトのプロパティにアクセスします。
自動ページ分割を使用して、すべての結果を反復することもできます。
レスポンスの拡張
一部のプロパティは展開可能または包含可能であり、expand
パラメーターを使用して返すことができます。たとえば:
- PaymentIntent を取得し、関連付けられている PaymentMethod を展開します。
- Checkout セッションを取得し、
line_
プロパティを含めます。items
詳しくは、レスポンスの拡張をご覧ください。
リクエスト ID を取得する
各 API リクエストには、一意のリクエスト ID (req_
) が関連付けられます。これは、ダッシュボードでリクエストを調べ、Stripe が受け取ったパラメーターを確認したり、問題の解決が必要な場合に Stripe サポートと問題を共有するために使用されます。
ID はダッシュボードのログで確認するか、次のようなコードで直接確認できます。
追加のリクエストオプションを設定する
API リクエストを送信するときに、追加のリクエストオプションを次のように設定できます。
- 特定のAPIバージョンを設定する。
- 連結アカウントでリクエストを行います。
- べき等キーを指定します。
エラー処理
各サーバー SDK は、Stripe API からのエラー応答を例外タイプとして解釈するため、応答ステータスを自分で解析する必要はありません。各言語に適したエラー処理規則を使用して、これらのエラーを処理します。
詳しくはエラー処理をご覧ください。
文書化されていないパラメーターとフィールド
場合によっては、APIリクエストのパラメーターやAPIレスポンスのフィールドで、強力に型指定された言語用のSDKでは使用できないものに遭遇することがあります。このセクションの回避策を使用して、ドキュメントに記載されていないパラメーターを送信したり、ドキュメントに記載されていないフィールドにアクセスしたりできます。
文書化されていないパラメーターを送信:
文書化されていないフィールドへのアクセス:
ソースコード
各サーバー SDK のソースコードは、GitHub で入手できます。
言語 | リポジトリー |
---|---|
Ruby | stripe-ruby |
PHP | stripe-php |
Java | stripe-Java |
Node | stripe-node |
Python | stripe-python |
.NET | stripe-dotnet |
Go | stripe-go |
StripeClient
StripeClient
クラスは、リソースを検出し、Stripe API にリクエストするのに役立つエントリーポイントとして機能します。このパターンを、グローバル設定を使用していた以前のパターンよりも使用するメリットは次のとおりです。
- 異なる設定オプション (API キーなど) を持つ複数のクライアントを同時に使用できます。
StripeClient
は静的メソッドを使用しないため、テスト中に模擬テストが容易になります。- 追加の API コール不要です。一部の言語では、更新や削除の前に取得処理が必要でしたが、
StripeClient
を使用することで、単一のメソッドコールですべての API エンドポイントにアクセスできます。
Node.js SDK には、常に同じパターンに従う Stripe
クラスがあります。その他の言語については、次の SDK バージョンで新しいパターンが追加されました。従来のパターンを使用する古いバージョンのライブラリをターゲットとするコードと比較する場合、呼び出し方法が異なって表示される場合があります。
移行ガイド | StripeClient リリース |
---|---|
Stripe-php 移行ガイド | 7.33.0 |
Stripe-python 移行ガイド | 8.0.0 |
Stripe-java 移行ガイド | 23.0.0 |
Stripe-ruby 移行ガイド | 13.0.0 |
stripe-dotnet マイグレーションガイド | 46.0.0 |
Stripe-go 移行ガイド | 82.1.0 |
ベータバージョン
Stripe には -beta.
サフィックス付きの SDK バージョン (例: 15.
) を通じてアクセス可能な パブリックプレビューフェーズ の機能があります。パブリックプレビューリリースチャンネル について詳しく学習してください。