# 本番環境開始のチェックリスト 導入を本番環境に移行する際には、このチェックリストを使用してください。 > [Stripe パートナーになる](https://stripe.com/partners/become-a-partner)ことで、その他のベストプラクティスにアクセスしたり、Stripe から関連するニュースや最新情報を受け取ることができます。 各項目を完了してチェックマークを付けると、各チェックボックスの状態がブラウザのキャッシュに保存されます。いつでもこのページを参照して、完了済みの項目を確認できます。 [ログイン](https://dashboard.stripe.com)すると、現在の設定の一部を確認できます。 Stripe は、本番環境と*サンドボックス* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes)環境が[可能な限り同じように](https://docs.stripe.com/keys.md#test-live-modes)動作するように設計しています。環境の切り替えは、大抵 [API キー](https://docs.stripe.com/keys.md)の交換によって行われます。 開発者の場合、または開発者に導入を依頼した場合は、本番環境へ移行する前に次の項目についても検討する必要があります。連携されたウェブサイトまたはプラグインを通じて Stripe を使用している場合は、ほとんどが当てはまりません。 - [ ] API バージョンを設定する > API バージョンを上書きしない限り、すべてのリクエストはアカウントの API 設定を使用します。[changelog](https://docs.stripe.com/upgrades.md#api-versions) には、使用可能なすべてのバージョンが記載されます。[エンドポイントの作成](https://docs.stripe.com/api/webhook_endpoints/create.md) 中に API バージョンを設定しない限り、デフォルトでは Webhook イベントはアカウントの API バージョンに従って構造化されます。 強い型付け言語 (Go、Java、TypeScript、.NET) を使用している場合、サーバー側ライブラリは、使用しているライブラリのバージョンに基づいて API バージョンを固定します。Stripe によるバージョン管理方法に慣れていない場合は、[versioning](https://docs.stripe.com/sdks.md#server-side-libraries) をご覧ください。 以下の方法ですべてが同期していることを確認します。 - ダッシュボード内の[ワークベンチ](https://dashboard.stripe.com/workbench)で最新の API バージョンにアップグレードします。 - 動的言語 (Node.js、PHP、Python、Ruby) の場合は、サーバー側ライブラリの [API バージョンを設定](https://docs.stripe.com/sdks.md#server-side-libraries)します - 強力な型付き言語 (Go、Java、TypeScript、.NET) の場合は、選択したライブラリの[最新バージョンにアップグレード](https://docs.stripe.com/sdks.md#server-side-libraries)します - [ ] エッジケースの処理 Stripe では、いくつかの[テスト値](https://docs.stripe.com/testing.md)を用意しており、これを使用してさまざまな状態とレスポンスを再現できます。これらのオプションに加えて、以下のデータでシステムをテストしてデューデリジェンスを行ってください。 - 不完全なデータ - 無効なデータ - 重複データ (たとえば、同じリクエストを再試行してどうなるかを確認する)。また、実装のテストを他の人 (特に開発者ではない人) に依頼することもお勧めします。 - [ ] API エラー処理の審査 本番環境へ移行してから、「起きてはならない」エラーを含め、考えられるすべての [error type](https://docs.stripe.com/api/errors.md) を処理するコードが適切に記述されていないことに気付くことがないようにしてください。コードが防御的であり、一般的なエラーだけでなく、すべての可能性に対処できることを確認してください。 エラー処理をテストするときは、ユーザーに表示される情報に特に注意して確認してください。支払い拒否されたクレジットカード (つまり、`card_error`) は、バックエンドのエラー (たとえば、`invalid_request_error`) とは別の問題です。 - [ ] ログ記録を確認する Stripe は、API キーを使用して行われたすべてのリクエストをログに記録しており、これらの記録は [ダッシュボード](https://dashboard.stripe.com/logs)で確認できます。冗長に思われるかもしれませんが、すべての重要なデータをお客様側でもログに記録することをお勧めします。お客様のサーバーが Stripe に接続できない場合、または API キーに問題がある場合、どちらの場合も弊社がリクエストをログに記録できなくなるため、お客様自身のログがバックアップとして機能します。 ログを定期的に検査して、必要な情報のみがログに保存されていること、機密性の高い情報 (クレジットカード詳細や個人を特定できる情報など) は保存されていないことを確認してください。 - [ ] テストオブジェクトに依存していないことを確認する サンドボックス環境で作成された Stripe オブジェクト (プラン、クーポン、商品、SKU など) は、本番環境では使用できません。これにより、テストデータが本番環境のコードで誤って使用されるのを防ぐことができます。本番環境で必要なオブジェクトを再作成するときは、必ず同じ ID 値 (たとえば、同じ「名前」ではなく同じプラン「ID」) を使用して、コードが問題なく機能し続けることを確認してください。 - [ ] 本番用 Webhook が登録されていることを確認する Stripe アカウントでは、テスト用と本番用の両方の [Webhook エンドポイント](https://docs.stripe.com/webhooks.md)を設定できます。Webhook を使用している場合は、Stripe アカウントで本番用エンドポイントを定義していることを確認してください。その後、本番用エンドポイントがテスト用エンドポイントとまったく同じように機能することを確認します。 Webhook ステータスを確認する際、本番エンドポイントが次の点も確認してください。 - 遅延する Webhook 通知を処理する - 重複する Webhook 通知を処理する - イベント通知が特定の順序で発生する必要はない - [ ] API お知らせメーリングリストに登録する すべての開発者が [API の更新メーリングリスト](https://groups.google.com/a/lists.stripe.com/forum/#!forum/api-announce)に登録して、Stripe がリリースする新機能を常に把握できるようにしておくことをお勧めします。 - [ ] API キーを変更して保護する セキュリティ対策として、定期的に [API キーをローテーション](https://docs.stripe.com/keys.md#rolling-keys)することをお勧めします。本番環境へ移行する前に、以下を行ってください。 - 開発中にキーがコードベース外のどこかに保存された場合に備えて、キーをローテーションしてください。 - コードに API キーが含まれていないことを確認してください。 - 導入を本番環境に移行する前に、[シークレット API キーを管理するためのその他のベストプラクティス](https://docs.stripe.com/keys-best-practices.md)を確認してください。