您可以使用以下代码示例来解决Authorize.net交易响应结果代码为“错误”,但错误代码和错误文本为空的问题:
import requests
# 设置Authorize.net的API访问凭证
api_login_id = 'YOUR_API_LOGIN_ID'
transaction_key = 'YOUR_TRANSACTION_KEY'
# 创建请求的数据
data = {
'x_login': api_login_id,
'x_tran_key': transaction_key,
'x_version': '3.1',
'x_delim_data': 'TRUE',
'x_delim_char': '|',
'x_relay_response': 'FALSE',
'x_type': 'AUTH_CAPTURE',
'x_method': 'CC',
'x_card_num': '4111111111111111',
'x_exp_date': '1125',
'x_amount': '10.00'
}
# 发送请求并获取响应
response = requests.post('https://api2.authorize.net/xml/v1/request.api', data=data)
# 解析响应数据
response_data = response.text.split('|')
response_code = response_data[0] # 响应结果代码
response_error_code = response_data[2] if len(response_data) > 2 else '' # 错误代码
response_error_text = response_data[3] if len(response_data) > 3 else '' # 错误文本
# 检查响应结果
if response_code == '1': # 1 表示成功
print('交易成功')
elif response_code == '2': # 2 表示错误
if response_error_code == '' and response_error_text == '':
print('交易错误,但错误代码和错误文本为空')
else:
print('交易错误:{} - {}'.format(response_error_code, response_error_text))
else:
print('未知的响应结果代码')
请注意,您需要将YOUR_API_LOGIN_ID
和YOUR_TRANSACTION_KEY
替换为您Authorize.net账户的实际凭证信息。此示例假设您已经正确安装了requests
库。