django-paypal付款完成但信号失败

时间:2014-09-30 06:02:00

标签: django django-signals django-paypal

我正在使用django-paypal进行django 1.7项目。现在我在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信号,但我不知道如何处理它。

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

1 个答案:

答案 0 :(得分:0)

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

如果想要遇到类似问题,可以将ADMINS添加到settings.py。

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