コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
Essentials
SDK
    概要
    サーバー側 SDK
    ウェブ
    ES Module Stripe.js
    React Stripe.js
    モバイル
    iOS SDK
    Android SDK
    React Native SDK
    iOS SDK 24 に移行
    Android SDK 21 に移行
    端末
    iOS SDK
    Android SDK
    React Native SDK
    コミュニティー
    コミュニティ SDK
API
テスト
Stripe CLI
サンプルプロジェクト
ツール
ワークベンチ
開発者ダッシュボード
Stripe Shell
Visual Studio Code をご利用の場合
機能
ワークフロー
イベントの送信先
Stripe 健全性アラートファイルのアップロード
AI ソリューション
エージェントツールキット
モデルコンテキストプロトコル
セキュリティとプライバシー
セキュリティ
Stripebot ウェブクローラー
プライバシー
Stripe を拡張する
Stripe Appsを構築する
Stripe アプリを使用する
パートナー
Partner Ecosystem
パートナー認定
ホーム開発者向けリソースSDKs

サーバーサイド SDK の概要

Stripe のサーバー側 SDK をインストールして使用する方法について説明します。

Stripe のサーバー側 SDK を使用すると、Stripe の REST API が使用されるため必要な作業量が削減されます。Stripe が管理しているる SDK は、Ruby、PHP、Java、Python、Node、.NET、Go で利用できます。コミュニティライブラリは、他のサーバー言語でも利用できます。

インストールとセットアップ

以下の言語セレクターで言語を選択し、指示に従って SDK をインストールします。

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

インストールが完了したら、Stripe を初期化する必要があります。

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

API リクエストを送信する

Stripe API が使用されているオブジェクトは、主に作成、更新、削除、取得、一覧表示、検索の 6 つの方法で操作できます。次の例は、Customer オブジェクトを用いて 6 つの方法をそれぞれ説明しています。

John Doe という名前の顧客を作成します。

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

API リクエストには、さまざまなタイプのパラメーターを含めることができます。たとえば、name (文字列)、address (オブジェクト)、preferred_locales (リスト) を使用して顧客を作成する方法を次に示します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
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

オブジェクトを更新するときに、そのプロパティの一部をクリアできます。動的な型付き言語の場合は、空の文字列を送信します。強力な型付き言語の場合は、特定の定数を使用します。たとえば、顧客の name (文字列) と metadata (キーと値のペアのハッシュ)を クリアする方法は次のとおりです。

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

この例では、すべてのメタデータをクリアしますが、個々のキーをクリアすることもできます。メタデータの管理について詳しくは、メタデータガイドをご覧ください。

API レスポンスにアクセスする

API リクエストを行うたびに、Stripe から応答が返されます。

オブジェクトを作成、取得、または更新すると、オブジェクト自体が返されます。

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

変数を使用して、そのオブジェクトのプロパティにアクセスします。

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

オブジェクトを一覧表示または検索すると、要求されたオブジェクトと data 配列を含む List オブジェクトが返されます。

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" }

data 配列でループを使用して、各オブジェクトのプロパティにアクセスします。

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

自動ページ分割を使用して、すべての結果を反復することもできます。

レスポンスの拡張

一部のプロパティは展開可能または包含可能であり、expand パラメーターを使用して返すことができます。たとえば:

  • PaymentIntent を取得し、関連付けられている PaymentMethod を展開します。
    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl -G https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}} \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "expand[]"=payment_method
  • Checkout セッションを取得し、line_items プロパティを含めます。
    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl -G https://api.stripe.com/v1/checkout/sessions/{{SESSION_ID}} \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
    \ -d "expand[]"=line_items

詳しくは、レスポンスの拡張をご覧ください。

リクエスト ID を取得する

各 API リクエストには、一意のリクエスト ID (req_xxx) が関連付けられます。これは、ダッシュボードでリクエストを調べ、Stripe が受け取ったパラメーターを確認したり、問題の解決が必要な場合に Stripe サポートと問題を共有するために使用されます。

ID はダッシュボードのログで確認するか、次のようなコードで直接確認できます。

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

追加のリクエストオプションを設定する

API リクエストを送信するときに、追加のリクエストオプションを次のように設定できます。

  • 特定のAPIバージョンを設定する。
  • 連結アカウントでリクエストを行います。
  • べき等キーを指定します。

エラー処理

各サーバー SDK は、Stripe API からのエラー応答を例外タイプとして解釈するため、応答ステータスを自分で解析する必要はありません。各言語に適したエラー処理規則を使用して、これらのエラーを処理します。

server.rb
Ruby
Python
PHP
Node.js
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

詳しくはエラー処理をご覧ください。

文書化されていないパラメーターとフィールド

場合によっては、APIリクエストのパラメーターやAPIレスポンスのフィールドで、強力に型指定された言語用のSDKでは使用できないものに遭遇することがあります。このセクションの回避策を使用して、ドキュメントに記載されていないパラメーターを送信したり、ドキュメントに記載されていないフィールドにアクセスしたりできます。

文書化されていないパラメーターを送信:

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);

文書化されていないフィールドへのアクセス:

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

ソースコード

各サーバー SDK のソースコードは、GitHub で入手できます。

言語リポジトリー
Rubystripe-ruby
PHPstripe-php
Javastripe-Java
Nodestripe-node
Pythonstripe-python
.NETstripe-dotnet
Gostripe-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.X サフィックス付きの SDK バージョン (例: 15.2.0-beta.2) を通じてアクセス可能な パブリックプレビューフェーズ の機能があります。パブリックプレビューリリースチャンネル について詳しく学習してください。

このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 早期アクセスプログラムにご参加ください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc