こちらの件は解決いたしました。 Django側ではなく、PayPalの設定が原因でした。
ありがとうございました。 2015年3月14日土曜日 9時15分22秒 UTC+9 shinriyo: > > 岡野さん > > お世話になります。 > > トレースログを確認したいのですが、 > > こういったsignalでの処理のログを見る方法や、そのための設定などはご存知だったりしますでしょうか。 > > > 何卒、よろしくお願い致します。 > > 2015年3月13日金曜日 11時55分30秒 UTC+9 shinriyo: >> >> 岡野さん >> >> ご返信ありがとうございました。 >> >> Django1.6でしたので、 >> connectの処理を試しにROOT_URLCONFの指定先のurls.pyやmodels.py >> <http://urls.xn--pymodels-4k4g.py>に変更してみました。 >> しかしながら、PayPal購入時にコールされることがありませんでした。 >> >> ソースコードを読みながらになるかもしれませんね・・・。 >> >> 2015年3月12日木曜日 9時52分32秒 UTC+9 tokibito: >>> >>> 岡野です。 >>> >>> django-paypalについてはわからないので、signalのconnectについてのみアドバイスします。 >>> >>> > おそらくこれらの処理はviews.pyの各メソッド内に書くのではなくて、 >>> > そのままviews.pyへ記載して購入時にコールバックされる的なものという認識です。 >>> >>> はい、その認識であっています。 >>> ただし、connect処理が記述されたモジュールが読み込まれる前にシグナル送信が行われると、通知されないので注意してください。 >>> シグナル送信前に確実に登録したいのであれば、Djangoのプロジェクトがロードされるタイミングで読み込まれるモジュールに記述したほうがよいです。 >>> >>> >>> Django1.6ということなので、ROOT_URLCONFに設定したurls.pyか、models.pyなどにconnect処理を記述すると良いかと思います。 >>> Django1.7以上であれば、AppConfigのreadyメソッドで登録します。 >>> >>> シグナルがそもそも発行されて無さそう、という場合だとソースコードを読みながらデバッグをがんばるしかないかもしれませんね... >>> >>> >>> 2015年3月11日水曜日 15時39分42秒 UTC+9 shinriyo: >>>> >>>> お世話になります。 >>>> >>>> Paypalでの決済をDjango上に実装を行っております。 >>>> どうしても解決できませんでしたので、投稿いたしました。 >>>> >>>> Django 1.6でdjango-paypalの0.2バージョンを使ってます。 >>>> PayPalの「IPN」を使用しています。 >>>> 購入のボタンをPayPalPaymentsFormで生成し、 >>>> サンドボックスのアカウント設定をし、そのアカウントで購入できるところまでは動作しています。 >>>> >>>> PayPalPaymentsFormに渡す辞書には、 >>>> >>>> paypal_dict = { >>>> "business": settings.PAYPAL_RECEIVER_EMAIL, >>>> "amount": "100", >>>> "item_name": name, >>>> "invoice": "invoice-1", >>>> "notify_url": reverse('paypal-ipn'), >>>> "return_url": PAYPAL_URL + "/return-location/", >>>> "cancel_return": PAYPAL_URL + "/cancel-location/", >>>> "currency_code": "JPY", >>>> } >>>> >>>> >>>> url.pyには以下の様な記載をしています。 >>>> >>>> (r'^something/paypal/', include('paypal.standard.ipn.urls')), >>>> url(r'^payment-url/$', login_required(view_that_asks_for_money), name= >>>> 'paypal'), >>>> (r'^return-location/$', 'fbuser_app.views.return_location'), >>>> (r'^cancel-location/$', 'fbuser_app.views.cancel_location'), >>>> >>>> >>>> 意図したreturn-locationとcancel-locationにも遷移は出来ます。 >>>> notify_urlはどういったものかよく理解できませんでしたが、 >>>> >>>> https://github.com/spookylukey/django-paypal/blob/07d61a4e9a5ce78153bc4ff6fd99b8eed77983bc/paypal/standard/ipn/urls.py >>>> こちらのようにpaypal-ipnで定義されてあるので大丈夫と思います。 >>>> >>>> PDTでしか使わないと思われる、「IDトークン」も取得してsettings.pyに記載しております。 >>>> >>>> http://django-paypal.readthedocs.org/en/latest/standard/ipn.html >>>> の公式ドキュメントを参考にしました。 >>>> >>>> valid_ipn_receivedとinvalid_ipn_receivedでの >>>> シグナルをディスパッチできません。 >>>> >>>> valid_ipn_received.connect(show_me_the_money) >>>> invalid_ipn_received.connect(error_show_me_the_money) >>>> >>>> のようにviws.pyへ記載しています。 >>>> >>>> おそらくこれらの処理はviews.pyの各メソッド内に書くのではなくて、 >>>> そのままviews.pyへ記載して購入時にコールバックされる的なものという認識です。 >>>> >>>> 以下のコードは何を示すのかわかりませんが、1は支払い完了の条件、 >>>> 2がよくわかりませんが、これらのコードも省いて実験してもうまく動作しませんでした。 >>>> >>>> 1 >>>> if ipn_obj.payment_status == ST_PP_COMPLETED: >>>> >>>> 2 >>>> if ipn_obj.custom == "Upgrade all users!": >>>> >>>> >>>> そもそも、スレッドが違うせいかログが出ないだけかもしれないので、 >>>> の以下のようにDBに何らかしらの入れる処理を記載しましたが、 >>>> DBは変化しませんでした。 >>>> >>>> ※「DBになにか入れる処理」については、直接叩いてみてエラーのないことを確認しています。 >>>> >>>> def show_me_the_money(sender, **kwargs): >>>> # DBになにか入れる処理 >>>> >>>> >>>> ※error_show_me_the_moneyも同様の処理。 >>>> >>>> さらにログに残るように、 >>>> >>>> http://w3facility.org/question/django-paypal-does-not-receive-ipn-signal/ >>>> を参考にして(※このサイトはエラーで見えない時もあります)、 >>>> 以下の様な必要最低限の処理をしました。 >>>> >>>> def show_me_the_money(sender, **kwargs): >>>> ipn_obj = sender >>>> try: >>>> ipn_obj.verify(item_check_callable) >>>> except: >>>> traceback.print_exc(file=sys.stdout) >>>> >>>> >>>> >>>> ※error_show_me_the_moneyも同様の処理。 >>>> >>>> しかし、tail -f /var/log/httpd/access20150311.log >>>> には何も出てきませんでした。 >>>> >>>> どうかご教示よろしくお願い致します。 >>>> >>> -- -- ----------------- http://djangoproject.jp/ ----------------- You received this message because you are subscribed to the Google Groups "django-ja" group. To post to this group, send email to django-ja@googlegroups.com To unsubscribe from this group, send email to django-ja-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-ja --- このメールは Google グループのグループ「django-ja」の登録者に送られています。 このグループから退会し、グループからのメールの配信を停止するには django-ja+unsubscr...@googlegroups.com にメールを送信してください。 その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。