【AmazonPay CV2】シミュレーションコードを用いたテスト

【AmazonPay CV2】シミュレーションコードを用いたテスト AmazonPay

AmazonPay CV2で使用するSANDBOX環境には、あらかじめ2種類のテストパターンが用意されている。

・テスト用の支払い方法の使用
・シミュレーション文字列の使用

前者は、ガイド序盤の”SANDBOXの購入者アカウント作成”時に設定する支払い方法情報を指しており、テストフェーズまで進んでいる方はすでに利用可能な状態にあると思う。

この記事では、後者の”シミュレーション文字列の使用”に触れたい。

これはすでに用意されているシミュレーション文字列を使用して、各オブジェクトの状態_state・理由コード_reasonCodeによるケースの検証が可能となる。

一例として、Create Charge実行時にTransactionTimedOutを発生させるケースをシミュレーションしたい場合、PHPで記述すると以下。

$headers = array(
    'x-amz-pay-Idempotency-Key' => 'AVLo5tI10BHgEk2jEXAMPLEKEY',
    'x-amz-pay-simulation-code' => 'TransactionTimedOut',
);
$result = $client->createCharge($payload, $headers);

$headersに見える「x-amz-pay-idempotency-key」は、”冪等(べきとう)キー”と呼ばれ、Create Chargeの必須リクエストパラメータとなる。

“冪等(べきとう)キー”については、また改めて触れたいと思う。

ちなみに、前者・後者を同時に使用した場合、シミュレーション文字列が勝つ模様。

注:同じ決済中にテスト用の支払い方法とシミュレーション文字列の両方を使用する場合、シミュレーション文字列は、テスト用の支払い方法を使用してトリガーされた動作を上書きします。