配送と支払いの情報を表示する

[ステップ3/8] 購入者は、希望する配送先住所と支払い方法を選択した後、 checkoutReviewReturnUrl にリダイレクトされます。 Amazon PayのCheckoutSession IDがクエリパラメータとして含まれます。

このステップでは、CheckoutSession IDを使用して、決済情報(配送先住所や支払い方法など)を取得し、配送先住所や支払い方法の変更も可能にします。このステップの最後に、購入者に注文の確認情報を提示し、決済が完了する前に、希望する配送先住所および支払い方法を更新するオプションを提供することができます。


1. 配送と支払いの情報を取得します

Get Checkout Session を実行して、購入者のメールアドレス、配送先住所、支払い情報などの決済情報を取得します。レスポンスを使用して、決済情報を表示し、必要な場合は配送オプションを提供し、追加費用を計算します。

Note: Checkout SessionオブジェクトがOpen stateにある場合にのみ、 Get Checkout Sessionを使用して決済情報を取得できることに注意してください。さらに、配送先住所は、CheckoutSessionのproduct typeがPayAndShipである場合にのみ返されます。 決済が成功したら、 Get Charge Permissionを使用して決済情報を取得できます。

ベストプラクティス:

  • 購入者の問い合わせに対応するために、Amazon Payから受け取った配送先住所を読み取り専用のテキストとして表示する必要があります。配送と支払いの更新を有効にして、購入者がAmazonアドレス帳から別の配送先住所を選択できるようにします。 Amazon Payのチャージバックの詳細については、こちらをご覧ください:US, UK, EU, JP
  • Get Checkout Session のレスポンスで返されたpaymentDescriptor 値を使用して、購入者が選択した支払い方法を表示します。Amazon Payは、決済コンバージョンを最適化するために、動的に異なる値を返す場合があります。
  • 購入者がAmazonアドレス帳から選択できるアドレスを制限するためにdeliverySpecifications パラメータを利用している場合を含めて、Get Checkout Session で返却された住所が事業者の配送先ポリシー内の値となっているか確認します。返却された住所がポリシー外のものであった場合は、購入者に別の住所を選択するよう依頼してください。
  • 配送先住所や購入者のメールアドレスなどの決済情報を、決済を開始した購入者以外には表示しないでください。購入者以外の誰かがCheckout Session IDにアクセスした場合に備えて、検証(例:ブラウザーセッションの検証)をするように実装します。

リクエスト

リクエストパラメータ

名前
ロケーション
説明
CheckoutSessionId
(必須)

Type: string
Path Parameter
Checkout session識別子

レスポンス

{
    "checkoutSessionId": "bd504926-f659-4ad7-a1a9-9a747aaf5275",
    "webCheckoutDetails": {
        "checkoutReviewReturnUrl": "https://a.com/merchant-review-page",
        "checkoutResultReturnUrl": null,
        "checkoutCancelUrl": null,
        "amazonPayRedirectUrl": null
    },
    "productType": "PayAndShip",
    "paymentDetails": {
        "paymentIntent": null,
        "canHandlePendingAuthorization": false,
        "chargeAmount": null,
        "totalOrderAmount": null,
        "softDescriptor": null,
        "presentmentCurrency": null,
        "allowOvercharge": null,
        "extendExpiration": null
    },
    "merchantMetadata": {
        "merchantReferenceId": null,
        "merchantStoreName": null,
        "noteToBuyer": null,
        "customInformation": null
    },
    "supplementaryData": null, // Amazon Pay system data
    "buyer": {
        "buyerId": "buyerId",
        "name": "name-1",
        "email": "name@amazon.com",
        "phoneNumber": "800-000-0000",
        "primeMembershipTypes": null
    },
    "billingAddress":{  // Only available in EU or for PayOnly product type
        "name": "Work",
        "addressLine1": "440 Terry Ave",
        "addressLine2": "",
        "addressLine3": "",
        "city": "Seattle",
        "county": "King",    
        "district": "Seattle",
        "stateOrRegion": "WA",
        "postalCode": "98121",
        "countryCode": "US"
    },
    "paymentPreferences": [
        {
            "paymentDescriptor": "Your selected Amazon payment method"
        }
    ],
    "statusDetails": {
        "state": "Open",
        "reasonCode": null,
        "reasonDescription": null,
        "lastUpdatedTimestamp": "20191015T204327Z"
    },
    "shippingAddress": {  // Null for PayOnly product type
        "name": "Susie Smith",
        "addressLine1": "10 Ditka Ave",
        "addressLine2": "Suite 2500",
        "addressLine3": null,
        "city": "Chicago",
        "county": null,
        "district": null,
        "stateOrRegion": "IL",
        "postalCode": "60602",
        "countryCode": "US",
        "phoneNumber": "800-000-0000"
    },
    "platformId": null,
    "chargePermissionId": null,
    "chargeId": null,
    "constraints": [
        {
            "constraintId": "ChargeAmountNotSet",
            "description": "chargeAmount is not set."
        },
        {
            "constraintId": "CheckoutResultReturnUrlNotSet",
            "description": "checkoutResultReturnUrl is not set."
        },
        {
            "constraintId": "PaymentIntentNotSet",
            "description": "paymentIntent is not set."
        }
    ],
    "creationTimestamp": "20191015T204313Z",
    "expirationTimestamp": "20191016T204313Z",
    "storeId": "amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
    "deliverySpecifications": {
        "specialRestrictions": ["RestrictPOBoxes"],
        "addressRestrictions": {
            "type": "Allowed",
            "restrictions": {
                "US": {
                    "statesOrRegions": ["WA"],
                    "zipCodes": ["95050", "93405"]
                },
                "GB": {
                    "zipCodes": ["72046", "72047"]
                },
                "IN": {
                    "statesOrRegions": ["AP"]
                },
                "JP": {}
          }
        }
    },
    "providerMetadata": {
        "providerReferenceId": null
    },
    "releaseEnvironment": "Sandbox"
}

2. 配送と支払いの更新

amazon.Pay.bindChangeAction()を使用してクリックイベントをHTML要素にバインドします。これにより、要素がクリックされたときに、購入者は別のお届け先住所または支払い方法を選択できます。購入者がサイトに戻って更新された決済情報を反映する為に、必ずGet Checkout Sessionで情報を取得し、更新してください。

ステップ1. 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.bindChangeAction() を使用して、クリックイベントをページ上のHTML要素にバインドします。 changeAction パラメータを使用して、購入者がお届け先住所または支払い方法のどちらを編集するかを指定できます。

お届け先住所の変更 (CheckoutSessionのproduct typeがPayAndShipの場合のみ):

<script type="text/javascript" charset="utf-8">
  amazon.Pay.bindChangeAction('#changeButton1', {
    amazonCheckoutSessionId: 'xxxx',
    changeAction: 'changeAddress'
  });
</script>

支払い方法の変更:

<script type="text/javascript" charset="utf-8">
  amazon.Pay.bindChangeAction('#changeButton2', {
    amazonCheckoutSessionId: 'xxxx',
    changeAction: 'changePayment'
  });
</script>

関数パラメータ

パラメータ
説明
amazonCheckoutSessionId
(必須)

Type: string
Amazon Pay CheckoutSession識別子
changeAction
(必須)

Type: string
購入者からの更新リクエスト

サポートされている値: 'changeAddress', 'changePayment'