【问题标题】:django-paypal IPN signals not being received没有收到 django-paypal IPN 信号
【发布时间】:2023-03-13 17:01:01
【问题描述】:

在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>)

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

【问题讨论】:

    标签: django paypal paypal-ipn django-paypal


    【解决方案1】:

    我也遇到了同样的问题。

    显然,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 对象的一个​​警告,它不知道如何轻松地将字符串轻松转换为实际时间对象。

    但这暂时有效。

    【讨论】:

    • 请注意:这实际上是IPN模拟器的一个错误!我对 PayPal 文档缺乏连贯性和杂乱无章感到非常失望,它们确实难以阅读,而且它们的测试实用程序存在漏洞......
    • @amir-eldor 我有一个类似的error,但桌子是空的。
    猜你喜欢
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2012-03-13
    • 2012-04-09
    • 2012-09-18
    • 2012-05-19
    • 2012-08-14
    相关资源
    最近更新 更多