0
0

More than 1 year has passed since last update.

request_log_urlで、StripeのAPI呼び出しエラーの詳細をStripeダッシュボードでチェックする

Posted at

Stripe APIを利用したシステムでは、Stripe APIのアップグレードだけでなく、呼び出し元のアプリの仕様変更やユーザーの意図しない操作などでAPIエラーが発生することがあります。

エラーへの対応は、SentryやRollbarを使ってリクエスト・レスポンスを調査するのが一般的ですが、実はStripeダッシュボードを利用することも可能です。

ダッシュボードからAPIログを確認する

ダッシュボードでは、[開発者]タブの[ログ]から、API呼び出しのログが確認できます。

スクリーンショット 2022-10-25 15.56.16.png

APIのパスや呼び出し結果(成功・失敗など)、Connectの親アカウントか子アカウントかなどでフィルタリングできます。

スクリーンショット 2022-10-25 15.56.46.png

ログの詳細画面では、「リクエストの本文(Body)」や「レスポンス」、「クエリパラメータ」・「呼び出し元のSDK・APIバージョン」などが確認できます。

スクリーンショット 2022-10-25 15.57.22.png

顧客情報など、個人情報を含みやすいStripeのAPIリクエストのデバッグでは、Stripeダッシュボードのログ機能を使うと安全にデバッグが可能です。

SDK / APIレスポンスのrequest_log_urlで、システムのログからダッシュボードのログにアクセスする

とはいえ、サーバーやSentryなどのトラッカーに記録されたログとは別にStripeのログまで監視するのは少し手間がかかります。

そんな場合にお勧めしているのが、「APIエラーレスポンスに含まれる、request_log_urlパラメータを使う」ことです。

request_log_urlには、「https://dashboard.stripe.com/test/logs/req_xxxx」のようなダッシュボードのログ詳細ページへのURLが含まれています。

このURLをエラートラッキングツールやSlack・メールの通知文に含めることで、「Stripe APIに関するエラー対応の時だけ、Stripeダッシュボードで詳細を確認する」ワークフローが実現できます。

JavaScript / TypeScriptで、エラーログURLを取得する方法

JavaScriptやTypeScriptで開発している場合、try catchでAPIエラーを取得し、その中からデータを取り出します。

try {
  await stripe.checkout.sessions.create({...})
} catch (error) {
  console.log(error.raw.request_log_url)
}

TypeScriptの場合、Stripe.errors.StripeAPIError型でもrawunknown型が指定されていますので、TypeGuardやas anyなどを利用します。


try {
  await stripe.checkout.sessions.create({...})
} catch (error) {
  console.log((error as any).raw.request_log_url)
}

SentryにコンテキストとしてURLを共有する

Sentryに通知する場合、以下のようにContextで送ることも可能です。

try {
  await stripe.checkout.sessions.create({...})
} catch (error) {
  Sentry.captureException(error, {
    contexts: {
        stripe_log_url: error.raw.request_log_url
    },
  });
}

[PR] Stripe開発者向け情報をQiitaにて配信中!

  • [Stripe Updates]:開発者向けStripeアップデート紹介・解説
  • ユースケース別のStripe製品や実装サンプルの紹介
  • Stripeと外部サービス・OSSとの連携方法やTipsの紹介
  • 初心者向けのチュートリアル(予定)

など、Stripeを利用してオンラインビジネスを始める方法について週に2〜3本ペースで更新中です。

-> Stripe Organizationsをフォローして最新情報をQiitaで受け取る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0