DEVELOPERS BLOGデベロッパーズブログ
- HOME >
- 加藤 正人のデベロッパーズブログ >
- PayPal 決済テストのメモ
加藤 正人のデベロッパーズブログ
- 氏名
- 加藤 正人
- 役職
- 多分SE
- 血液型
- 秘密
- 出没
- 美味しいもののあるところ
- 特色
- タヒチ大好き。ちょいメタボ。
- 2020/12/15
- CakePHP3 のリダイレクトがうまく行かない例
- 2020/11/12
- Apache Bench
- 2020/10/05
- PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)
久しぶりに PayPal 決済を使用するサイトを開発したのでメモ。
テストアカウントの作成
決済のテストは Sandbox (砂場) という PayPal の用意するテスト環境で行なうことになる。そのためには Sandbox 用の売り手アカウントと買い手アカウントが必要となる。
以前は PayPal アカウントと切り離して Sandbox 専用アカウントを作成できたのだが、現在はこれができないようだ。(詳細未確認)
PayPal のビジネスアカウント(売り手アカウント) を持っていれば、PayPal Developer サイトに ログイン後ダッシュボードから Sandbox アカウントを作成できるのでそちらを利用する。
- PayPal にビジネスアカウントを作成する
- PayPal Developer サイト にアクセスし、グローバルナビ右端の青地の「log In」ボタンをクリック
- 1. で作成したビジネスアカウントでログインする (ログインに成功すると、グローバルナビの「Log In」が白抜きの「Log Out」に変わる)
- 「Log Out」ボタンの左にある「Dashboard」をクリック
- Dashboard 画面左ナビの「Sandbox」の下の「Account」をクリック
- 右ペインの「Create Account」をクリックし、指示に従ってアカウントを作成 (指定するメールアドレスは実際にはメール送受信はないので、実在しないものでもOK)
以上で Sandbox 用アカウントを作成できる。アカウント作成時にはアカウントのタイプ (売り手か買い手か)、カード種別 (VISA、MasterCard 等) や初期残高、使用通貨種別なども細かく設定できる。
決済のテストには売り手と買い手が必要なので、通常は両方作成することになる。(既に存在している Sandbox アカウントがあり利用可能なのであればそちらを利用しても良い。)
売り手アカウントの設定
売り手アカウントの既定値ではロケールを「日本」にした場合、使用する文字エンコーディングは既定値では「Shift_JIS」になっている。(今時 Shift_JIS のサイトは無いだろうと思うのだが、、、)
従って開発中のサイトの文字エンコーディングが Shift_JIS 以外の場合、決済ボタンや IPN メッセージ内の日本語文字列が化けてしまうことになる。これを回避するためには、Sandbox で売り手アカウントの設定を変更しておく必要がある。(Sandbox アカウントの設定は Developer サイトではなく Sandbox サイトで行なう必要がある。)
以下では UTF-8 に指定する場合の例を示す。
- Sandbox サイトにアクセスする (実サイトとそっくりなので間違えないようにすること)
- グローバルナビの「ログイン」をクリック
- 先ほど作成した Sandbox 売り手アカウントのメールアドレスとパスワードでログインする
- 「マイアカウント」タブを開き、マイアカウント下のナビの「個人設定」をクリック
- 「アカウント設定画面」に切り替わるので、左ナビの「販売ツール」をクリック
- 右ペイン一番下の「その他の販売ツール」の「PayPalボタンの言語コード化」をクリック
- 「言語のエンコード」画面に切り替わるので、「ウェブサイトの言語」を「西欧言語(英語を含む)」にする (※PayPal では UTF-8 は「日本語」カテゴリーには含まれない)
- 「詳細オプション」ボタンをクリックし表示される画面で「エンコード方式」を「UTF-8」、「PayPalから送信された…【中略】…使用しますか」を「いいえ」、エンコード方式を「UTF-8」に設定し、「保存」ボタンをクリック
以上でボタンコードや IPN メッセージ内の文字が UTF-8 でエンコーディングされるようになる。
関連エントリー
- 2016/10/29
- ベーシック認証と PayPal IPN シミュレーター
2020/12/15
2020/11/12
2020/10/05
2020/09/11
2020/08/03