サイトを移転して快適にアクセスできるようになったので、osCommerceやその他オープンソースを使った開発やテストが進むようになった。先日、osCommerceにPayPal Express Checkout 導入したいという見積もり依頼があったのでosCommerceの日本語版と英語版をインストールしてチェック用に準備した。

これまで、osCommerceのほとんどにはウェブ ペイメント スタンダードというPayPalの支払いモジュールが組み込まれていたが、これはHTMLベースで動作するため、改竄の危険性があるうえ、最後にosCommerceの購入完了処理に戻らずに途中で終了してしまう不具合や、なぜかinvoiceが重複するという不具合があり、解決できずにいた。

PayPalは国によって利用できる機能が違うためosCommerceのcontributions(フリーのモジュール)も日本で利用できるものとできないものがある。いくつか選んで、英語版、日本語版のosCommerceに導入してみた。日本語版は文字化けする部分があったので修正した。英語版は日本語版とは違う機能がありそのための修正をモジュールに施して完成させた。

PayPalにはテスト用のサーバ(sandbox)があり、アカウントを作ってテストを実施した。ウェブ ペイメント スタンダードでは、注文完了時にやっとPayPal側へ遷移するが、PayPal Express Checkoutではその前にPayPalへ移動する。APIベースで動作するため購入処理の途中でPayPalへ移動して、信用度を調査した後、osCommerceに戻り、注文の確定ボタンを押したところで課金されるようだ。 「買い手が最終確認ページに確実に到達します」とPayPal Express Checkoutのマニュアルに書かれている。
https://www.paypal.com/jp/cgi-bin/webscr?cmd=xpt/Merchant/merchant/ExpressCheckoutIntro-outside

PayPalの会員だとスムーズに支払いできる。PayPalの会員ではなくてもPayPal側で必要事項を入力して購入できる。 これまでPayPalで不具合が起こっていたなら、PayPal Express Checkoutに変更すれば解決するのではないだろうか。

http://gihyo.jp/dev/serial/01/paypal_api/0002

この記事で紹介されているhttp://bluefly.com/は会員登録や住所の登録もなくPayPalに登録した情報を利用して購入できる。米国のEC-サイトでは数多く実装されているそうだ。osCommerceでも実装できるか試してみたい。