Amazon Pay API呼び出しからのエラーハンドリング
Amazon Pay API呼び出しからエラーを取得したときは、エラーの原因によっては、処理をリトライすることができるかもしれません。以下の表はリトライすることができるエラーのリストです。
ユニークなReference IDを使ってAPI呼び出すことで、既に成功したリクエストと同じ処理を呼び出すことができますが、重なるトランザクションは生成されません。新しいリクエストを初期化する変わりに、その呼び出しは最初の呼び出しの結果を返します。
Order Referenceリクエストを行うのためにはユニークなReference IDである AmazonOrderReferenceId が必要です。オーソリ、売上請求、返金リクエストのためには、それぞれユニークなIDとして AuthorizationReferenceId、 CaptureReferenceId、RefundReferenceId が必要です。
例えば、同じ売上請求オブジェクトに対して、同じRefundReferenceId を利用して返金することはできません。この機能は、以下の表で説明されている制約になったエラーについては安全にリトライするが認められています。
エラーを受け取った後で、処理呼び出しをリトライしたい場合は、最初のエラーレスポンス後にすぐにリトライできます。複数回リトライしたい場合は、設定された制限に対して 指数的バックオフ アプローチのインプリメントを推奨します。それから、エラーを記録し、手動でフォローアップと調査を行います。例えば、1秒、2秒、4秒、10秒、30秒と時間の間隔を上げてリトライを実行します。実際のバックオフ時間と制限は運用ルールに合わせます。
次の表はリトライ可能なエラーを説明します。
HTTPコード | HTTPステータス | 説明と対処方法 |
---|---|---|
500 | InternalServerError |
リクエストを完了する前にサーバは予期せぬ状態になりました。このエラーはリトライしても安全です。
このエラーは本番環境エンドポイントにSANDBOXセッションを要求することでよく起こります。またその逆もあります。 |
502 | Bad gateway | クライアントとサーバの間にあるゲートウェイやプロキシーサーバがリクエストを拒否しました。多くのケースでは、これは断続的に発生しますが、リトライしても安全です。継続的に発生する場合は、ネットワーク管理者に問合せしてください。 |
503 |
ServiceUnavailable
RequestThrottled |
サーバサイドで予期せぬ問題が発生したか、トランザクションの制限を超えたスロットルが発生しました。完全なスロットルの説明はMWSディベロッパーガイドを参照してください。クライアントはリクエストするか、リクエスト数を減らします。 |
504 | Gateway timeout | クライアントとサーバの間にあるゲートウェイやプロキシーサーバでタイムアウトがリクエストで発生しました。多くのケースでは、これは断続的に発生しますが、リトライしても安全です。 |
詳しい情報は、Amazon Pay APIリファレンスのエラーコードセクションを参照してください。