【发布时间】:2011-11-11 13:55:40
【问题描述】:
我正在研究 paypal ipn 监听器 - 它似乎没有“听到”信号,尽管数据库已更新,所以我知道 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
如您所见,所有应该发生的只是一些调试,但它并没有到达那里。
【问题讨论】:
-
检查您的错误日志/权限。由于某种原因,脚本返回 403(禁止)。我们不会真正知道为什么,因为这取决于您的脚本/环境。
-
@Robert 是正确的,没有日志(也许看到相关代码),这个问题无法回答,并且接近于过于本地化。我(还)没有关闭它,因为如果改进它可能对其他人有用,尤其是如果您向我们展示相关代码。
-
错误日志不显示任何内容 - 访问日志只显示远程 ip、url 和 403。在出现 403 错误之前我没有更改任何权限,但只是为了确保我仔细检查了所有权限,它们都很好。我会发布日志以防万一......
-
访问日志:173.0.82.126 - - [06/Sep/2011:18:01:56 +0000] "POST /billing/something/hard/to/guess/HTTP/1.0" 403 2488
标签: django paypal http-status-code-403 paypal-ipn