決済を確認・完了する
[ステップ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は、失敗したトランザクションに対しては、エラーレスポンスを返します。購入者は決済を途中でキャンセルしたか、有効なお支払い方法を選択し決済を完了できませんでした。この場合は、次の手順を実施してください。
- 購入者を決済の開始時点にリダイレクトします
- 「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配送通知機能の設定 を参照してください。