Amazon Payボタンを追加する
[Step 2 of 7] 購入者がAmazon Payボタンをクリックすると、Amazon Pay決済エクスペリエンスが始まります。OneTimeチェックアウトフローとは異なり、購入者はAmazon Payボタンをクリックした後、Amazon PayのBuy Nowでホストされたチェックアウトページで決済を完了します。
このステップでは Amazon Payチェックアウトセッションオブジェクトを設定し、Amazon Payボタンをレンダリングします。このステップの最後に購入者をAmazon PayのBuy Nowページにリダイレクトすることができます。
購入者はこのページで配送オプションを確認・変更および注文の詳細を確認し、チェックアウトを完了することができます。
Amazon Payボタンが表示されるドメインをセラーセントラルに追加する必要があります。詳しくは、セラーセントラルにドメインを追加する をご覧ください。
1. Amazon Payスクリプトを追加します
Amazon PayスクリプトをHTMLファイルに追加します。必ず正しいリージョンを選択してください。
<script src="https://static-na.payments-amazon.com/checkout.js"></script>
<script src="https://static-eu.payments-amazon.com/checkout.js"></script>
<script src="https://static-fe.payments-amazon.com/checkout.js"></script>
2. ペイロードを生成します
Amazon Payボタンをレンダリングするには、Amazon Payがチェックアウトを開始するために使用するペイロードを提供する必要があります。
ペイロードを作成するには、購入者がチェックアウトを完了するために必要なすべての詳細を提供する必要があります。OneTimeインテグレーションとの大きな違いとして、webCheckoutDetails
を渡す必要はありません。
ボタンペイロードを生成するための手順:
scopes
パラメータを使用して、チェックアウトを完了するために必要な購入者情報を指定します。この値を設定しない場合、onInitCheckoutコールバックの一部として、請求先住所以外のすべての購入者情報が要求されます。- (EU/UKのみ) バイヤーから追加情報を収集する必要がある場合は一致するscopesパラメータを指定することにより、BuyerAdditionalInfoを要求することができます。リクエストされると、買い手はチェックアウトを完了する前にデータを提供する必要があります。情報は
onCompleteCheckout
コールバックの一部として共有されます(近日公開予定)。
オプションのインテグレーション手順:
deliverySpecifications
パラメータを使用して、住所制限を指定し、購入者がAmazon Hosted Pageのお届け先からサポートされていない住所を選択できないようにします。 一般的なユースケースの処理のついては、アドレス制限のサンプルを参照してください。- (EU/UKのみ)
presentmentCurrency
パラメータを使用して、 他のサポートされている通貨を使用して購入者に請求できます。詳細については、こちら を参照してください。 - 配送先住所の検証される場合は、onInitCheckout および onShippingAddressSelection callback をご利用ください。
ペイロード の例
{
"storeId": "amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
"scopes": ["name", "email", "phoneNumber", "billingAddress"],
"paymentDetails": {
"paymentIntent": "Authorize",
"canHandlePendingAuthorization":false
},
"deliverySpecifications": {
"addressRestrictions": {
"type": "Allowed",
"restrictions": {
"JP": {}
}
}
},
}
名前
|
ロケーション
|
説明
|
paymentDetails (必須) Type: paymentDetails |
Body |
paymentIntent や購入者への請求金額など、事業者が指定する支払い内容の情報。 |
storeId (必須) Type: string |
Body
|
Amazon Pay Store ID。 Amazon Pay インテグレーションセントラルからこの値を取得します: US, EU, JP
|
scopes Type: list <scope> |
Body
|
リクエストする購入者の詳細情報。手順4のボタンパラメータproductType を使用して、配送先住所が必要かどうかを指定します。サポートされている値:
scopes パラメータが設定されていない場合、請求先住所以外のすべての購入者情報をリクエストしたことになります
|
chargePermissionType Type: string |
Body
|
リクエストされたCharge PermissionのType サポートされている値:
|
deliverySpecifications Type: deliverySpecifications |
Body
|
配送先の制限を指定して、購入者がAmazonアドレス帳からサポートされていないアドレスを選択できないようにします
|
merchantMetadata Type: merchantMetadata |
Body
|
事業者が提供する注文の詳細情報
|
3. ボタンのレンダー
前のステップで作成した値を使用して、Amazon PayボタンをHTMLコンテナ要素にレンダリングします。ボタンはレスポンシブになり、コンテナ要素のサイズを継承します。詳細は レスポンシブボタンロジック を参照してください。
以下のコードは、ボタンをクリックするとすぐにAmazon Payのチェックアウトを開始します。チェックアウトページでレンダリングされるカートレベルの詳細をAmazon Payに受信し、通信するために、イベントハンドラを登録し、ボタンのJavaScriptコードで定義する必要があります。イベントハンドラの実装は、イベントハンドラを提供するステップで詳しく説明します。
コードサンプル
<body>
<div id="AmazonPayButton"></div>
<script src="https://static-na.payments-amazon.com/checkout.js"></script>
<script type="text/javascript" charset="utf-8">
amazon.Pay.renderJSButton('#AmazonPayButton', {
// set checkout environment
merchantId: 'merchant_id',
ledgerCurrency: 'USD',
sandbox: 'true',
// customize the buyer experience
checkoutLanguage: 'en_US',
productType: 'PayAndShip',
placement: 'Cart',
buttonColor: 'Gold',
estimatedOrderAmount: {"amount": "109.99", "currencyCode": "USD"},
// provide checkout configuration generated in previous step
checkoutSessionConfig: {
"storeId": "store_id",
"scopes": ["name", "email", "phoneNumber", "billingAddress"],
"paymentDetails": {
"paymentIntent": "AuthorizeWithCapture",
"canHandlePendingAuthorization": "false"
},
},
// add placeholders for event handlers for user interaction
/** Invokes when initiated checkout and authenticated **/
onInitCheckout: function (event) {
// return initial cart details, total amount, tax, delivery options
},
/** Invokes when customer has selected different shipping address **/
onShippingAddressSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer clicks Pay Now **/
onCompleteCheckout: function (event) {
// Amazon Pay provides checkout session id, final billing address and payment descriptor.
},
/** Invokes when customer has selected different shipping Method **/
onDeliveryOptionSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer abandons the checkout **/
onCancel: function (event) {
// take customer back to cart page or product details page based on merchant checkout
}
});
</script>
</body>
<body>
<div id="AmazonPayButton"></div>
<script src="https://static-eu.payments-amazon.com/checkout.js"></script>
<script type="text/javascript" charset="utf-8">
amazon.Pay.renderJSButton('#AmazonPayButton', {
// set checkout environment
merchantId: 'merchant_id',
ledgerCurrency: 'EUR',
sandbox: 'true',
// customize the buyer experience
checkoutLanguage: 'de_DE',
productType: 'PayAndShip',
placement: 'Cart',
buttonColor: 'Gold',
estimatedOrderAmount: {"amount": "109.99", "currencyCode": "EUR"},
// provide checkout configuration generated in previous step
checkoutSessionConfig: {
"storeId": "store_id",
"scopes": ["name", "email", "phoneNumber", "billingAddress"],
"paymentDetails": {
"paymentIntent": "AuthorizeWithCapture",
"canHandlePendingAuthorization": "false"
},
},
// add placeholders for event handlers for user interaction
/** Invokes when initiated checkout and authenticated **/
onInitCheckout: function (event) {
// return initial cart details, total amount, tax, delivery options
},
/** Invokes when customer has selected different shipping address **/
onShippingAddressSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer clicks Pay Now **/
onCompleteCheckout: function (event) {
// Amazon Pay provides checkout session id, final billing address and payment descriptor.
},
/** Invokes when customer has selected different shipping Method **/
onDeliveryOptionSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer abandons the checkout **/
onCancel: function (event) {
// take customer back to cart page or product details page based on merchant checkout
}
});
</script>
</body>
<body>
<div id="AmazonPayButton"></div>
<script src="https://static-eu.payments-amazon.com/checkout.js"></script>
<script type="text/javascript" charset="utf-8">
amazon.Pay.renderJSButton('#AmazonPayButton', {
// set checkout environment
merchantId: 'merchant_id',
ledgerCurrency: 'GBP',
sandbox: 'true',
// customize the buyer experience
checkoutLanguage: 'en_GB',
productType: 'PayAndShip',
placement: 'Cart',
buttonColor: 'Gold',
estimatedOrderAmount: {"amount": "109.99", "currencyCode": "GBP"},
// provide checkout configuration generated in previous step
checkoutSessionConfig: {
"storeId": "store_id",
"scopes": ["name", "email", "phoneNumber", "billingAddress"],
"paymentDetails": {
"paymentIntent": "AuthorizeWithCapture",
"canHandlePendingAuthorization": "false"
},
},
// add placeholders for event handlers for user interaction
/** Invokes when initiated checkout and authenticated **/
onInitCheckout: function (event) {
// return initial cart details, total amount, tax, delivery options
},
/** Invokes when customer has selected different shipping address **/
onShippingAddressSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer clicks Pay Now **/
onCompleteCheckout: function (event) {
// Amazon Pay provides checkout session id, final billing address and payment descriptor.
},
/** Invokes when customer has selected different shipping Method **/
onDeliveryOptionSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer abandons the checkout **/
onCancel: function (event) {
// take customer back to cart page or product details page based on merchant checkout
}
});
</script>
</body>
<body>
<div id="AmazonPayButton"></div>
<script src="https://static-fe.payments-amazon.com/checkout.js"></script>
<script type="text/javascript" charset="utf-8">
amazon.Pay.renderJSButton('#AmazonPayButton', {
// set checkout environment
merchantId: 'merchant_id',
ledgerCurrency: 'JPY',
sandbox: 'true',
// customize the buyer experience
checkoutLanguage: 'ja_JP',
productType: 'PayAndShip',
placement: 'Cart',
buttonColor: 'Gold',
// provide checkout configuration generated in previous step
checkoutSessionConfig: {
"storeId": "store_id",
"scopes": ["name", "email", "phoneNumber", "billingAddress"],
"paymentDetails": {
"paymentIntent": "AuthorizeWithCapture",
"canHandlePendingAuthorization": "false"
},
},
// add placeholders for event handlers for user interaction
/** Invokes when initiated checkout and authenticated **/
onInitCheckout: function (event) {
// return initial cart details, total amount, tax, delivery options
},
/** Invokes when customer has selected different shipping address **/
onShippingAddressSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer clicks Pay Now **/
onCompleteCheckout: function (event) {
// Amazon Pay provides checkout session id, final billing address and payment descriptor.
},
/** Invokes when customer has selected different shipping Method **/
onDeliveryOptionSelection: function (event) {
// return updated cart details, total amount, tax, delivery options
},
/** Invokes when customer abandons the checkout **/
onCancel: function (event) {
// take customer back to cart page or product details page based on merchant checkout
}
});
</script>
</body>
Function parameters
パラメータ
|
説明
|
merchantId (必須) Type: string |
Amazon Pay 事業者アカウント識別子
|
createCheckoutSessionConfig (必須) Type: buttonConfig |
Checkout Session構成を作成します。productType をPayAndShipかPayOnlyで利用する場合、これは必須フィールドです |
placement (必須) Type: string |
ウェブサイトへのAmazon Payボタンの配置場所 サポートされている値:
|
ledgerCurrency (必須) Type: string |
指定された出品者IDの登録時に提供された通貨 サポートされている値:
|
productType Type: string |
決済用に選択されたProduct type サポートされている値:
|
buttonColor Type: string |
Amazon Payボタンの色 サポートされている値: 'Gold', 'LightGray', 'DarkGray' デフォルト値: 'Gold' |
checkoutLanguage Type: string |
Amazon Pay Hosted pageでボタンとテキストをレンダリングするために使用される言語。サポートされている言語は、Amazon Payアカウントの申し込みを行った地域によって異なることに注意してください。 サポートされている値:
|
sandbox Type: boolean |
ボタンをSANDBOXに設定します
デフォルト値: false |