決済を確認・完了する
[ステップ5/9] Amazon Payがトランザクションを処理した後、購入者はcheckoutResultReturnUrlにリダイレクトされます。 Amazon PayのCheckout Session 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 の保管 3. ChargePermissionType が "PaymentMethodOnFile"である場合、購入者はお支払い方法の設定を今後の購入のために保存することに同意したことを示します。この場合、ChargePermissionId を使用して、購入者に今後の購入の為の請求をすることができます。また、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を期限なく取得することができます。4.もし ChargePermissionType が "OneTime"である場合、購入者はお支払い方法の設定を今後の購入のために保存することの同意をしなかったことを示します。この場合、もしtotalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、30日以内であれば、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。情報を30日を超えて保持するには、データを事業者側で保存する必要があります。
|
Authorize
|
オーソリが取得されます。 1. ChargeId の保管 - 後に売上請求するのCharge IDを格納する必要があります。詳細については、繰延支払いを参照してください。2. ChargePermissionId の保管 3. ChargePermissionType が "PaymentMethodOnFile"である場合、購入者はお支払い方法の設定を今後の購入のために保存することに同意したことを示します。この場合、ChargePermissionId を使用して、購入者に今後の購入の為の請求をすることができます。また、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を期限なく取得することができます。4.もし ChargePermissionType が "OneTime"である場合、購入者はお支払い方法の設定を今後の購入のために保存することの同意をしなかったことを示します。この場合、もしtotalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、30日以内であれば、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。情報を30日を超えて保持するには、データを事業者側で保存する必要があります。
|
Confirm
|
オーソリが取得されず、売上請求も行なわれません。 1. ChargePermissionId の保管 - ChargePermissionId を今後の購入の請求の為に保管します。2. ChargePermissionType が "PaymentMethodOnFile"である場合、購入者はお支払い方法の設定を今後の購入のために保存することに同意したことを示します。この場合、ChargePermissionId を使用して、購入者に今後の購入の為の請求をすることができます。また、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を期限なく取得することができます。3.もし ChargePermissionType が "OneTime"である場合、購入者はお支払い方法の設定を今後の購入のために保存することの同意をしなかったことを示します。この場合、もしtotalOrderAmount を設定していて、売上請求が未済のレコードがある場合は、 延期されたトランザクションを管理する を参照してください。また、30日以内であれば、ChargePermissionId を使用して、Get Charge Permissionを行い、購入者とトランザクションの情報を取得することもできます。情報を30日を超えて保持するには、データを事業者側で保存する必要があります。
|
エラーレスポンス:
Complete Checkout Sessionは、失敗したトランザクションに対しては、エラーレスポンスを返します。購入者は決済を途中でキャンセルしたか、有効なお支払い方法を選択し決済を完了できませんでした。この場合は、次の手順を実施してください。
- 購入者を決済の開始にリダイレクトします 2.「Amazon Payでのお支払いに失敗しました。別のお支払い方法をお試しください。」などのメッセージを表示します
リクエスト
リクエストボディ
{
"chargeAmount": {
"amount": "14.00",
"currencyCode": "USD"
}
}
リクエストパラメータ
Name
|
Location
|
Description
|
checkoutSessionId (required) Type: string |
Path parameter
|
Checkout Session identifier
|
chargeAmount Type: price |
Body
|
Amount to be processed using paymentIntent during checkout. Must match Checkout Session object paymentDetails.chargeAmount
|
totalOrderAmount Type: price |
Body
|
Total order amount. Must match Checkout Session object paymentDetails.totalOrderAmount if a value was provided
|
レスポンス
{
"checkoutSessionId": "bd504926-f659-4ad7-a1a9-9a747aaf5275",
"webCheckoutDetails": null,
"chargePermissionType": PaymentMethodOnFile,
"recurringMetadata": null,
"paymentMethodOnFileMetadata": 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": "BA01-5105180-3221187",
"chargeId": null,
"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配送通知機能の設定 を参照してください。