コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
開発者向けのツール
SDK
    概要
    サーバー側 SDK
    モバイルの SDK
    iOS SDK
    Android SDK
    React Native SDK
    ウェブの SDK
    ES Module Stripe.js
    React Stripe.js
    Terminal SDK
    iOS SDK
    Android SDK
    React Native SDK
    コミュニティー
    コミュニティ SDK
    モバイル移行
    iOS SDK 24 に移行
    Android SDK 21 に移行
API
テスト
ワークベンチ
イベントの送信先
ワークフロー
Stripe CLI
Stripe Shell
開発者ダッシュボード
エージェントツールキット
LLM を使用した構築Visual Studio Code をご利用の場合Stripe 健全性アラートファイルのアップロード
セキュリティとプライバシー
セキュリティ
プライバシー
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
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

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

server.rb
Ruby
require 'stripe' Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'

API リクエストを送信する

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

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

Command Line
cURL
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="John Doe"

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

Command Line
cURL
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
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
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
paymentIntentList = Stripe::PaymentIntent.list({ limit: 3 }) for pi in paymentIntentList.data do puts pi.amount end

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

レスポンスの拡張

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

  • PaymentIntent を取得し、関連付けられている PaymentMethod を展開します。
    Command Line
    cURL
    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
    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
customer = Stripe::Customer.create({ name: 'John Doe', }) puts customer.last_response.request_id

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

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

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

エラー処理

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

server.rb
Ruby
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

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

プライベートプレビュー版機能

Stripe は、すぐには公開されない新しいプロパティやパラメーターを導入する非公開ベータ機能を定期的にリリースしています。動的に型付けされた SDK (PHP、Node、Ruby、Python) は、これらを自動的にサポートします。厳密に型指定された SDK (Java、.NET、Go) の場合、ベータリリースでサポートされていなければ次のコードを適用します。

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

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

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

Server.java
Java
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

クライアントサービスパターン

一部の SDK では、操作の実行方法を変更するクライアントサービスパターンが導入されています。この新しいサービスパターンを使用すると、静的メソッドなしでモックを作成できるようになり、複数のクライアントインスタンスを個別の構成で同時に動作させることができます。

これらのライブラリの古いバージョンを対象とするコードをリソースベースのパターンと比較する場合、呼び出しは異なって見える可能性があります。

SDKクライアント/サービスのリリース移行ガイド
stripe-php7.33.0GitHub Wiki
stripe-python8.0.0GitHub Wiki

ベータバージョン

5.1.0-beta.3 や 5.1.0b3 など、beta または b ファイル名の接尾辞で識別できるベータ SDK を提供しています。これにより、開発中の製品や機能にアクセスでき、一般提供前にフィードバックを共有できます。

ベータ SDK リリースには、それぞれの GitHub リポジトリーの readme.md ファイルからアクセスします。

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