Step 5:注文詳細のセットと確認

支払要求を行う前に、アドレス帳お支払い方法ウィジェットのステップ内で入手した OrderReferenceIdを利用して注文のセットと確認を行います。

処理内容

  1. SetOrderReferenceDetails API呼び出しを行います。リクエストするには、 OrderReferenceAttributesの次の属性をセットします。 必須:
    • Amazon Order Reference ID
    • Order Total(注文金額と通貨コード)
    Amazon Order Reference IDはユニークな値であることを確認します。詳しい情報はAmazon Pay API呼び出しからのエラーハンドリングを参照してください。
    強く勧めるオプション:
    • Store Name
    • Seller Order ID
    • Seller Note
    Store Nameと Seller Informationのセットは、購入者メールとアカウント状態に影響して詳細表示され、情報はIPNメッセージ内、決済とトランザクションレポートで返されます。 注:注文が行われる前にStore Name、Seller Order ID、Seller Note、Platform ID、またはCustomInformationを設定できない場合は、注文後(ConfirmOrderReference実行完了後)に、SetOrderAttributes API呼び出し、これらのパラメータを設定することが可能です。詳細については、購入後の注文属性の追加を参照してください。    
  2. ConfirmOrderReference APIの呼び出しを行います。SetOrderReferenceDetails API呼び出しが成功した場合は、ConfirmOrderReference API呼び出しを行うことで、OrderReferenceオブジェクトを確認します。このステップは購入者がサイト上で注文したことをAmazonに通知します。ConfirmOrderReference呼び出しが成功した場合は、Order Referenceオブジェクトは Open状態にセットされ、Amazonは確認のために購入者に対してAmazon Payを利用した購入支払がされることを「ご利用内容の確認」メールとして送信します。レスポンスが制約で返された場合は再処理を試みてください。例えば、 PaymentPlanNotSet 制約のケースでは、購入者に異なる支払方法の選択するように案内します。これ以外のメッセージを画面上に表示できるか、購入者を適切なページに遷移することもできます。
  3. GetOrderReferenceDetails呼び出しを行います。Order Referenceの承認が成功した後は、最新の住所であるか確実にするために、名前や配送先住所のような残りの購入者情報を取得するためのGetOrderReferenceDetails APIを呼び出すことができます。

注意: API呼び出しのエラーハンドリングを導入する必要があり、APIレスポンスの結果についてテストする必要があります。詳しい情報は「エラーハンドリング」を参照してください。

サンプルコード

Pythonサンプルコード(US)

SetOrderReferenceDetails APIの呼び出し

 
from pay_with_amazon.client import PayWithAmazonClient  
    client = PayWithAmazonClient(  
    mws_access_key='YOUR_ACCESS_KEY',  
    mws_secret_key='YOUR_SECRET_KEY',  
    merchant_id='YOUR_MERCHANT_ID',  
    region='na',  
    currency_code='USD')  
  
response = client.set_order_reference_details(  
    amazon_order_reference_id='AMAZON_ORDER_REFERENCE_ID',  
    order_total='1.00',  
    seller_note='My seller note.',  
    seller_order_id='MY_UNIQUE_ORDER_ID',  
    store_name='My store name.',  
    custom_information='My custom information.')

ConfirmOrderReference APIの呼び出し

 
from pay_with_amazon.client import PayWithAmazonClient  
  
client = PayWithAmazonClient(  
    mws_access_key='YOUR_ACCESS_KEY',  
    mws_secret_key='YOUR_SECRET_KEY',  
    merchant_id='YOUR_MERCHANT_ID',  
    region='na',  
    currency_code='USD')  
  
response = client.confirm_order_reference(  
    amazon_order_reference_id='AMAZON_ORDER_REFERENCE_ID')

GetOrderReferenceDetails APIの呼び出し

 
Making a call to the GetOrderReferenceDetails API  
from pay_with_amazon.client import PayWithAmazonClient  
  
client = PayWithAmazonClient(  
    mws_access_key='YOUR_ACCESS_KEY',  
    mws_secret_key='YOUR_SECRET_KEY',  
    merchant_id='YOUR_MERCHANT_ID',  
    region='na',  
    currency_code='USD')  
  
response = client.get_order_reference_details(  
    amazon_order_reference_id='AMAZON_ORDER_REFERENCE_ID',  
    address_consent_token='ADDRESS_CONSENT_TOKEN')

Rubyサンプルコード(US)

SetOrderReferenceDetails APIの呼び出し

 
# SetOrderReferenceDetails  
  
require 'pay_with_amazon'  
  
merchant_id = 'YOUR_MERCHANT_ID'  
    access_key = 'YOUR_ACCESS_KEY'  
    secret_key = 'YOUR_SECRET_KEY'  
  
client = PayWithAmazon::Client.new(  
    merchant_id,  
    access_key,  
    secret_key,  
    sandbox: true,  
    currency_code: :usd,  
    region: :na  
)  
  
amazon_order_reference_id = 'AMAZON_ORDER_REFERENCE_ID'  
amount = 106  
  
client.set_order_reference_details(  
    amazon_order_reference_id,  
    amount,  
    seller_note: 'Lorem ipsum dolor',  
    seller_order_id: '5678-23',  
    store_name: 'CourtAndCherry.com',  
    mws_auth_token: 'amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE'  
)

ConfirmOrderReference APIの呼び出し

 
Making a call to the ConfirmOrderReference API  
  
client.confirm_order_reference(  
    amazon_order_reference_id,  
    mws_auth_token: 'amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE'  
)

GetOrderReferenceDetails APIの呼び出し

 
require 'pay_with_amazon'  
  
merchant_id = 'YOUR_MERCHANT_ID'  
access_key = 'YOUR_ACCESS_KEY'  
secret_key = 'YOUR_SECRET_KEY'  
  
client = PayWithAmazon::Client.new(  
    merchant_id,  
    access_key,  
    secret_key,  
    sandbox: true,  
    currency_code: :usd,  
    region: :na  
)  
  
amazon_order_reference_id = 'AMAZON_ORDER_REFERENCE_ID'  
address_consent_token = 'ADDRESS_CONSENT_TOKEN'  
  
client.get_order_reference_details(  
    amazon_order_reference_id,  
    address_consent_token: address_consent_token,  
    mws_auth_token: 'amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE'  
)

その他のサンプルコード(US)

SetOrderReferenceDetails APIの呼び出し

 
https://mws.amazonservices.com/OffAmazonPayments_Sandbox/2013-01-01  
?AWSAccessKeyId=0GS7553JW74RRM612K02EXAMPLE  
&Action=SetOrderReferenceDetails  
&AmazonOrderReferenceId=S23-1234567-1234567  
&OrderReferenceAttributes.OrderTotal.Amount=106  
&OrderReferenceAttributes.OrderTotal.CurrencyCode=USD  
&OrderReferenceAttributes.SellerNote=For your order of Casad  
    '2Jours Bonheur' Satchel in Sandstorm  
&OrderReferenceAttributes.SellerOrderAttributes.SellerOrderId=5678-23  
&OrderReferenceAttributes.SellerOrderAttributes.StoreName=CourtAndCherry.com  
&SellerId=YOUR_SELLER_ID_HERE  
&SignatureMethod=HmacSHA256  
&SignatureVersion=2  
&Timestamp=2013-11-16T19:01:11Z  
&Version=2013-01-01  
    &Signature=2RPzkOgQmDybUjk0dA54maCEXAMPLE

ConfirmOrderReference APIの呼び出し

 
https://mws.amazonservices.com/OffAmazonPayments_Sandbox/2013-01-01  
?AWSAccessKeyId=AKIAJKYFSJU7PEXAMPLE  
&Action=ConfirmOrderReference  
&AmazonOrderReferenceId=S23-1234567-1234567  
&SellerId=YOUR_SELLER_ID_HERE  
&SignatureMethod=HmacSHA256  
&SignatureVersion=2  
&Timestamp=2013-11-16T19:01:11Z  
&Version=2013-01-01  
&Signature=CLZOdtJGjAo81IxaLoE7af6HqK0EXAMPLE

GetOrderReferenceDetails APIの呼び出し

 
https://mws.amazonservices.com/OffAmazonPayments_Sandbox/2013-01-01  
?AWSAccessKeyId=AKIAJKYFSJU7PEXAMPLE  
&Action=GetOrderReferenceDetails  
&AddressConsentToken=IQEBLzAtAhUAjagYW4Jrgw84pCaaIDjrKoEhZXsEXAMPLE  
&AmazonOrderReferenceId=S23-1234567-1234567  
&SellerId=YOUR_SELLER_ID_HERE  
&SignatureMethod=HmacSHA256  
&SignatureVersion=2  
&Timestamp=2012-10-03T19:01:11Z  
&Version=2013-01-01  
&Signature=CLZOdtJGjAo81IxaLoE7af6HqK0EXAMPLE

参照

Amazon Pay APIリファレンスのOrder Reference状態と理由コード

その他のシナリオ