django-paypal:IPN 请求总是无效的

Posted

技术标签:

【中文标题】django-paypal:IPN 请求总是无效的【英文标题】:django-paypal: IPN requests are always INVALID 【发布时间】:2012-06-20 19:28:26 【问题描述】:

我正在使用dcramer's fork of django-paypal,但在使用我的沙盒帐户时总是遇到无效的 IPN。

我收到以下 IPN:

Invalid postback. (INVALID)

我尝试了所有出现在谷歌上的东西:

已检查卖家和买家电子邮件 沙盒帐户均已通过验证 我使用form.sandbox 来呈现paypal 表单 尝试删除自定义值 请求中没有非ASCII字符

使用https://www.sandbox.paypal.com/cgi-bin/webscr手动检查请求时,我也得到INVALID

有人遇到过这个问题吗?是否有更详细的页面来验证 ipn 请求?

【问题讨论】:

【参考方案1】:

是的,从昨天(6 月 18 日)开始,我也收到回发错误:

Opened POST Back Socket to PayPal.
PayPal Post Back returns HTTP/1.0 400 Bad Request
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 216
Expires: Mon, 18 Jun 2012 22:18:00 GMT
Date: Mon, 18 Jun 2012 22:18:00 GMT
Connection: close

<HTML><HEAD>
<TITLE>Invalid URL</TITLE>
</HEAD><BODY>
<H1>Invalid URL</H1>
The requested URL "&#47;cgi&#45;bin&#47;webscr", is invalid.<p>
....
</BODY></HTML>
: not handled.

我使用自己的 IPN 集成。它会尝试处理来自 PayPal 的所有回复,这就是为什么我收到最后一条消息(:未处理。)我昨天进行了包升级,所以我不太确定这是 PayPal 的问题。

【讨论】:

实际上,我得到了正确的INVALID 响应,它只是包含该单词的原始文本。我没有像你一样的html。但是,我会尝试制作自己的 ipn 视图,看看它是否效果更好。我看到 django-paypal 在 POST 参数中抑制了 N/A 日期,这可能是原因。 您的问题是您的 IPN 脚本中缺少“主机”标头。只需确保添加一个“主机:www.paypal.com”HTTP 标头,它就会正常通过。

以上是关于django-paypal:IPN 请求总是无效的的主要内容,如果未能解决你的问题,请参考以下文章

为啥Paypal在使用django-paypal时会重试IPN

Django-paypal 不在 DB 中创建 IPN 表 - 如何修复?

Django-Paypal IPN 403 错误

没有收到 django-paypal IPN 信号

为啥我的贝宝 ipn 验证总是返回无效?

贝宝 IPN 模拟器在直播时总是给出无效响应,