PerlでPayPalのExpressCheckoutを実装するのにBusiness::PayPal::APIを使っているのだけれど、日本語(2byte文字)がうまく送信できない。 UTF-8で送ろうが、フラグ付きにしようが、だ。 散々悩んだ挙句、原因はSOAP::Liteが勝手にbase64エンコードするからだと判明。 Business::PayPal::APIは内部でSOAP::Liteを使用していて、Asciiだとそのままなのだけれど、それ以外はbase64にエンコードする仕様の様子。 前々から、例えば、OrderDescription に日本語を使うと上手くいかないと思っていたのだけれ […]
随分前に、PayPalのsandboxで見た事があったんだけど、いつの間にかリリースしていた決済画面。 ウェブペイメントスタンダードの欠点だったPayPal会員以外がクレジットカード決済するのに分かりにくい・・・っていうのが改善された感じ。 ウェブサイト自体も日本語化がかなり進んでいるみたいだし、日本でも本格的に活動していきそうな感じがする。 実際かなり便利だし、導入の敷居が低いことを考えると良いことだと思います。 ますますEC市場が拡大されるかな? PayPalウェブペイメントスタンダードの新しい画面 PayPal アカウントを作成して、あなたのサイトにカード決済を導入!
EC-CUBE 2.4の時はかなり手を加えないと使えない感があったのだけれど、久しぶりに触ってみた感じではなかなかの好感触。 簡単に気づいた点は ポイント周りの不具合 ポイントを付加するタイミングが「対応状況」を「発送済み」にした時になった。 クレジットカードでの決済未完了時(失敗など) 「決済処理中」という対応状況が増えて、入金待ちと区別が付きやすくなった。 ウェブペイメントプラスでの確認だったけど、悪くないかも。決済フローも簡潔で、これなら3000円出しても価値があると思う。 決済フローのスクリーンキャプチャ 注文確認画面。「次へ」で決済ページへ移行。 PayPal ウェブペイメントプラス […]
EC-CUBE PayPal決済モジュールの注意点の続き PayPal決済モジュールのチェック機構を強化 とりあえずのコードを書いてみた。 なれないPHPだし、PostgreSQLだしで、いいのか悪いのか判断できません。 基本的にEC-CUBE本体から拾ったコードを再利用しただけです。 コードはEC-CUBE 開発コミュニティサイト - フォーラムに投稿してみました。 ソースはこちらから PayPal決済モジュールのチェック機構を強化する 動作するのか 一応PayPalのテスト環境でテスト済みですが、ご利用は自己責任で。 ツッコミ大歓迎。 PayPal アカウントを作成して、あな […]
PayPal決済モジュールはチェックが甘い? PayPal決済モジュールは支払先のメールアドレス(receiver_email)の正当性しかチェックしていない。 支払われた金額のチェックを行っていないため、(ポストされる内容を変更など)不正な金額を支払ったとしても入金済みにしてしまう。 PayPalから届く入金確認メールの金額と違っていないか確認する必要がある。 また、支払い済みのトランザクションIDの記録やチェックも行っていないため、不正利用される可能性もあると思われる。 (たしか)PayPalからダウンロードしたPerlのサンプルスクリプトにもレスポンスが VERIFIED の場合以下のチ […]
Perlモジュール Business::PayPal::API PayPalのAPIを使う時は Business::PayPal::API というモジュールが便利。 先日のエントリー PayPal利用時の決済フローを考える でLandingPageオプションの事を書いたのですが、Business::PayPal::API で実装するとそのままでは利用出来ないので、Business::PayPal::API::ExpressCheckout のソースを変更する必要があります。 PayPalの英語版APIの解説書(PDF)にはLandingPageの記載が無いようでしたので日本独自の仕様なのでしょ […]
ウェブ ペイメント スタンダードを利用した場合 PayPalで決済する際、ウェブ ペイメント スタンダードを使用し、IPN(即時支払い通知)を受け取って処理しています。 この決済フローの場合、PayPalへ移動した際に表示される画面に若干問題があります。 というのも、購入する顧客がPayPalアカウントを持っている場合は問題ないのですが、PayPalアカウントを持っていない場合にはクレジットカード情報を入力する画面にたどり着くまでに「迷う」場合があるためです。 PayPalアカウントを持っていなくて、クレジットカードで決済を希望している顧客は画面左下の「続行」というリンクをクリックして、次の画 […]
IPN(即時支払い通知)のシステム構築 以前作ったsandboxでのテスト環境を使って、別の事業を構築する為のテストを行ったらエラーに悩まされた。 IPNで通知される状態が payment_status=Pending pending_reason=paymentreview となってしまう。悩んだあげく、受取人のアカウント設定がおかしいのに気付く。 前にいろいろいじったアカウントを受取人に設定したせいかも。 とりあえず変更してみる。