PayPal テスト環境 Sandboxの使い方

ペイパルでは、決済サービスの動作確認ができるテスト環境として、Sandboxを公開しています。

テスト用の「Buyer（買い手）」アカウントと、「Seller（売り手）」アカウントを作成し、サービスの導入から、決済の流れまで、詳細にシミュレーションすることができます。

## Sandbox上のテスト用アカウント（Buyer/Seller）の作成
Sandboxを利用するには**ペイパルの本番アカウント**が必要です。まだアカウントをお持ちでないかたは、[こちら](https://www.paypal.com/jp/signup/account)からご登録ください。

[デベロッパーサイト](https://developer.paypal.com/)にアクセスし、ページ右上の[Log into Dashboard]をクリックし、ペイパルアカウント（**上記で作成した本番アカウント**）でログインをします。

左メニューの[Sandbox] - [Accounts]をクリックします。

右上の[Create Account]をクリックし、必要事項を入力して、Buyer（PERSONAL）とSeller（BUSINESS）のアカウントを作成します。

**※デフォルトでPERSONALとBUSINESSのアカウントが１つずつ作成されていますが、これらのアカウントでログインするにはパスワードを自身で設定し直す必要があります。パスワードの設定方法は後述のProfileの設定を参照ください。**

**※[sandbox.paypal.com](https://www.sandbox.paypal.com/jp/webapps/mpp/merchant)からもアカウントを作成することができますが、デベロッパーサイトではテストカード登録やエラーテストの設定などができます。**

![image.png](https://qiita-image-store.s3.amazonaws.com/0/210396/b245abc4-a27b-3ada-ec54-39160a1dd359.png)

**Country：** Japanを選択します
**Account Type：** 買い手用のアカウントの場合は「Personal」を、
**Account Type：** 売り手用のアカウントの場合は「Business」を選択します
**Email Address：** メールアドレスを入力します（実在するメールアドレスである必要はありません）
**Password：** パスワードを入力します（半角英数字8〜20桁）
**First Name：** 名前を入力します（任意）
**Last Name：** 苗字を入力します（任意）
**PayPal Balance：** 残高の初期金額を入力します（「0」でも入力可ですが、Payoutsのテストを行う際は送金に使う残高を入れておくことを推奨します）
**Bank Verified Account：** 銀行口座登録「Yes」を選択します (Payoutsなどの機能を使うには必須となります）
**Credit Cards：** クレジットカードの種類をプルダウンから選択します（必須）

Sandboxのアカウントを作成すると、「Sandbox Accounts」画面に作成したすべてのテストアカウントが表示されます。テストアカウントごとに決済に関する設定などができます。メールアドレスをクリックすると、[Profile | Notifications]が表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/210396/eafc546f-c5c1-de5e-ab34-4e60b72cc4b3.png)

**Profile：** 該当アカウントの設定ができます
**Notifications：** Sandbox上での該当アカウント宛のメールを確認できます

## SandboxアカウントのProfileの設定
[Profile]をクリックすると「Account Details」画面が表示され4つのタブが選択できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/210396/2fee3d6d-4a4c-7daf-e2bd-3cc3f9ceddd6.png)

**Email ID：** 該当アカウントのメールアドレスが表示されます
**Password：** 該当アカウントのパスワードを変更できます（「Change password」を押して「Save」で保存します）
**Phone Number：** 該当アカウントの電話番号が表示されます
**Account Type：** 該当アカウントのアカウントタイプが表示されます
**Upgrade to Pro：** **※クリックするとリファレンストランザクション（Vault）やペイアウト、ウェブペイメントプラスなどのほぼ全機能が使えるSandboxアカウントになります**
**Status：** 該当アカウントのステータスを確認できます
**Country：** アカウント作成時に登録した国名が表示されます
**Notes：** アカウント作成時に入力したメモが表示されます

[API Credentials]タブをクリックするとAPI署名を表示します。
**※NVP/SOAP API（Classic API）を使うためのものであり、最新のAPI実装（Braintree SDK/REST API）に使うものではないことにご注意ください**

[Funding]タブをクリックするとアカウントに登録されているクレジットカード情報、銀行口座情報、およびペイパル残高を確認できます。

[Settings]タブをクリックすると「Payment Review」「Negative Testing」について設定できます。
**Payment Review：** Payment Review状態（決済が保留になる状態）の決済のテストを行う時にONにします
**Negative Testing：** Negative Test(カード与信エラーなどを発生させるシミュレーション)を行う時にONにします

Sandbox上に作成したアカウントには、[sandbox.paypal.com](https://www.sandbox.paypal.com/jp/webapps/mpp/merchant)からログインができます。

# 決済のテスト
[sandbox.paypal.com](https://www.sandbox.paypal.com/jp/webapps/mpp/merchant)に「Seller」アカウント（**本番アカウントではありません**）でログインし、決済サービスを導入します。導入の手順は、本番環境と同じです。詳しくは、テストしたい決済サービスの[「導入・ご利用方法」](https://www.sandbox.paypal.com/jp/webapps/mpp/developer)を参照してください。

決済サービスの導入が完了したら、決済をシミュレーションします。テスト用の設定をしたECサイトのページから商品を購入します。「ペイパル決済」を選び、商品の購入手続きを進めます。

Sandbox上の「ペイパル決済」画面に自動的に遷移するので、テスト用の「Buyer」アカウント（**本番アカウントではありません**）でログインし、決済を完了します。

**※あくまでSandbox内での決済です。実際の代金のやりとりは発生しません。**

[sandbox.paypal.com](https://www.sandbox.paypal.com/jp/webapps/mpp/merchant)に「Seller」アカウント（**本番アカウントではありません**）でログインし、[取引履歴]をクリックすると、取引の詳細が一覧で表示されます。先ほど完了した決済が反映されていることを確認します。

# エラーテスト - Negative Test

ペイパルでは、Sandboxにてエラーケースのテスト(Negative Test)を行うことができます。
エラーテストの方法については、[API決済の「テストについて」](https://qiita.com/PPJP/items/db5c57991c2c3fe80ac7#%E3%83%86%E3%82%B9%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)を参照してください。

# 詳細情報
詳細は以下をご参照ください。
https://developer.paypal.com/docs/classic/lifecycle/sb_overview/