Joomla!でEコマース系のエクステンションを使うとなると、そのほとんどが海外製のため日本のメジャーな決済方法がほとんど使えず、Paypalぐらいしか選択肢がありません。
もしPaypalを決済方法として採用する場合、「正しくPaypalで決済できるのか?」を実際にテストする必要がありますが、本物のPaypalアカウントやクレジットカードを使うのは避けたいところです。
そこで登場するのが「Paypal Sandbox」です。Paypalの決済テストを行うためのテスト環境であり、見た目も動きもPaypalそのまんま。買い手側のアカウントと売り手側のアカウントを作成することが可能で、実際にPaypal決済を試して見る事ができます。
Sandboxの使い方を解説しているページが他にもあるのですが、いささか情報が古いようなので記事にしてみました(といっても大したことは書いていない)。
Paypal Sandboxアカウントを作成する
Paypal Sandboxにアクセスします。
PayPal Sandbox - Log In
https://developer.paypal.com/
名前、メールアドレス(Paypalアカウントとは別のメールアドレス)、秘密の質問を入力したら「Agree and Submit」をクリックします。
次の画面が表示されると、入力したメールアドレスにメールが届いているはず。
メールに記載されたリンクをクリックすると、次のようなメッセージが表示されます。これでSandboxアカウントの登録は終了です。
買い手・売り手アカウントを作成する
「Member Log In」から、登録時のメールアドレスとパスワードを使用してログインします。
まずは買い手側のアカウントを作成します。「Test Accounts」をクリックし「Preconfigured」をクリック。
少し前まで「Preconfigured」を選択しても日本のPaypal環境を使えなかった(Create Manualyを選択する必要があった)のですが、最近使えるようになったようです。
「Country」からは「Japan」を選択し、「Account Type」は「Buyer」を選択します。「Login Email」には適当にメールアドレスを入力します(存在しないメールアドレスでOK)。その他パスワードが自動生成されますが変更してもそのまま使ってもOKです。それ以外はデフォルトのまま「Create Account」をクリックします。
買い手側のアカウントが作成されます。先ほど入力したメールアドレスには、ランダムな数字と文字が追加されます。これが買い手側アカウントでログインする際に必要なメールアドレスになります。
この時点で買い手アカウントにクレジットカードが追加されています(以前は手動でクレジットカードを追加する必要があった)。
続いて売り手側のアカウントも作成しましょう。「Account Type」を「Seller」にするだけで、他は買い手側アカウントと同じです。
なおこのアカウントを使用して決済したときに届くメールは「Test Email」で確認できます。買い手・売り手両方のメールがここに届くので、「To」の欄でどちらに届いたメールか確認すること。買い手側アカウントに対して引き出し限度額解除のメールが届いているはずです。
買い手→売り手へ送金してみる
作成したアカウントで送金を試して見ましょう。送信先のアドレスとして使用するため、まず売り手側のメールアドレスをコピーしておいて下さい。
次に買い手側アカウントでログインします。「Test Accounts」→買い手側アカウントを選択→「Enter Sandbox Test Site」の順にクリックします。
Paypalそっくりなサイトに移動します。上部に「Test site」と表示されていることを確認します。なおこの段階では表示を日本語化できません。買い手側アカウントのメールアドレスとパスワードを使用してログインします。
Paypalの管理画面へ移動します。なおこの段階で「セキュリティの質問」を聞かれるかもしれませんが、その場合は適当な値を設定しておきましょう(パスワードを忘れたとしてもアカウントを消せばいいので)。また日本語化もしておきましょう。
売り手側アカウントに送金してみましょう。上部の「送金」をクリックし、「宛先」の欄に先ほどコピーした売り手側アカウントのメールアドレスを貼り付け適当な金額を入力します。「商品」を選択し「続行」をクリックします。
以上で支払いが完了します。今度は実際に送金されたのかを売り手側アカウントで確認してみます。
Paypal Sandboxへ戻り、「Test Accounts」→売り手側アカウントを選択→「Enter Sandbox Test Site」の順にクリックします。
「セキュリティの質問」を聞かれたら適当に答えること。Paypalのマイアカウント画面が表示されたら「最近の取引」に先ほど送金された金額が記載されているのを確認します。まだこの時点では受け取りが完了していないので「受取り」をクリックします。
マイアカウント画面に戻るとPaypal残高に入金されているはずです。なおPaypalでは料金を受け取る側が手数料を負担するので、実際に受け取る額は送金額より少なくなります。
Sandboxに戻り「Test emails」を確認すると、送金時に送信されるメールを確認できます。
これでPaypal Sandboxの設定と動作確認は終了です。後はこれらのアカウントをJoomla!のエクステンション側で設定し、決済テストを試してみるのですが、幾つか注意点があるので以下に記載しておきます。
Joomla!関連でやっておいたほうがいいこと
売り手側アカウントの文字コードを設定する
これを設定しないと、Joomla!からPaypalへ画面が遷移したときに「データが入力文字セットまたはデフォルトのエンコーディングに一致しません。」というエラーが表示されるかもしれません。
売り手側アカウントでログインし「個人設定」をクリックします。
「エンコード方式」から「UTF-8」を選択し「保存」をクリックします。
エクステンション側の設定をテストモードにする
Paypalでの決済をサポートするエクステンションの場合、設定画面に「Use Sandbox」または「Test mode」のような項目があるはず。ここを設定することでPaypalSandboxへ転送されるようになります。
設定しないと本物のPaypalへ転送されてしまうので注意。
PaymentReviewをDisableにする
例えば有料会員制のサイトを構築する場合、Paypalで決済→即利用可になるのが望ましいのですが、PaymentReviewがEnableになっていると、それができないのでDisableにしておくこと(Sandboxのアカウント管理画面にあります。既定はDisable)。怪しい送金の場合に一旦確認待ちになるような機能らしいです(詳しく知らない)。
後はひたすらテストを繰り返すのみです。