我正在使用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
信号,但我不知道如何处理它。
有谁知道如何调试这类问题?
答案 0 :(得分:0)
原来,我的信号功能出现了问题。如果您在settings.py上设置debug = False(通常在部署在实时服务器上时会这样做),那么您将无法获得错误日志(在heroku上)。我只能看到一个错误的500错误请求,这很难说是什么问题。
如果想要遇到类似问题,可以将ADMINS添加到settings.py。
因此,只要您的网站出现错误,您就会收到发送到您电子邮箱的错误消息。 当然,您还需要在settings.py中添加您的电子邮件详细信息。