Step 5:注文詳細のセットと確認
支払要求を行う前に、アドレス帳とお支払い方法ウィジェットのステップ内で入手した OrderReferenceIdを利用して注文のセットと確認を行います。
処理内容
- SetOrderReferenceDetails API呼び出しを行います。リクエストするには、 OrderReferenceAttributesの次の属性をセットします。
必須:- Amazon Order Reference ID
- Order Total(注文金額と通貨コード)
強く勧めるオプション:- Store Name
- Seller Order ID
- Seller Note
注:注文が行われる前にStore Name、Seller Order ID、Seller Note、Platform ID、またはCustomInformationを設定できない場合は、注文後(ConfirmOrderReference実行完了後)に、SetOrderAttributes API呼び出し、これらのパラメータを設定することが可能です。詳細については、購入後の注文属性の追加を参照してください。
- ConfirmOrderReference APIの呼び出しを行います。SetOrderReferenceDetails API呼び出しが成功した場合は、ConfirmOrderReference API呼び出しを行うことで、OrderReferenceオブジェクトを確認します。このステップは購入者がサイト上で注文したことをAmazonに通知します。ConfirmOrderReference呼び出しが成功した場合は、Order Referenceオブジェクトは Open状態にセットされ、Amazonは確認のために購入者に対してAmazon Payを利用した購入支払がされることを「ご利用内容の確認」メールとして送信します。レスポンスが制約で返された場合は再処理を試みてください。例えば、 PaymentPlanNotSet 制約のケースでは、購入者に異なる支払方法の選択するように案内します。これ以外のメッセージを画面上に表示できるか、購入者を適切なページに遷移することもできます。
- 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状態と理由コード