如何使用Django-merchant设置具有Authorize.net的定期计费对象?

时间:2014-08-26 04:24:14

标签: python django e-commerce authorize.net

我想知道你是否可以用某些东西来帮助我(我认为这不是那么难,它只是超出我的意义)。我正在尝试使用django-merchant设置应用程序以通过Authorize.net处理定期结算。商家的文件在这方面有点薄。

我正在使用ARB。这是对网关的呼叫:

return g1.recurring(payment_arguments.get('rate', None), cc, options = payment_options)

成功的响应会生成如下字典:

{u'ARBCreateSubscriptionResponse': {u'messages': {u'message': {u'code': u'I00001', u'text': u'Successful.'}, u'resultCode': u'Ok'}, u'subscriptionId': u'933728'}}

显然我已经开始工作了('成功'代码:' I00001')。我想记录回复。 Merchant有一个AuthorizeAIMResponse模型类,我已将其子类化在其他项目中。一段摘录:

import datetime
from django.db import models
from billing.models.authorize_models import AuthorizeAIMResponse

class PaymentRequest(models.Model):
""" 
A payment request object is created for every payment request. Successful payment requests get an invoice number 
""" 
created = models.DateTimeField(default=datetime.datetime.now, editable=False) 
response = models.OneToOneField(AuthorizeAIMResponse, blank=True, null=True) 
invoice_number = models.CharField(max_length=15)

...

Merchant’s documentation on recurring billing只说:

重复发生(money,creditcard,options = None):设置定期交易(或订阅)的方法。 子类必须实现此方法。

我应该如何构建我的PaymentRequest模型(和/或ARBCreateSubscriptionResponse模型/对象)来正确捕获和记录响应?

1 个答案:

答案 0 :(得分:1)

我找到了一种方法来完成这项工作。可能不是最优雅的解决方案。我按照converting a Python dictionary to an object上这篇文章中使用的方法。然后,我创建了一个模型来存储响应数据。