トピック

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 NameSeller Order IDSeller NotePlatform 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状態と理由コード

その他のシナリオ

Amazon Pay を取り巻くEC決済の動向と実態

本資料では、Amazon Pay の概要と日本のEC決済市場における位置づけ、利用者と導入企業の実態、そしてEC事業者様へのメリットをご紹介します。