未收到 django-paypal IPN 信号

标签 django paypal paypal-ipn django-paypal

在 models.py 的底部我有:

from paypal.standard.ipn.signals import payment_was_successful, payment_was_flagged
import pay

payment_was_successful.connect(pay.paypal_success)
payment_was_flagged.connect(pay.paypal_flagged)

我正在使用 Paypal Developer IPN 模拟器,它返回“IPN 发送成功”,但是 pay.paypal_successpay.paypal_flagged 中的代码没有被发送执行。

正在填充 paypal_ipn 表,但是我注意到在 flag_info 下每一行都有:

Invalid form. (<ul class="errorlist"><li>payment_date<ul class="errorlist">
<li>Enter a valid date/time.</li></ul></li></ul>)

我不知道这是否与信号不工作有关。

最佳答案

我遇到了同样的问题。

显然 IPN 模拟器发送的日期格式与 django-paypal 包接受的格式不同。

前往 paypal.standard.forms.py 并添加 PayPal 发送的“新格式日期”。

PAYPAL_DATE_FORMAT = ("%H:%M:%S %b. %d, %Y PST",
                      "%H:%M:%S %b. %d, %Y PDT",
                      "%H:%M:%S %d %b %Y PST",    # note this
                      "%H:%M:%S %d %b %Y PDT",    # and that
                      "%H:%M:%S %b %d, %Y PST",
                      "%H:%M:%S %b %d, %Y PDT",)

我不喜欢这个解决方案,因为如果 PayPal 将来更改日期字符串格式怎么办?

这实际上是 Python 的 datetime 对象的警告,它不知道如何轻松地将字符串转换为实际时间对象。

但现在还行。

关于未收到 django-paypal IPN 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798206/

相关文章:

python - Django - 为什么这两次访问数据库

python - Django self.cleaned_data Keyerror

python - 运行 python 管理 py migrate 时出错

php - Paypal IPN : Update the value of a column after payment?

csv - PayPal 自动完成付款的每月或每周报告

paypal - IPN 监听器不工作 MVC3

python - 跟踪变化 - Django

Paypal Express Checkout - 增值税既不显示在表格上也不显示在后端

php - Paypal 交易与卢比不是美元

java - Paypal Android SDK 错误 "request failed with server response:shutdown" "SERVER_COMMUNICATION_ERROR"