DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人のデベロッパーズブログ > 
  3. PayPal 決済テストのメモ

加藤 正人のデベロッパーズブログ

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。

PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)

2016/11/23

PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)

 

久しぶりに PayPal 決済を使用するサイトを開発したのでメモ。

テストアカウントの作成

決済のテストは Sandbox (砂場) という PayPal の用意するテスト環境で行なうことになる。そのためには Sandbox 用の売り手アカウントと買い手アカウントが必要となる。

以前は PayPal アカウントと切り離して Sandbox 専用アカウントを作成できたのだが、現在はこれができないようだ。(詳細未確認)

PayPal のビジネスアカウント(売り手アカウント) を持っていれば、PayPal Developer サイトに ログイン後ダッシュボードから Sandbox アカウントを作成できるのでそちらを利用する。

  1. PayPal にビジネスアカウントを作成する
  2. PayPal Developer サイト にアクセスし、グローバルナビ右端の青地の「log In」ボタンをクリック
  3. 1. で作成したビジネスアカウントでログインする (ログインに成功すると、グローバルナビの「Log In」が白抜きの「Log Out」に変わる)
  4. 「Log Out」ボタンの左にある「Dashboard」をクリック
  5. Dashboard 画面左ナビの「Sandbox」の下の「Account」をクリック
  6. 右ペインの「Create Account」をクリックし、指示に従ってアカウントを作成 (指定するメールアドレスは実際にはメール送受信はないので、実在しないものでもOK)

以上で Sandbox 用アカウントを作成できる。アカウント作成時にはアカウントのタイプ (売り手か買い手か)、カード種別 (VISA、MasterCard 等) や初期残高、使用通貨種別なども細かく設定できる。

決済のテストには売り手と買い手が必要なので、通常は両方作成することになる。(既に存在している Sandbox アカウントがあり利用可能なのであればそちらを利用しても良い。)

売り手アカウントの設定

売り手アカウントの既定値ではロケールを「日本」にした場合、使用する文字エンコーディングは既定値では「Shift_JIS」になっている。(今時 Shift_JIS のサイトは無いだろうと思うのだが、、、)

従って開発中のサイトの文字エンコーディングが Shift_JIS 以外の場合、決済ボタンや IPN メッセージ内の日本語文字列が化けてしまうことになる。これを回避するためには、Sandbox で売り手アカウントの設定を変更しておく必要がある。(Sandbox アカウントの設定は Developer サイトではなく Sandbox サイトで行なう必要がある。)

以下では UTF-8 に指定する場合の例を示す。

  1. Sandbox サイトにアクセスする (実サイトとそっくりなので間違えないようにすること)
  2. グローバルナビの「ログイン」をクリック
  3. 先ほど作成した Sandbox 売り手アカウントのメールアドレスとパスワードでログインする
  4. 「マイアカウント」タブを開き、マイアカウント下のナビの「個人設定」をクリック
  5. 「アカウント設定画面」に切り替わるので、左ナビの「販売ツール」をクリック
  6. 右ペイン一番下の「その他の販売ツール」の「PayPalボタンの言語コード化」をクリック
  7. 「言語のエンコード」画面に切り替わるので、「ウェブサイトの言語」を「西欧言語(英語を含む)」にする (※PayPal では UTF-8 は「日本語」カテゴリーには含まれない)
  8. 「詳細オプション」ボタンをクリックし表示される画面で「エンコード方式」を「UTF-8」、「PayPalから送信された…【中略】…使用しますか」を「いいえ」、エンコード方式を「UTF-8」に設定し、「保存」ボタンをクリック

以上でボタンコードや IPN メッセージ内の文字が UTF-8 でエンコーディングされるようになる。

関連タグ: PayPal  Sandbox