カレンダー

06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

カテゴリー

プロフィール

drednote(Mr.Ty)

Author:drednote(Mr.Ty)
既にいい年しているにも関わらずエロゲをプレイしているヤバイおっさんです。きっと還暦になってもプレイしてそうな気がする。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

主にエロゲのプレイ日記。他レビューっぽい事とか色々
エロゲプレイ記
  当サイト内記事にはゲームのネタバレが含まれる場合があります。
  ネタバレをみたくない方は、当サイトの閲覧をご遠慮願いますようお願い致します。
  また、当サイトの記事自体は全年齢対象ですが、
  扱っている評価物は基本的に18歳未満プレイ禁止の物が殆どですのでご注意願います。
[------]
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--------(--) --:-- スポンサー広告 | 編集 |
[20070825]

EC-CUBEにPAYPAL支払いを組み込む事については以前も注意点などを書いたが、今回は住所氏名電話番号などをPAYPALに渡す方法について書いてみようと思う。
EC-CUBEは基本的にEUC-JPで動いている為、フォームを書いてPOSTで引数渡しする方法ではEUC-JP以外のエンコードで日本語を渡すのは難しい。
だから、私はGETによる引数渡しでPAYPALに渡す事にした。

前回記事を書いた時はEC-CUBEの支払い完了画面を2つ作って、1つをPAYPAL支払いへ飛ばすボタン付きの画面という風に設計した。
だけどこの方法ではEC-CUBEサイト->PAYPALサイトという明確な線引きが出来てしまいあまりスムーズとは言えない。
だから今回は確認画面で確認ボタンを押したらPAYPAL支払い画面へリダイレクトする事を考えてみる。
ショッピングの確認画面はhtml/shopping/confirm.phpで行われるわけだが、このファイル中に
header("Location: " . URL_SHOP_COMPLETE);
の行がある事が判るだろう。
これは正にPHPでリダイレクトを行っている箇所なわけなんだけど、このURL_SHOP_COMPLETEの部分を条件によって変える事で、PAYPAL支払い時にはPAYPALへ飛ぶという動作が実現可能となる。
とりあえず該当部分のコードだけ抜き出してみたので見て欲しい。
if($arrData['payment_id'] == PAYPAL_PAYMENT_ID)のif文の部分からPAYPAL支払いへ飛ぶコードとなっている。
PAYPAL_SERVERやPAYPAL_MAILADDRESSの記号定数は判るだろうから省略するとして、このコードではEUC-JPで収められているデータをUTF-8にコンバートした後URLエンコードしてGET引数として組み込む流れを記述している。
(notify_urlの指定は、飛ばす事だけしか考えないのであれば消してしまった方が良い)
また、コードを見れば判ることだが、市町村名を得る為に郵便番号データベースから検索をかけている関係上、これを使う前に予め郵便番号データベースを登録しておかなければならない。
コードの工夫点1として、EC-CUBEでは顧客の住所登録時、都道府県については別で管理するようになっているが市町村については別になっていない。
しかしPAYPALでは別で渡すようになっており、しかもその欄は空白には出来ない。
だからEC-CUBEで登録された住所データから市町村データを抜き出す必要があるわけだが、私はここで、市町村は郵便番号から得て、登録住所1から得た市町村名を削除するという方向で実装してみた。
通常、市町村は住所1の先頭に来るわけだが普通は郵便番号データベースに登録してあるままの名前で先頭に来るだろう。
無論、そのままの名前で登録していない場合もあるかもしれないが、いずれにせよPAYPAL支払い画面で一度確認する事になるので、その時に修正してもらう機会もある。
電話番号はnight_phone_bに全て纏めてあるわけだが、PAYPAL支払いの際に入力するべき欄での電話番号欄ではどうやらnight_phone_bしか使われないようである為である。
これは恐らく、海外の、とくにアメリカ等の場合の州ごとの電話番号違いの吸収機構がnight_phone_aという事で、日本では要らないからnight_phone_aは使われていないのではないかと推測してみる。

いずれにせよ、このような形でGET引数に組み込んでPAYPALに渡してやる事で、顧客の住所氏名電話番号は既に入力された状態でPAYPAL支払い画面に飛ばせる事が出来るので、顧客は他のショッピングサイトと同様にクレジットカード番号だけ気にすれば良いという感じにすることが出来、またシームレスな移行も実現できる。
(ただ、どうしても都道府県だけは予め入力しておく事が出来なかった。都道府県はリストボックス形式での選択となっているのだが、stateに県名を入れておいても、或いは数字を入れたりしても無反応だった為もしかしたらstateではない他の変数の設定が必要なのかもしれない)

スポンサーサイト

□  by koji

参考になりました、ありがとうございます。

その後いろいろ試しましたが、都道府県は、「東京都 - Tokyo」のようにするとちゃんとわたりますよ。

2009-01-15(Thu) 21:32 | URL | #- [ 編集 ]

管理者にだけ表示を許可する
Top
http://drednote.blog92.fc2.com/tb.php/62-bb702715

ネットショップでは決済方法はできるだけ多く揃えておいた方が何かと便利ですが、決済種類によっては手数料がネックになることもあります。 特にネットで購入する場合はクレジットカード決済を使う人の割合はかなり多いということは皆さんもご存知かと思います。 でも、...
2008-02-28(Thu) 17:37 | EC-CUBE構築TIPS 
HOME
copyright © 2005 drednote(Mr.Ty) all rights reserved.

Template By innerlife02

RSS1.0 ,
RSSフィード

応援バナー

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。