MySQL、オープンソース系、ウェブ系ネタ。スタンダードを使用し、IPN(即時支払い通知)を受け取って処理しています。この決済フローの場合、PayPalへ移動した際に表示される画面に若干問題があります。ウェブペイスタンダードの決済ページの見本というのも、購入する顧客がPayPalアカウントを持っている場合は問題ないのですが、PayPalアカウントを持っていない場合にはクレジットカード情報を入力する画面にたどり着くまでに「迷う」場合があるためです。PayPalアカウントを持っていなくて、クレジットカードで決済を希望している顧客は画面左下の「続行」というリンクをクリックして、次の画面へ進まなくてはならない為です。ネットになれている顧客ならいとも簡単に理解して難なく次ぎ画面へ進むと思いますが、不慣れな顧客にとってはストレスとなると思います。スタンダードの場合、そこに誘導するオプションが用意されていません。APIを使いエクスプレスチェックアウト(高速チェックアウトAPI)を実装することでこの問題を回避する事が出来ます。ページのタイプを指定出来ます。指定する事で顧客が最初に表示するページにクレジットカード情報を入力するフォームが含まれたページとなります。日本ではPayPalアカウントを持つユーザーはまだまだ少数だと思われますので、こういった決済フローを構築する事は大切だと思います。なれないPHPだし、PostgreSQLだしで、いいのか悪いのか判断できません。基本的にEC-CUBE本体から拾ったコードを再利用しただけです。前に、PayPalのsandboxで見た事があったんだけど、いつの間にかリリースしていた決済画面。ウェブペイメントスタンダードの欠点だったPayPal会員以外がクレジットカード決済するのに分かりにくい・・・っていうのが改善された感じ。ウェブサイト自体も日本語化がかなり進んでいるみたいだし、日本でも本格的に活動していきそうな感じがする。いうモジュールが便利。PayPal決済モジュールは支払先のメールアドレス(receiver_email)の正当性しかチェックしていない。支払われた金額のチェックを行っていないため、(ポストされる内容を変更など)不正な金額を支払ったとしても入金済みにしてしまう。PayPalから届く入金確認メールの金額と違っていないか確認する必要がある。以前作ったsandboxでのテスト環境を使って、別の事業を構築する為のテストを行ったらエラーに悩まされた。悩んだあげく、受取人のアカウント設定がおかしいのに気付く。エクスプレスチェックアウトAPIのLandingPageオプションを使うコメントする返信をキャンセルする。DBIx::Class(DBIC)でtimestamp的なカラムの自動更新Mojoliciousでactionの前後に実行される独自のHookを作る。