Step5:Billing Agreementの確認
注意:支払のオーソリを行うのであれば、このステップはスキップすることができます、支払手段が有効であるかオーソリはチェックします。
オプションステップのように、購入者に注文完了ページを表示する前にValidateBillingAgreement処理を呼び出すことで、購入者が選択した支払方法とBilling Agreementステータスを確認できます。これはその時の購入者によって選択された支払方法を保証し、後の時点で購入者に請求する場合に発生する可能性のある支払の失敗を減らします。
次のサンプルは、ValidateBillingAgreement処理を呼び出す方法を表します。
https://mws.amazonservices.com/OffAmazonPayments_Sandbox/2013-01-01?AWSAccessKeyId=AKIAJKYFSJU7PEXAMPLE
&AmazonBillingAgreementId=C01-8824045-7416542
&Action=ValidateBillingAgreement
&MWSAuthToken=amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE
&SellerId=YOUR_SELLER_ID_HERE
&SignatureMethod=HmacSHA256
&SignatureVersion=2
&Timestamp=2013-12-11T10%3A38%3A44.000Z
&Version=2013-01-01
&Signature=gP11oEBaaiQdASWsLDyid18Wn%2BB%2FKZQQtKgpHCtDHdc%3D
ValidateBillingAgreement処理は、ValidationResultパラメータの値としてSuccessまたはFailureを返します。Failureが返された場合は、理由コードも返っています。次は個々の理由コードを扱うための提案です。
- InvalidPaymentMethodは購入者によって選択された支払方法が正しくないことを示します(例えば、有効期限切れ、無効な請求住所など)。この場合は、Billing AgreementオブジェクトもSuspended状態に遷移し、多くのAuthorizeOnBillingAgreement処理はDeclinedになります。購入者にBilling Agreementオブジェクトに関連した支払方法を更新するようにリクエストするべきです。
- ValidationTimedOutはAmazon PayがBilling Agreementを数秒以内に確認出来なかったことを示し、ValidationResultにFailureを受け取ります。Amazonはいずれか経った後にこのリクエストをリトライすることを提案します。リクエストを数回リトライした後に成功しなかった場合は、購入者の支払方法に問題があることになります。Amazon PayのWebサイトかあなたのWebサイトから支払方法を更新することを購入者にリクエストし、購入者が支払方法を更新してからリクエストをリトライします。