授权.net从事务处理创建客户配置文件

2024-09-28 01:23:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在向一个客户收费,然后根据该收费创建一个客户档案。问题是,当我尝试创建客户时,它失败了,告诉我没有响应,而是打印出

AttributeError: no such child: {AnetApi/xml/v1/schema/AnetApiSchema.xsd}customerProfileId

这是代码,下面是一个更详细的解释,以及我正在做什么来解析响应。在

merchantAuth = apicontractsv1.merchantAuthenticationType()
merchantAuth.name = app_config.AUTHORIZE_KEYS['apiLoginId']
merchantAuth.transactionKey = app_config.AUTHORIZE_KEYS['transactionKey']
# Create the payment object for a payment nonce
opaqueData = apicontractsv1.opaqueDataType()
opaqueData.dataDescriptor = request.form['dataDesc']
opaqueData.dataValue = request.form['dataValue']

# Add the payment data to a paymentType object
paymentOne = apicontractsv1.paymentType()
paymentOne.opaqueData = opaqueData

# Create order information
order = apicontractsv1.orderType()
order.invoiceNumber = "invoice_%s" % user.id
order.description = "Awesome"
# Set the customer's identifying information
customerData = apicontractsv1.customerDataType()
customerData.type = "individual"
customerData.id = "cus_%s" % user.id
customerData.email = email
# Giving the credit card info
# Setting billing information
billto = apicontractsv1.nameAndAddressType()
billto.firstName = request.form['firstName']
billto.lastName = request.form['lastName']
billto.address = address1
billto.city = city
billto.state = state
billto.zip = zipcode
billto.country = country
item = request.form['item']
if item == 'dollar':
    amount = "3.00"
if item == "monthly":
    amount = "5.00"
    length = 1
if item == "annual":
    amount = "50.00"
    length = 12
# Create order information
order = apicontractsv1.orderType()
order.invoiceNumber = "invoice_%s" % user.id
order.description = "Awesomeness"

# # Set the customer's Bill To address
customerAddress = apicontractsv1.customerAddressType()
customerAddress.firstName = request.form['firstName']
customerAddress.lastName = request.form['lastName']
customerAddress.address = address1
customerAddress.city = city
customerAddress.state = state
customerAddress.zip = zipcode
customerAddress.country = country

# Create customer profile on transaction
createcustomerprofile = apicontractsv1.customerProfilePaymentType()
createcustomerprofile.createProfile = True

# Create a transactionRequestType object and add the previous objects to it.
transactionrequest = apicontractsv1.transactionRequestType()
transactionrequest.transactionType = "authCaptureTransaction"
transactionrequest.amount = amount
transactionrequest.payment = paymentOne
transactionrequest.order = order
transactionrequest.billTo = customerAddress
transactionrequest.customer = customerData
transactionrequest.profile = createcustomerprofile

# Assemble the complete transaction request
createtransactionrequest = apicontractsv1.createTransactionRequest()
createtransactionrequest.merchantAuthentication = merchantAuth
createtransactionrequest.refId = refId
createtransactionrequest.transactionRequest = transactionrequest

# Create the controller
createtransactioncontroller = createTransactionController(createtransactionrequest)
createtransactioncontroller.setenvironment(app_config.AUTH_NET_ENVIRONMENT)
createtransactioncontroller.execute()

当我试图做出回应时,问题似乎就出现了。但是当我实际运行开发人员文档中建议的代码时

^{pr2}$

考虑到他们的documentation显示,您可以在使事务不确定为什么它返回失败时创建客户。在

另外,当我检查schema for the XML response时,似乎我的设置是正确的。在


Tags: theformrequestcreateorderitemamountcustomerdata

热门问题