我将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
信号,但我不知道如何处理它。
有谁知道如何调试这种问题?