決済を確認・完了する

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

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


1. 決済の完了

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

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

成功のレスポンス:

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

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

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

2. ChargePermissionIdの保管 - 将来行う請求の為にChargePermissionIdを保管してください。Recurring用のChargePermissionsについては、継続支払いを管理するを参照してください。もし totalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。
Authorize
オーソリが取得されます。

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

2. ChargePermissionIdの保管 - 将来行う請求の為にChargePermissionIdを保管してください。Recurring用のChargePermissionsについては、継続支払いを管理するを参照してください。もし totalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。
Confirm
オーソリが取得されず、売上請求も行なわれません。

1. ChargePermissionIdの保管 - 将来行う請求の為にChargePermissionIdを保管してください。 Recurring用のChargePermissionsについては、継続支払いを管理するを参照してください。それ以外の場合は、延期されたトランザクションを管理する を参照してください。また、ChargePermissionId を使用して、購入者とトランザクションの情報を取得することもできます。

エラーレスポンス:

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

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

リクエスト

リクエストボディ

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

リクエストパラメータ

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

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

Type: price
Body
取引金額

レスポンス

{
    "checkoutSessionId": "bd504926-f659-4ad7-a1a9-9a747aaf5275",
    "webCheckoutDetails": null,
    "chargePermissionType": "Recurring",   
    "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": "20191016T204313Z",
    "storeId": "amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
    "deliverySpecifications": null,
    "providerMetadata": null,
    "releaseEnvironment": null
}

2. 出荷追跡情報を追加します

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

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