引用的交易不符合发放信用的标准
我在用我的django应用程序尝试进行退款交易,代码如下:
class Handler():
def __init__(self):
self.initial_values = {
'x_login': settings.API_LOGIN,
'x_tran_key': settings.TRANS_KEY,
'x_delim_data': 'TRUE',
'x_relay_response': 'FALSE',
'x_version': '3.1',
}
def send_AIM_credit(self, amount):
self.amount = amount
self.additional_values = {
'x_type': 'CREDIT',
'x_card_num': '370000000000002',
'x_amount': '123',
'x_description': "Refund",
'x_trans_id': 'someid'
}
result = self.__send_AIM_request()
if result[0] in ['3', '2']:
raise Exception("ERROR %s" % result[2], result[3])
return result
def __send_AIM_request(self):
self.initial_values.update(self.additional_values)
logging.info(self.initial_values)
params_string = urllib.urlencode(self.initial_values)
response = urllib2.urlopen(settings.AIM_URL, params_string).read()
response_list = response.split(',')
logging.info(response_list)
return response_list
我确认我想退款的交易是可以退款的,因为在authorize.net网站上我有退款的选项。可是为什么我在我的应用里做不到呢?是不是缺少了什么?
AIM_URL = 'https://test.authorize.net/gateway/transact.dll'
而且在文档中我看到说进行信用卡交易时不需要完整的卡号,只需要最后4位数字。但当我只用最后4位数字时,系统却回复说找不到这个交易。
6 个回答
4
我在测试账户上也遇到了同样的问题。我无法退款几分钟前创建的交易。你需要登录到你的沙盒账户,然后去账户设置 -> 测试模式 -> 交易处理,把设置改成'测试',我那时候是'实时'的。这样交易就能成功退款了。
5
退款只能通过Authorize.Net进行,前提是原始交易必须在6个月以内,并且退款金额要等于或少于最初购买的金额。如果不符合这些条件,就无法进行退款。
补充说明
顺便说一下,设置 x_test_request = TRUE
意味着这笔交易只是测试,并没有真正处理。
2
问题出在我用来和authorize.net沟通的安全密钥上。我可以进行交易,但无法退款。当我生成了新的密钥后,这个问题就解决了。