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 "/cgi-bin/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