我在paypal ipn listener上工作-它似乎没有‘听到’信号,尽管数据库已经更新,所以我知道ipn是被paypal.standard.ipn包接受的。
现在我从ipn模拟器得到了一个403错误--有人知道为什么会发生这种情况吗?当我直接导航到监听器url时,没有任何错误。
我将@csrf_exempt添加到监听器中,但这并没有帮助。
欢迎提出任何建议。
Listeners.py:
from django.dispatch import receiver
from django.contrib.sites.models import Site
from django.views.decorators.csrf import csrf_exempt
from paypal.standard.ipn import signals as paypal_signals
from messaging import send
from utests.models import Test
import logging
@csrf_exempt
@receiver(paypal_signals.payment_was_successful)
def payment_was_succesful_listener(sender, **kwargs):
#:sender is the PayPalIPN model instance
logging.debug("in payment successful listener")
... the rest of the code is commented out while I debug...
@receiver(paypal_signals.payment_was_flagged, dispatch_uid="dl-payment_was_flagged")
def payment_was_flagged_listener(sender, **kwargs):
#:sender is the PayPalIPN model instance
pass正如您所看到的,所有应该发生的事情都是一些调试,但它并没有实现。
发布于 2013-04-05 15:56:49
我又遇到了同样的问题。以下是其他任何人遇到此问题时的解决方案:
@csrf_exempt需要添加到django-paypal包本身。
在paypal/standard/ipn/views.py中添加:
from django.views.decorators.csrf import csrf_exempt在顶部,在其余的导入中,以及
@csrf_exempt在函数声明之上的@require_POST之上。
发布于 2012-11-08 17:57:09
这是一个非常晚的答案,但我有完全相同的问题。事实证明,我们并没有关闭服务器上的apache Basic Authentication (它在开发过程中就存在)。PayPal无法通过该身份验证层,因此得到一个403作为响应。这可能是另一个问题,但这肯定是我们的问题!
发布于 2013-12-15 00:54:37
我也有同样的问题。事实证明,在我的虚拟环境中,我已经安装了 django-paypal,在我的项目中,我有一个应用程序paypal。当我将@csrf_exempt添加到我的应用程序中时,它不起作用,因为django总是在我的Virtualenv中调用paypal包。我做了一个pip卸载django-paypal,一切正常(另一个解决方案可能是修改包视图)
我希望它能有所帮助!
https://stackoverflow.com/questions/7324575
复制相似问题