1.3.8aでのPaypalのIPNトラブル

ビッグマウス社による1.3.8a日本語版など、Zen Cart.JP版日本語Zen Cart以外の日本語版Zen Cartに関する話題など
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

1.3.8aでのPaypalのIPNトラブル

投稿記事by maron » 2009/11/01 12:26

1.3.8aを使用し、主にダウンロード商品の
販売サイトを運営しています。
クレジット決済にはPaypalを使用しており、
今まで約1年間何の問題もおきませんでしたが、
本日、以下の現象が発生しました。

PaypalからIPNは送信されているのですが、
ZENCART側で受信されていません。
そのため、Paypalではクレジット決済はされ、
入金されているにもかかわらず
ZENCARTでは注文が無い状態になっています。

なぜ、このような現象がおきるのか、
また、この現象に対する対処法を
ご存知の方がいたら教えてください。
アバター
Nhat
記事: 49
登録日時: 2005/12/05 20:03
お住まい: Osaka

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by Nhat » 2009/11/04 11:09

私も、日本語サイドで同じ現象を確認しております。
英語画面からだとどうなるかは検証中です。

調査中ですが、わかるかな。。。
本家も見てみますが。




maron さんが書きました:1.3.8aを使用し、主にダウンロード商品の
販売サイトを運営しています。
クレジット決済にはPaypalを使用しており、
今まで約1年間何の問題もおきませんでしたが、
本日、以下の現象が発生しました。

PaypalからIPNは送信されているのですが、
ZENCART側で受信されていません。
そのため、Paypalではクレジット決済はされ、
入金されているにもかかわらず
ZENCARTでは注文が無い状態になっています。

なぜ、このような現象がおきるのか、
また、この現象に対する対処法を
ご存知の方がいたら教えてください。
アバター
Nhat
記事: 49
登録日時: 2005/12/05 20:03
お住まい: Osaka

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by Nhat » 2009/11/04 11:16

http://www.zen-cart.com/forum/showthrea ... pal+record

どうも、この現象のように思われます。。。。
引き続き調査中。
アバター
Nhat
記事: 49
登録日時: 2005/12/05 20:03
お住まい: Osaka

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by Nhat » 2009/11/04 12:07

本家の答は、

http://www.zen-cart.com/forum/showpost. ... stcount=12

Paypal の仕様によるトラブルだから、IPN ではなく Express CheckOut を使え、ということのようです。

http://www.zen-cart.com/index.php?main_page=page&id=15

こちらを見てセットアップしてみてください。

日本語画面を表示させるには、どこかを直す必要がありそうですが、そこまではやっていません。

私自身は、これで逃げることとします。

誰か hack してみてください。

p.s. この問題は OSCommerce でも出ると思うのですが?
アバター
maron
記事: 20
登録日時: 2008/2/19 21:41

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by maron » 2009/11/04 12:34

Nhatさん、返信ありがとうございます。
私のサイトも日本語です。

ところで、IPNトラブルが発生したのは一度だけで
以降は、今のところ正常に稼動しています。
しばらくこのままで様子を見てみます。
ありがとうございました。
アバター
Nhat
記事: 49
登録日時: 2005/12/05 20:03
お住まい: Osaka

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by Nhat » 2009/11/04 17:48

私のところでは、2回発生したのですが、どうやら Paypal のサーバーの状態によるようです。

なお、Express checkout で日本語画面を表示させるには、

your_zencart/includes/modules/payment/paypal にある

paypal_curl.php

48行目
var $_endpoints = array('live' => 'https://api-3t.paypal.com/nvp',



var $_endpoints = array('live' => 'https://api-3t.paypal.com/j1/nvp',

に修正しましたらとりあえず問題ないようです。

メリットとしては、売買当事者の Paypal データに、購入内容が明記されます。
結構便利そうです、この機能。

ほかの方も試されては?

maron さんが書きました:Nhatさん、返信ありがとうございます。
私のサイトも日本語です。

ところで、IPNトラブルが発生したのは一度だけで
以降は、今のところ正常に稼動しています。
しばらくこのままで様子を見てみます。
ありがとうございました。
アバター
bluedeer
記事: 2
登録日時: 2012/12/05 22:24

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by bluedeer » 2012/12/05 22:53

初めて投稿いたします。

こちらの環境
--
zencart 1.3.0.2-l10n-jp-6
MySQL 5.0.82
Linux 2.6.9
PHP バージョン: 5.2.17
--

こちらで現象が報告されているzencartのバージョンよりも古いのですが
同じ現象に遭遇致しました。
最初に報告されてからかなり時間が経っており、あまり役に立たないかもしれませんが、
下記の対応で、zencart側できちんと受信され注文確認のメールも届くようになりました。

下記ファイルを以下のように修正致しました。

includes/modules/checkout_process.php
でpaypal利用時に73行目付近の
$payment_modules->before_process();
で実行されている、
includes/modules/payment/paypal.php
で定義されている関数は

--

コード: 全て選択

  function before_process() {

    global $order_total_modules;
    if (isset($_GET['referer']) && $_GET['referer'] == 'paypal') {

      $this->notify('NOTIFY_PAYMENT_PAYPAL_RETURN_TO_STORE');
      if (MODULE_PAYMENT_PAYPAL_TESTING == 'Test') {
        // simulate call to ipn_handler.php here
        ipn_simulate_ipn_handler((int)$_GET['count']);
      }
      $_SESSION['cart']->reset(true);
      unset($_SESSION['sendto']);
      unset($_SESSION['billto']);
      unset($_SESSION['shipping']);
      unset($_SESSION['payment']);
      unset($_SESSION['comments']);
      unset($_SESSION['cot_gv']);
      $order_total_modules->clear_posts();//ICW ADDED FOR CREDIT CLASS SYSTEM
      zen_redirect(zen_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
    } else {
      $this->notify('NOTIFY_PAYMENT_PAYPAL_CANCELLED_DURING_CHECKOUT');

      zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
    }
  }


--

上記の状態ですが下記のようにコメントアウト致しました。

--

コード: 全て選択

  function before_process() {

    global $order_total_modules;
    if (isset($_GET['referer']) && $_GET['referer'] == 'paypal') {

//          $this->notify('NOTIFY_PAYMENT_PAYPAL_RETURN_TO_STORE');
//          if (MODULE_PAYMENT_PAYPAL_TESTING == 'Test') {
//             // simulate call to ipn_handler.php here
//             ipn_simulate_ipn_handler((int)$_GET['count']);
//          }
//          $_SESSION['cart']->reset(true);
//          unset($_SESSION['sendto']);
//          unset($_SESSION['billto']);
//          unset($_SESSION['shipping']);
//          unset($_SESSION['payment']);
//          unset($_SESSION['comments']);
//          unset($_SESSION['cot_gv']);
//          $order_total_modules->clear_posts();//ICW ADDED FOR CREDIT CLASS SYSTEM
//          zen_redirect(zen_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));

    } else {
      $this->notify('NOTIFY_PAYMENT_PAYPAL_CANCELLED_DURING_CHECKOUT');

      zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
    }
  }


--

コメントアウトした部分は、$_SESSIONやら$_POSTやらの中身を空にしており、
加えて、この関数の実行したあと
includes/modules/checkout_process.php
の74行目付近以降のオーダー情報の登録と注文確認メール送信をする前に、
zen_redirect(zen_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
で次の注文手続き完了のページへ飛ばしてしまっています。
これではzencartへは反映されません。

ただ、こちらの

コード: 全て選択

         if (MODULE_PAYMENT_PAYPAL_TESTING == 'Test') {
            // simulate call to ipn_handler.php here
            ipn_simulate_ipn_handler((int)$_GET['count']);
       }

ipnの部分もコメントアウトしており、ここの箇所がどういった処理をしているのか検証しておりません。

上記で何か問題があればご指摘ご教授いただければと思います。

宜しくお願い致します。
アバター
きたきつね
記事: 147
登録日時: 2007/11/02 08:58

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by きたきつね » 2012/12/06 18:52

bluedeer さんが書きました:コメントアウトした部分は、$_SESSIONやら$_POSTやらの中身を空にしており、
加えて、この関数の実行したあと
includes/modules/checkout_process.php
の74行目付近以降のオーダー情報の登録と注文確認メール送信をする前に、
zen_redirect(zen_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
で次の注文手続き完了のページへ飛ばしてしまっています。
これではzencartへは反映されません。

上記で何か問題があればご指摘ご教授いただければと思います。

宜しくお願い致します。
このように変えてしまったらIPNが正常に動いた時に二重注文になる可能性が有るのと、正常に完了しているように見える注文がPayPal側で正しく反映されてない可能性も有ります。

スクリプトに変更を加える時には、何故そのような記述が有るのかを理解してから変更しないと思わぬトラブルになります。
本当に正常に動いているのなら良いのですが、正しい対象方法とは言えないと思いますね。

※ここまで書いておいて何ですが、古いZencartのPaypalは余り見たくないので"何処をどうすれば"のような質問には答えられないので、その点は了承して下さい。
あなたも私も一般人
( ^ω^) 照れるので様は止めてね
http://zencart-pro.com/
http://bigmouse.jp/
アバター
bluedeer
記事: 2
登録日時: 2012/12/05 22:24

Re: 1.3.8aでのPaypalのIPNトラブル

投稿記事by bluedeer » 2012/12/06 20:40

きたきつねさん

ご指摘ありがとうございます。
paypalのsandboxではテスト注文の支払いの授受はきちんとできているのですが、
IPNの件もあるのでもう少し検証してみます。

“公式版以外の不具合情報(1.3.8aなど)” へ戻る