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