【问题标题】:django-paypal payment complete but signal faileddjango-paypal 支付完成但信号失败
【发布时间】:2014-11-24 16:00:08
【问题描述】:

我在 django 1.7 项目中使用django-paypal。现在我正在贝宝沙盒上进行测试。

每当我付款时,paypal 的流程都是成功的。可以看到买家账户扣款,在商家账户收款。

基本上,当用户支付成功时,一些对象会被更新。但是,在我的测试支付过程中,对象没有更新,似乎根本没有调用支付信号。

另一件奇怪的事情是,当我在管理员处查看 ipn 时,我看到单笔交易有两条记录。一个已标记但没有错误消息,另一个未标记但给出错误消息“重复 txn_id xxxxx”。两条记录均显示付款状态为“已完成”。

我真的不知道出了什么问题,文档没有显示如何调试问题。

models.py 的底部 从 paypal.standard.ipn.signals 导入 payment_was_successful

def Paypal_comfirm(sender, **kwargs):
    ipn_obj = sender
    if ipn_obj.payment_status == "Completed":

        orderid = ipn_obj.invoice
        theorder = get_object_or_404(Order, pk=orderid)
        theorder.status = 'complete'
        theorder.txn_id = ipn_obj.txn_id
        theorder.date_pay = timezone.now()
        theorder.save()

payment_was_successful.connect(Paypal_comfirm)

我注意到你也可以使用payment_was_flagged 信号,但我不知道如何处理它。

有谁知道如何调试这种问题?

【问题讨论】:

    标签: django django-signals django-paypal


    【解决方案1】:

    原来是我的信号函数出了问题。如果您在 settings.py 上设置 debug = False(通常在部署在实时服务器上时会这样做),那么您将不会获得错误日志(在 heroku 上)。我所看到的只是一个糟糕的 500 错误请求,这很难说是什么问题。

    以防万一有类似问题的人,您可以将ADMINS 添加到settings.py。

    因此,只要您的网站出现错误,您就会将错误发送到您的电子邮件。 当然,您还需要在 settings.py 中添加您的电子邮件详细信息。

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 2014-04-28
      • 2012-06-03
      • 2011-09-06
      • 2019-11-19
      • 2016-02-21
      • 2018-06-11
      • 2012-06-26
      • 2014-04-26
      相关资源
      最近更新 更多