SANDBOXシミュレーションを使用する
本番環境で動作させる前に、SANDBOXのシミュレーションを使用してインテグレーションをテストしてください。SANDBOXの決済中に特定のテスト用の支払い方法を選択することにより、オーソリ失敗のフローと決済からの離脱 など、さまざまな決済シナリオをシミュレートできます。リクエストヘッダーにシミュレーション文字列を追加することで、意図的にさまざまなAPIレスポンスをトリガーすることもできます。
注:同じ決済中にテスト用の支払い方法とシミュレーション文字列の両方を使用する場合、シミュレーション文字列は、テスト用の支払い方法を使用してトリガーされた動作を上書きします。
テスト用の支払い方法の使用
SANDBOXの購入者アカウントには、テスト用の支払い方法が事前に構成されています。特定の支払いシナリオをシミュレートするには、SANDBOXの決済時に*でマークされた支払い方法を選択します。シミュレーションの前提条件が満たされていない場合、エラーが発生します。
カード番号
|
支払いシナリオ
|
前提条件
|
...1111 ...0005 ...4444 ...9424 ...0000 |
正常ケース。checkoutResultReturnUrl ページで、次の状態となります: paymentIntent がAuthorizeに設定されていた場合、ChargeはAuthorized状態になります。paymentIntent がConfirmに設定されていた場合、ChargePermissionはChargeable状態になります。
|
-
|
...3064
|
購入者がcheckoutResultReturnUrl に戻った後、Checkout SessionはCanceled状態で 理由コードがBuyerCanceledとなります。
|
-
|
...3434
|
購入者がcheckoutResultReturnUrl に戻った後、Checkout SessionはCanceled状態で 理由コードがDeclinedとなります。
|
-
|
...0701
|
購入者がcheckoutResultReturnUrl に戻った後、ChargeはAuthorizeInitiated状態になります。paymentIntent 次第では、30秒後にAuthorized状態になります。
|
Checkout SessionのpaymentIntent はAuthorize、canHandlePendingAuthorization をtrueに設定しなければなりません。設定しない場合はエラーになります。 |
...4354
|
購入者がcheckoutResultReturnUrl に戻った時は、ChargeはAuthorizeInitiated状態になります。これは、30秒後にDeclined状態で理由コードはHardDeclinedとなります。
|
Checkout SessionのpaymentIntent はAuthorize、canHandlePendingAuthorization をtrueに設定しなければなりません。設定しない場合はエラーになります。 |
シミュレーション文字列の使用
x-amz-pay-simulation-code
リクエストヘッダーをAPI呼び出しに追加して、さまざまな動作をシミュレートします。たとえば、“x-amz-pay-simulation-code = ”BuyerCanceled”です。ヘッダー署名にx-amz-pay-simulation-code
リクエストヘッダーを含めないでください。
Checkout Session
状態
|
理由コード
|
シミュレーションコード
|
シミュレーション方法
|
Open
|
-
|
-
|
Create Checkout Session
|
Completed
|
-
|
-
|
購入者をamazonPayRedirectUrl へリダイレクトする
|
Canceled
|
Expired
|
-
|
Checkout Sessionは、Open状態で24時間後に期限切れになります。
|
Canceled
|
BuyerCanceled
|
BuyerCanceled
|
Get Checkout SessionまたはUpdate Checkout Sessionのヘッダーにシミュレーションコードを指定し、購入者をamazonPayRedirectUrl に戻します。シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Canceled
|
AmazonCanceled
|
AmazonCanceled
|
Get Checkout Sessionのヘッダーにシミュレーションコードを指定するか、またはUpdate Checkout Sessionに指定して購入者をamazonPayRedirectUrl に戻します。シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Canceled
|
Declined
|
Declined
|
Get Checkout Sessionのヘッダーにシミュレーションコードを指定するか、またはUpdate Checkout Sessionに指定して購入者をamazonPayRedirectUrl に戻します。シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Charge
状態
|
理由コード
|
Simulation code
|
シミュレーション方法
|
AuthorizationInitiated
|
-
|
AuthorizationInitiated
|
Get Checkout Sessionのヘッダーでシミュレーションコードを指定するか、canHandlePendingAuthorization をtrueに設定してUpdate Checkout Sessionを実行します。購入者をamazonPayRedirectUrl へリダイレクトします。Chargeは30秒間AuthorizationInitiated状態になり、PaymentIntentに基づいてAuthorizedまたはCaptured状態に移行します。 シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Authorized
|
-
|
-
|
paymentIntent をAuthorizeに設定して、Update Checkout Sessionを実行します。購入者をamazonPayRedirectUrl へリダイレクトします。
|
Authorized
|
-
|
AuthorizationInitiated
|
Get Checkout Sessionのヘッダーでシミュレーションコードを指定するか、 canHandlePendingAuthorizationをtrueに設定し、 paymentIntent をAuthorizeに設定してUpdate Checkout Sessionします。購入者をamazonPayRedirectUrl へリダイレクトします。Chargeは30秒間AuthorizationInitiated状態になり、その後Authorizedに移行します。 シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Authorized
|
-
|
-
|
canHandlePendingAuthorization をfalseに設定し、captureNow をfalseに設定して、Create Chargeを実行します。
|
Captured
|
-
|
-
|
canHandlePendingAuthorization をfalseに設定し、captureNow をtrueに設定して、Create Chargeを実行します。
|
CaptureInitiated
|
-
|
CaptureInitiated
|
Captureのヘッダーでシミュレーションコードを指定します Chargeは30秒間CaptureInitiated状態になり、その後Captured状態に移行します。 |
Declined
|
SoftDeclined
|
PendingSoftDeclined
|
canHandlePendingAuthorization をtrueに設定して、 Get Checkout Session、 Create Charge、またはUpdate Checkout Sessionのヘッダーにシミュレーションコードを指定します。購入者をamazonPayRedirectUrl へリダイレクトします。Chargeは30秒間AuthorizationInitiated状態になり、その後、理由コードSoftDeclinedでDeclined状態に移行します。シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Declined
|
HardDeclined
|
PendingHardDeclined
|
canHandlePendingAuthorization をtrueに設定して、 Get Checkout Session、 Create Charge、またはUpdate Checkout Sessionのヘッダーにシミュレーションコードを指定します。購入者をamazonPayRedirectUrl へリダイレクトします。Chargeは30秒間AuthorizationInitiated状態になり、その後、理由コードHardDeclinedでDeclined状態に移行します。 シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Declined
|
AmazonRejected
|
PendingAmazonRejected
|
canHandlePendingAuthorization をtrueに設定して、 Get Checkout Session、 Create Charge、またはUpdate Checkout Sessionのヘッダーにシミュレーションコードを指定します。購入者をamazonPayRedirectUrl へリダイレクトします。Chargeは30秒間AuthorizationInitiated状態になり、その後、理由コードAmazonRejectedでDeclined状態に移行します。 シミュレーションコードは永続化されないことに注意してください。リダイレクトの直前に、リクエストでシミュレーションコードを設定する必要があります。 |
Declined
|
AmazonRejected
|
AmazonRejected
|
Create ChargeまたはCaptureのヘッダーでシミュレーションコードを指定します。 Chargeは30秒間CaptureInitiated状態になり、その後Declined 状態に移行します。 |
Declined
|
SoftDeclined
|
SoftDeclined
|
Create Chargeのヘッダーでシミュレーションコードを指定します。
|
Declined
|
HardDeclined
|
HardDeclined
|
Create Chargeのヘッダーでシミュレーションコードを指定します。
|
Declined
|
TransactionTimedOut
|
TransactionTimedOut
|
Create Chargeのヘッダーでシミュレーションコードを指定します。
|
Canceled
|
MerchantCanceled
|
-
|
Cancel Charge
|
Charge Permission
状態
|
理由コード
|
Simulation code
|
シミュレーション方法
|
Chargeable
|
-
|
-
|
有効なカードで正常ケースの決済をする
|
Closed
|
MerchantClosed
|
-
|
Cancel Charge Permission
|
Closed
|
AmazonClosed
|
AmazonClosed
|
ChargePermissionのCancel Chargeのヘッダーにシミュレーションコードを指定します。 cancelPendingCharges はfalseに設定する必要があります。
|
Refund
状態
|
理由コード
|
Simulation code
|
シミュレーション方法
|
RefundInitiated
|
-
|
-
|
Create Refund。返金は、Refunded状態に移行する前に30秒間RefundInitiated状態になります。
|
Refunded
|
-
|
-
|
Create Refund。返金は、Refunded状態に移行する前に30秒間RefundInitiated状態になります。
|
Declined
|
AmazonRejected
|
AmazonRejected
|
Create Refundのヘッダーでシミュレーションコードを指定します。
|