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のヘッダーでシミュレーションコードを指定します。
|

