Amazon Payウィジェットのエラーハンドリング

Step 3:ボタンウィジェットの追加で説明した通りにボタン、アドレス帳、お支払い方法ウィジェットはエラー状況を通知するように設定できます。これらのウィジェットは、いくつかのインテグレーションエラーを生成してエラー通知を送ることができます。

次のコードサンプルは、エラーに関連されたerrorCodeとerrorMessageを参照する方法を説明します。これらのエラーコードは、素早くインテグレーションのデバッグを支援し、ロギングしていれば、本番環境サイト上の潜在的な問題を確認することができます。

 
<label>Debug error code     :</label>
<div id="errorCode"></div>

<label>Debug error message  :</label>
<div id="errorMessage"></div>

<div id="addressBookWidgetDiv">
</div>

<script>
  new OffAmazonPayments.Widgets.AddressBook({
    sellerId: 'YOUR_SELLER_ID_HERE',
    onOrderReferenceCreate: function(orderReference) {
      // Here is where you can grab the Order Reference ID.
      orderReference.getAmazonOrderReferenceId();
    },
    design: {
      designMode: 'responsive'
    },
    onError: function(error) {
      document.getElementById("errorCode").innerHTML = error.getErrorCode();
      document.getElementById("errorMessage").innerHTML = error.getErrorMessage();
    }

// The following are two examples of error handling code

    onError: function(error) {
      if(error.getErrorCode() == 'ITP') {
        // take no action -- allow interaction with widgets -- remove spinner/overlay if any
        return;
      }
      if(error.getErrorCode() == 'BuyerSessionExpired') {
        // take an action to move the customer to regular checkout, perhaps reroute to cart page
        window.location.href = '//my.ecommerce-shop.com/cart'; // send to the page which has a Amazon Pay Widgets(Button)
      }
    }
  }).bind("addressBookWidgetDiv");
</script>  
    

次の表のリストは、Amazon Payウィジェットから返されたいくつかのエラーコードとそれに対応するエラーメッセージです。購入者はウィジェット内でこれを確認できます。

エラーコード 説明 購入者に表示されるエラーメッセージ
AddressNotModifiable Order Referenceが与えられた状態の場合は、配送先住所を変更できません。 この注文では配送先住所を変更できません。販売事業者にご連絡ください。
BuyerNotAssociated 購入者は与えられたOrder Referenceに関連付けされていません。購入者はウィジェットが表示される前にサインインしなければなりません。 このセッションは有効ではありません。Amazonアカウントでお支払いボタンをクリックして再度ご購入してください。
BuyerSessionExpired 購入者セッションはAmazonでは期限切れです。購入者はウィジェットが表示される前にサインインしなければなりません。 セッションは期限切れです。Amazonアカウントでお支払いボタンをクリックして再度ご購入ください。
InvalidAccountStatus 販売事業者アカウントはこのリクエストを実行するために提供されていません。例えば、アカウントは登録がまだ完了していないなどです。 ボタンウィジェットが表示されエラーが発生した場合は、ウィジェットは表示されません。これらは購入者にメッセージを表示しません。アドレス帳ウィジェットやお支払い方法ウィジェットが表示されてエラーが発生した場合は、購入者にこのエラーが表示されます。

申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。
InvalidOrderReferenceId 指定されたOrder Reference のIDは無効です。 申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。
InvalidParameterValue 指定されたパラメータに割り当てられた値は有効ではありません。 ボタンウィジェットが表示されエラーが発生した場合は、ウィジェットは表示されません。これらは購入者にメッセージを表示しません。アドレス帳ウィジェットやお支払い方法ウィジェットが表示されてエラーが発生した場合は、購入者にこのエラーが表示されます。

申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。
InvalidSellerId 提供した販売事業者のIDは無効です。正しいIDを設定してください。 ボタンウィジェットが表示されエラーが発生した場合は、ウィジェットは表示されません。これらは購入者にメッセージを表示しません。アドレス帳ウィジェットやお支払い方法ウィジェットが表示されてエラーが発生した場合は、購入者にこのエラーが表示されます。

申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。
ITP 購入者は、IDを照合して安全に取引を完了するために、クッキーの使用許可をAmazon Payに付与する必要があります。 Amazon Payは、購入者にクッキーの使用許可を得るためのレスキューウィジェットを表示します。 このウィジェットが最初にレンダリングか、または購入者の操作の後に更新されると、onErrorコールバックのerrorCodeに「ITP」が発動されます。

販売事業者のサイトでは、onErrorコールバックのerrorCodeとして「ITP」が返された場合は、何もアクションをしなくてもよいです。購入者はAmazon Payのレスキューウィジェットを使用して許可を付与し、販売事業者の通常のチェックアウトフローに戻ります。

購入者がAmazon Payにクッキーの使用許可をしなかった場合は、onErrorコールバックはBuyerSessionExpiredエラーコードを返します。
MissingParameter 指定されたパラメータは間違っています、正しいパラメータを提供しなければなりません。 ボタンウィジェットが表示されエラーが発生した場合は、ウィジェットは表示されません。これらは購入者にメッセージを表示しません。アドレス帳ウィジェットやお支払い方法ウィジェットが表示されてエラーが発生した場合は、購入者にこのエラーが表示されます。

申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。
PaymentMethodNotModifiable Order Referenceが与えられた状態の場合は、支払方法を変更できません。 この注文では支払方法を変更できません。販売事業者にご連絡ください。
ReleaseEnvironmentMismatch Order Referenceオブジェクトが提示された環境とは一致しない環境で生成されたものです。ウィジェットとOrder Referenceオブジェクトは同じ環境でなければなりません。 申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。
StaleOrderReference 指定されたOrder Referenceは許可された時間内で確認されずキャンセルされました。キャンセルされたOrder Referenceの支払方法と住所は関連付けできません。 セッションは期限切れです。Amazonアカウントでお支払いボタンをクリックして再度ご購入ください。
UnknownError サービス内で未知のエラーがあります。 申し訳ございません。このWebサイトで問題が発生しました。販売事業者にご連絡ください。