Amazon Pay API呼び出しからのエラーハンドリング

Amazon Pay API呼び出しからエラーを取得したときは、エラーの原因によっては、処理をリトライすることができるかもしれません。以下の表はリトライすることができるエラーのリストです。

ユニークなReference IDを使ってAPI呼び出すことで、既に成功したリクエストと同じ処理を呼び出すことができますが、重なるトランザクションは生成されません。新しいリクエストを初期化する変わりに、その呼び出しは最初の呼び出しの結果を返します。

Order Referenceリクエストを行うのためにはユニークなReference IDである AmazonOrderReferenceId が必要です。オーソリ、売上請求、返金リクエストのためには、それぞれユニークなIDとして AuthorizationReferenceIdCaptureReferenceIdRefundReferenceId が必要です。

例えば、同じ売上請求オブジェクトに対して、同じRefundReferenceId を利用して返金することはできません。この機能は、以下の表で説明されている制約になったエラーについては安全にリトライするが認められています。

エラーを受け取った後で、処理呼び出しをリトライしたい場合は、最初のエラーレスポンス後にすぐにリトライできます。複数回リトライしたい場合は、設定された制限に対して 指数的バックオフ アプローチのインプリメントを推奨します。それから、エラーを記録し、手動でフォローアップと調査を行います。例えば、1秒、2秒、4秒、10秒、30秒と時間の間隔を上げてリトライを実行します。実際のバックオフ時間と制限は運用ルールに合わせます。

次の表はリトライ可能なエラーを説明します。

HTTPコード HTTPステータス 説明と対処方法
500 InternalServerError リクエストを完了する前にサーバは予期せぬ状態になりました。このエラーはリトライしても安全です。

このエラーは本番環境エンドポイントにSANDBOXセッションを要求することでよく起こります。またその逆もあります。
502 Bad gateway クライアントとサーバの間にあるゲートウェイやプロキシーサーバがリクエストを拒否しました。多くのケースでは、これは断続的に発生しますが、リトライしても安全です。継続的に発生する場合は、ネットワーク管理者に問合せしてください。
503 ServiceUnavailable

RequestThrottled
サーバサイドで予期せぬ問題が発生したか、トランザクションの制限を超えたスロットルが発生しました。完全なスロットルの説明はMWSディベロッパーガイドを参照してください。クライアントはリクエストするか、リクエスト数を減らします。
504 Gateway timeout クライアントとサーバの間にあるゲートウェイやプロキシーサーバでタイムアウトがリクエストで発生しました。多くのケースでは、これは断続的に発生しますが、リトライしても安全です。

詳しい情報は、Amazon Pay APIリファレンスのエラーコードセクションを参照してください。