1

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

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

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

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

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

在模型.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信号,但我不知道如何处理它。

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

4

1 回答 1

0

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

以防万一有类似问题的人,您可以将管理员添加settings.py 中。

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

于 2014-10-02T04:34:59.587 回答