お支払い方法ウィジェットの再レンダリング

多くの場合では、購入者がアドレス帳ウィジェットを選択した場合は自動的にお支払い方法ウィジェットはリフレッシュされます。しかしながら、Webサイトのパフォーマンスや購入者の問題によってお支払い方法ウィジェットの再レンダリングは影響されます。

購入処理中にいくつかの制約が返された場合に、お支払い方法ウィジェットの再レンダリングが本当に要求されることがあります。次はそれらの例です。

  • PaymenetMethodNotAllowed - Amazon Payは与えられたトランザクションのための全ての支払方法について許可しませんでした。SetOrderReferenceDetailsGetOrderRefereneDetails処理の呼び出した後で、レスポンス内の PaymentMethodNotAllowed制約を確認できます。Order Referenceの確認を試みることで、制約はエラーコードConstraintsExistを返されます。
  • InvalidPaymentMethod - 購入者の支払方法に問題がある場合は失敗します。よって、GetAuthorizationDetails API呼び出しを行った後で、InvalidPaymentMethodの理由コードになっている Declined状態のレスポンスを確認します。

ベストプラクティスは、お支払い方法ウィジェットを再レンダリングし、購入者に異なる支払方法を選択してもらうべきです。

処理内容

アドレス帳ウィジェットから生成されたOrder Reference IDに結びつけてお支払い方法ウィジェットを再レンダリングするためには、次のサンプルの通りになります。

 
<!-- Place this code in your HTML where you would like the  
     Wallet widget to appear. -- >  
<div id="walletWidgetDiv"></div>  
  
<script>  
  new OffAmazonPayments.Widgets.Wallet({  
    sellerId: 'YOUR_SELLER_ID_HERE',  
  
    // Tie the order reference Id obtained  
    // from the addressBook Widget  
    amazonOrderReferenceId: ADDRESSBOOK_ORDER_REFERENCE_ID,  
  
    onPaymentSelect: function(orderReference) {  
      // Replace this code with the action you want  
      // to perform after the payment method is selected.  
    },  
    design: {  
      designMode: 'responsive'  
    },  
  
    onError: function(error) {  
      // Your error handling code.  
      // During development you can use the following  
      // code to view error messages:  
      // console.log(error.getErrorCode()  
      //   + ': '  
      //   + error.getErrorMessage());  
      // See "Handling Errors" for more information.  
    }  
  }).bind("walletWidgetDiv");  
</script>

最後に、お支払いウィジェットをレンダリングするために、ページをリロードするか、Javascript関数を呼び出します。