2012-03-19 1 views
1

を受け取ることができません。ジャンゴ・PayPalのPDTの実装では、私が購読してPDTを使用してジャンゴ - ペイパル(gitのからdcramers版)を実装しようとしている信号

それは(return_urlが要求と応答されることを意味する)正常に動作しますが、しかし、信号が(models.pyに入れて)起動されません。私は2つの異なる機能に接続された以下の信号を使用しています。

from paypal.standard.pdt.signals import pdt_successful, pdt_failed

何私のアクセスログをブラウズしながら、私が気づいたことは、私が断っているペイパルからのPOSTリクエストを得るかということです。

"POST /an-obscure-string/pdt/ HTTP/1.0" 401 401 "-" "-"

私は、POST要求を受け入れるように/paypal/standard/pdt/views.pyを修正しようとしましたが、私はまだ401エラーを取得します。私はこれが信号が引き起こされない理由だと思う。

私はこれで悪い時間を過ごしています。どんな助けでも大歓迎です。

PS:私は、サンドボックスアカウント

EDITを使用していますこれらのconf.py

POSTBACK_ENDPOINT = "https://www.paypal.com/cgi-bin/webscr" 
SANDBOX_POSTBACK_ENDPOINT = "https://www.sandbox.paypal.com/cgi-bin/webscr" 

答えて

2

あなたは正しいですから、私のPAYPALポストバック値は、それが信号であるため、信号が呼び出されません理由がありますモデルの検証が成功した場合、ビューの最後に送信されます。あなたの解決策は確かに間違っている

あなたがPDNを使用することを選びました場合、ペイパルは間違いなくあなたのアプリケーションのURLにトランザクションIDを持つGETリクエストを送信します。

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howto_html_paymentdatatransfer

あなたはおそらくPOSTリクエストを使用するIPNを使用しているので、私は本当にあなたが(ペイパルアカウントに)設定を確認することをお勧めします。

本の別の原因は、あなたがペイパルからのGETリクエストを受け取った後、あなたのアプリがあなたのアプリへの代わりに、PayPalのポストバックエンドポイントにPOSTデータを送信していることです。 (https://github.com/johnboxall/django-paypal/blob/master/standard/pdt/models.py#L47)

私はPOSTリクエストがGETの後に来るかどうかを見るためにアクセスログを調べますリクエスト(同じURLの場合)、はいの場合は、SANDBOX_POSTBACK_ENDPOINTとPOSTBACK_ENDPOINTの設定値を確認します。

+0

ありがとうございました。 PDNはどういう意味ですか?そして、過去に私はIPNを設定しようとしました。私はちょうどPDTソリューションを避け、IPNだけを使うべきですか?あなたの意見は何ですか?私は、何らかの理由で多くの開発者がIPNよりもPDTを好むという気持ちを持っています。私は私のpaypalの設定をチェックし、ここで報告します。 – xpanta

+0

Paypalの設定を確認して、IPNを無効にしました。 「PayPalは、取引に関連したトークンをポストする、」 – xpanta

+0

はまた、私は(私はPDTを使用するために選択され、私のPDTトークンを持っている)があり、それは言うPDT部に気づいありがとうございました。私は現時点で私の仕事のPCではないが、私はアクセスログを確認する必要はありません。私はPOSTリクエストがGETリクエストの後に来ることをよく覚えています。これも私を困惑させるものです。私はできるだけ早く私の設定をチェックし、報告する。 – xpanta

関連する問題