AuthorizeOnBillingAgreement処理の同期と非同期モード | Amazon Pay Japan

AuthorizeOnBillingAgreement処理の同期と非同期モード

AuthorizeOnBillingAgreement処理は次の2つの機能です。

  • 非同期モード-- このモードでは、AuthorizeOnBillingAgreement処理は非同期レスポンス内のオーソリオブジェクトについて常にPendingステータスを返します。最終処理ステータス(OpenまたはDeclined)を得るためにインスタント支払通知(IPN)を確認しなければなりません。
  • 同期モード-- このモードでは、AuthorizeOnBillingAgreement処理はオーソリオブジェクトのレスポンスで常にOpenDeclinedステータスを返します。

AuthorizeOnBillingAgreement処理の処理方法の選択は、運用ルールと技術的な観点から判断します。

非同期モード

非同期モードの処理については、値を設定しない、または、0以外の値をAuthorizeOnBillingAgreement処理のTransactionTimeoutリクエストパラメータに設定することで選択できます。TransactionTimeoutリクエストパラメータの有効な値についての詳しい情報は、Amazon Pay APIリファレンスのAuthorizeを参照してください。

次のコードサンプルはAuthorizeOnBillingAgreement処理で非同期モードを有効にする方法を表しています。

 
https://mws.amazonservices.com/OffAmazonPayments_Sandbox/2013-01-01  
?AWSAccessKeyId=AKIAJKYFSJU7PEXAMPLE  
&Action=AuthorizeOnBillingAgreement  
&AmazonBillingAgreementId=C01-1234567-1234567  
&AuthorizationAmount.Amount=10  
&AuthorizationAmount.CurrencyCode=USD  
&AuthorizationReferenceId=test_authorize_1  
&MWSAuthToken=amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE  
&SellerId=YOUR_SELLER_ID_HERE  
&SellerAuthorizationNote=ForNovemberOrder  
&SellerOrderAttributes.SellerOrderId=testSellerOrderId  
&SellerOrderAttributes.StoreName=testStore  
&SellerOrderAttributes.CustomInformation=ExampleInformation  
&InheritShippingAddress=true  
&SignatureMethod=HmacSHA256  
&SignatureVersion=2  
&Timestamp=2012-10-03T19%3A01%3A11Z  
&TransactionTimeout=60  
&Version=2013-01-01  
&Signature=WlQ708aqyHXMkoUBk69Hjxj8qdh3aDcqpY71hVgEXAMPLE

非同期モードの処理では、AuthorizeOnBillingAgreementリクエストで生成されたオーソリオブジェクトのレスポンス内に、最初はPendingステータスを約2〜3秒以内で返されます。インスタント支払通知(IPN)を経由して最終の処理ステータス(OpenDeclined)が約60秒以内に返ります。ごく稀に、Amazon Payが手動でトランザクションを調査した時に、最終の処理ステータスを指定したTransactionTimeout値まで、または、TransactionTimeout値が指定されていない場合の24時間までは受け取れないかもしれません。

運用ルールと技術的な観点から24時間までにトランザクションを保持可能な場合は、Amazonは非同期モードを推奨します。オーソリのステータスがDeclinedで返ってきた場合は、購入者にトランザクションが失敗したことの通知が必要になり、Amazon PayのWebサイトから支払方法の変更を彼らに要求し、代わりの支払方法を取得します。または、Declinedの理由コードよりトランザクションをキャンセルします。詳しい情報は「支払失敗のハンドリング」を参照してください。

このモードを選択することで、より多くのトランザクション調査の時間をAmazonに提供し通常は低いオーソリ失敗率の結果になります。

同期モード

TransactionTimeoutリクエストパラメータに0を設定することで、同期モードを選択できます。

次のコードサンプルはAuthorizeOnBillingAgreement処理で同期モードを有効にする方法を表しています。

 
https://mws.amazonservices.com/OffAmazonPayments_Sandbox/2013-01-01  
?AWSAccessKeyId=AKIAJKYFSJU7PEXAMPLE  
&Action=AuthorizeOnBillingAgreement  
&AmazonBillingAgreementId=C01-1234567-1234567  
&AuthorizationAmount.Amount=10  
&AuthorizationAmount.CurrencyCode=USD  
&AuthorizationReferenceId=test_authorize_1  
&MWSAuthToken=amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE  
&SellerId=YOUR_SELLER_ID_HERE  
&SellerAuthorizationNote=ForNovemberOrder  
&SellerOrderAttributes.SellerOrderId=testSellerOrderId  
&SellerOrderAttributes.StoreName=testStore  
&SellerOrderAttributes.CustomInformation=ExampleInformation  
&InheritShippingAddress=true  
&SignatureMethod=HmacSHA256  
&SignatureVersion=2  
&Timestamp=2012-10-03T19%3A01%3A11Z  
&TransactionTimeout=0  
&Version=2013-01-01  
&Signature=WlQ708aqyHXMkoUBk69Hjxj8qdh3aDcqpY71hVgEXAMPLE

同期モードの処理では、AuthorizeOnBillingAgreementリクエストのレスポンス内でのオーソリオブジェクトはOpenDeclinedを約6〜8秒以内に返します。Amazon Payがオーソリ同期を処理することが出来ない場合は、処理はTransactionTimedOutの理由コードと同時にDeclined返します。

購入者がサイトに滞在している間にオーソリまたは売上請求支払を行いたいシナリオを持っている場合は、Amazon Payは同期モードを推奨します。例えば、デジタルダウンロードを提供したい場合、または、すぐの配送を保証している場合です。

このモードを選択することで、高いオーソリの失敗率でAmazon PayがいくつかのオーソリをPendingからDeclinedに遷移することをよく見るかもしれません。これらのオーソリ失敗はTransactionTimedOutの理由コードを確認することで判断できます。同期モードでは、購入者がサイトに滞在している間に失敗をハンドリングできます。詳しい情報は「支払失敗のハンドリング」を参照してください。