エラーテスト - Negative Test

ペイパルでは、Sandboxにて、エラーケースのテスト(Negative Test)を行うことができます。
それぞれのAPIの特定フィールドに値を設定することで、任意のAPIエラーをシミュレーションすることができます。

Sandboxの設定

Negative Testを行うには、SandboxでのSeller(売り手)用アカウントに設定が必要です。
PayPal Developerにアクセスし、ページ右上の[Log In]をクリックし、ペイパルアカウントでログインをします。
上部の[DASHBOARD]をクリックし、左メニューの[Sandbox] - [Accounts]をクリックします。
表示される一覧表内のテスト対象のSeller(売り手)用アカウントの[Profile]をクリックし、[Settings]タブ内の[Negative Testing]をOnに設定します。

APIフィールドの設定

APIで特定のエラーを発生させるためには、以下の表に従って特定のAPIフィールドにエラーコード値を設定してAPI呼び出しを行います。

API NVPフィールド名 SOAP要素名 説明
DoAuthorization AMT Amount 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10623エラーを発生させたい場合は、106.23 と指定します。
DoCapture AMT Amount 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10623エラーを発生させたい場合は、106.23 と指定します。
DoDirectPayment AMT OrderTotal 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10755エラーを発生させたい場合は、 107.55 と指定します。
DoExpressCheckoutPayment AMT OrderTotal 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10539エラーを発生させたい場合は、 105.39と指定します。
DoReauthorization AMT Amount 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10623エラーを発生させたい場合は、106.23 と指定します。
DoVoid AUTHORIZATIONID AuthorizationID 発生させたいエラーコードを、数値で指定します。例えば、10623エラーを発生させたい場合は、 10623と指定します。
GetExpressCheckoutDetails TOKEN Token 発生させたいエラーコードを、数値で指定します。例えば、10539エラーを発生させたい場合は、 10539と指定します。
GetTransactionDetails TRANSACTIONID TransactionID 発生させたいエラーコードを、数値で指定します。例えば、10539エラーを発生させたい場合は、 10539と指定します。
MassPay EMAILSUBJECT EmailSubject 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10755エラーを発生させたい場合は、 107.55 と指定します。
RefundTransaction AMT Amount 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10755エラーを発生させたい場合は、 107.55 と指定します。
SetExpressCheckout MAXAMT MaxAmount 発生させたいエラーコードを、小数点以下2桁を含む数値で指定します。例えば、10755エラーを発生させたい場合は、 107.55 と指定します。
TransactionSearch INVNUM InvoiceID 発生させたいエラーコードを、数値で指定します。例えば、10539エラーを発生させたい場合は、 10539と指定します。

なお、通貨に日本円を指定した場合小数点以下を含む金額は指定できないため、小数点以下を含む金額を指定してエラーを発生させる際は、通貨にUSDを指定してください。

テスト例

以下は、 DoAuthorizationで10610エラーを発生させる例となります。

curl -s --insecure https://api-3t.sandbox.paypal.com/nvp -d
  "USER={yourUID}
  &PWD={yourPSWD}
  &SIGNATURE={yourSig}
  &METHOD=DoAuthorization
  &VERSION=120
  &TRANSACTIONENTITY=ORDER
  &TRANSACTIONID=O-1N564174MM387483R
  &AMT=106.10"
  &CURRENCYCODE=USD"
                    

[Negative Testing]の設定が[On]になっている場合、以下のレスポンスが返却されます。

TIMESTAMP=2015%2d12%2d13T00%3a29%3a00Z
  &CORRELATIONID=78d43b44c9e0e
  &ACK=Failure
  &VERSION=120
  &BUILD=7161310
  &L_ERRORCODE0=10610
  &L_SHORTMESSAGE0=Amount%20limit%20exceeded%2e
  &L_LONGMESSAGE0=Amount%20specified%20exceeds%20allowable%20limit%2e
  &L_SEVERITYCODE0=Error