決済を確認・完了する

[ステップ5/8] Amazon Payがトランザクションを処理した後、購入者はcheckoutResultReturnUrlにリダイレクトされます。 Amazon PayのCheckoutSession IDがクエリパラメータとして含まれます。

このステップでは、CheckoutSession IDを使用して、購入者がサイトに正常に戻ったことを確認し、paymentIntentを確定します。このステップの最後に、購入者に決済結果を提示できるようになります。


1. 決済の完了

Complete Checkout Session を使用して、購入者がサイトに正常に戻ったことを確認します。リクエストのchargeAmountは、 CheckoutSessionオブジェクトのpaymentDetails.chargeAmountと一致する必要があります。CheckoutSessionオブジェクトにtotalOrderAmountを設定した場合は、totalOrderAmountも指定する必要があります。

Note: Amazon Payは、 Complete Checkout Sessionによって決済の確認がされるまでpaymentIntent を確定しません。24時間以内に確認されないCheckout Sessionはキャンセルされます。もしオーソリが取得されていた場合、そのオーソリもキャンセルされます。

成功のレスポンス:

トランザクションが正常に処理された場合、 Complete Checkout Session は成功レスポンスを返します。下表のCheckout SessionのpaymentIntentに対応するガイダンスに沿って実装してください。

paymentIntent
説明
AuthorizeWithCapture
支払いのオーソリが取得され、売上請求も実施されます。

1. ChargeIdの保管 - ChargeIdは返金実施時の為に必ず保管してください。

2. ChargePermissionIdの保管 - もし totalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、30日以内であれば、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。情報を30日を超えて保持するには、データを事業者側で保存する必要があります。
Authorize
オーソリが取得されます。

1. ChargeIdの保管 - 後に売上請求するのCharge IDを格納する必要があります。詳細については、延期されたトランザクションを管理するを参照してください。

2. ChargePermissionIdの保管 - もし totalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、30日以内であれば、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。情報を30日を超えて保持するには、データを事業者側で保存する必要があります。
Confirm
オーソリが取得されず、売上請求も行なわれません。

1. ChargePermissionIdの保管 - ChargePermissionIdを将来行うオーソリ取得、売上請求の為に保管します。詳細については、延期されたトランザクションを管理するを参照してください。また、30日以内であれば、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。情報を30日を超えて保持するには、データを事業者側で保存する必要があります。

エラーレスポンス:

Complete Checkout Sessionは、失敗したトランザクションに対しては、エラーレスポンスを返します。購入者は決済を途中でキャンセルしたか、有効なお支払い方法を選択し決済を完了できませんでした。この場合は、次の手順を実施してください。

  1. 購入者を決済の開始時点にリダイレクトします
  2. 「Amazon Payでのお支払いに失敗しました。別のお支払い方法をお試しください。」などのメッセージを表示します。

リクエスト

リクエストボディ

{
    "chargeAmount": {
        "amount": "14.00",
        "currencyCode": "USD"
    }
}

リクエストパラメータ

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

Type: string
Path parameter
Checkout Session識別子
chargeAmount
(必須)

Type: price
Body
決済時にpaymentIntentを使用して処理される金額。Checkout SessionオブジェクトのpaymentDetails.chargeAmountと一致する必要があります
totalOrderAmount

Type: price
Body
注文の総額。この項目に値が指定されている場合は、Checkout SessionオブジェクトpaymentDetails.totalOrderAmountと一致する必要があります

レスポンス

{
    "checkoutSessionId": "bd504926-f659-4ad7-a1a9-9a747aaf5275",
    "webCheckoutDetails": null,
    "chargePermissionType": "OneTime",   
    "recurringMetadata": null,
    "productType": null,
    "paymentDetails": null,
    "merchantMetadata": null,
    "supplementaryData":null, // Amazon Pay system data 
    "buyer": null,
    "billingAddress": null,
    "paymentPreferences": [
        null
    ],
    "statusDetails": {
        "state": "Completed",
        "reasonCode": null,
        "reasonDescription": null,
        "lastUpdatedTimestamp": "20191015T204327Z"
    },
    "shippingAddress": null,
    "platformId":null,
    "chargePermissionId": "S01-5105180-3221187",
    "chargeId": "S01-5105180-3221187-C056351",
    "constraints": [
        null
    ],
    "creationTimestamp": "20191015T204313Z",
    "expirationTimestamp": null,
    "storeId": null,
    "deliverySpecifications": null,
    "providerMetadata": null,
    "releaseEnvironment": null
}

2. 出荷追跡情報の追加

Note: このセクションは、サポート対象の配送会社を使用して商品を発送する場合にのみ適用されます。

Delivery Tracker APIを使用してAmazon Payに出荷追跡情報を送信します。Amazon Payは、商品が発送された時と商品が配達された時に、Alexaデバイスで購入者に通知します。詳細については、Alexa配送通知機能の設定 を参照してください。