コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
開発者向けのツール
SDK
API
    API v2
    API キー
    Stripe-Context ヘッダー
    日次の変更ログ
    レート制限
    自動化されたテスト
    メタデータ
    レスポンスの拡張
    ページ分割
    ドメインと IP アドレス
    検索
    各地域への適応
    エラー処理
    エラーコード
テスト
ワークベンチ
イベントの送信先
ワークフロー
Stripe CLI
Stripe Shell
開発者ダッシュボード
エージェントツールキット
LLM を使用した構築Visual Studio Code をご利用の場合Stripe 健全性アラートファイルのアップロード
Security and privacy
セキュリティ
プライバシー
Stripe を拡張する
Stripe Apps
Stripe のコネクター
パートナー
Partner Ecosystem
パートナー認定
ホーム開発者向けのツールAPI

自動化されたテスト

Stripe の実装で自動化されたテストを使用する方法をご紹介します。

ページをコピー

自動化されたテストは、サーバー側とクライアント側のコードのどちらのアプリケーション開発にも共通する部分です。Stripe Checkout や Payment Element などのフロントエンドのシステムには、自動化されたテストを防ぐためのセキュリティ対策が講じられており、Stripe API にもレート制限が設けられています。それでも、疑似データを使用して Stripe のインターフェースと API リクエストの出力をシミュレートし、アプリケーションの動作とそのエラー処理能力をテストできます。

クライアント側のテスト

Payment Element 使用時に取引の拒否などのエラーから回復するアプリケーションの能力をテストする場合は、テストコードに Error オブジェクトをハードコーディングするか、HTTP レスポンスで疑似エラーを返す API サービスを作成することで、シミュレーション済みの Error オブジェクトを返すことができます。Error オブジェクトは、カードが支払い拒否されたときに confirmPayment 関数で返される情報を表します。次のセクションで、シミュレーション済みの Error オブジェクトの生成方法をご覧いただけます。

エラーオブジェクトを生成する

まず、拒否された支払いのテストカード番号の 1 つを使用してテスト用の支払いインテントを確定し、Payment Element などのStripe UI 要素を手動で使用してエラーオブジェクトを生成します。以下のように、確認プロセス中のエラーをログに記録します。

client.js
const { error } = await stripe.confirmPayment({ elements, confirmParams: { return_url: 'https://example.com' }, }) ; if (error) { console.log(error) }

これにより、以下に示すようなブラウザーコンソールに記録されるエラーオブジェクトが生成されます。error_code などのプロパティの詳細は、使用されるカードと、生成されるエラーのタイプによって異なります。

{ "charge": "{{CHARGE_ID}}", "code": "card_declined", "decline_code": "generic_decline", "doc_url": "https://docs.stripe.com/error-codes#card-declined", "message": "Your card has been declined.", "payment_intent": {"id": "{{PAYMENT_INTENT_ID}}", …}, "payment_method": {"id": "{{PAYMENT_METHOD_ID}}", …}, "request_log_url": "https://dashboard.stripe.com/test/logs/req_xxxxxxx", "type": "card_error" }

Stripe.js 関数と Stripe API を呼び出す代わりに、この Error オブジェクトを返すようにテストを変更します。さまざまなテストカードを使用して、さまざまなエラーコードのエラーを生成し、アプリケーションが各タイプのエラーを正しく処理することを確認できます。

サーバー側のテスト

サーバー側の API コールをテストするときと同じ方法を使用できます。さまざまなエラー用の Stripe API レスポンスを手動で生成して、バックエンドの自動化されたテストに返されるレスポンスを模擬します。

たとえば、3DS を必要とするオフセッション支払いをアプリケーションが正しく処理できることを確認するテストを作成するには、Payment Method pm_card_authenticationRequired を使用し、確定を true に設定して Payment Intent を作成することでレスポンスを生成できます。

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=2099 \ -d currency=usd \ -d payment_method=pm_card_authenticationRequired \ -d confirm=true \ -d off_session=true

これにより、requires_confirmation のステータスと、next_action のような 3DS 認証に関連するプロパティを持つ Payment Intent が生成されます。

{ "id": "{{PAYMENT_INTENT_ID}}", "object": "payment_intent", ... "next_action": { "type": "use_stripe_sdk", ... }, ... "status": "requires_confirmation", ... }

支払いライフサイクルの複数のステージを反映した PaymentIntent オブジェクトを生成すると、PaymentIntent が別のステータスに移行する際のアプリケーションの挙動をテストすることができます。このアプローチを自動化テストで使用して、システムがさまざまな結果に適切に応答できることを確認します。たとえば、顧客にオンセッションに戻ってもらい、次のアクションが必要な支払いを認証するようにリクエストする応答などがあります。

このアプローチを使用する状況

上記の例は、すべてアプリケーションの動作テストにかかわるもので、継続的なシステムテストで用いるのに適しています。Stripe API のレスポンスを検証するためにテストを実行する必要がある場合、テスト環境で API にリクエストを行うことは許容されています。Stripe API リクエストを使用して、Stripe API のレスポンスが変更されていないことを定期的に検証することもできますが、レート制限を回避するために、これらのテストの実行頻度は少なくしてください。

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