sza*_*man 6 django authorize.net
我尝试通过我的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
Run Code Online (Sandbox Code Playgroud)
我确信我要退款的交易是允许的,因为我在authorize.net网站上有退款选项.为什么我不能在我的应用程序中这样做?也许缺少什么?
AIM_URL = 'https://test.authorize.net/gateway/transact.dll'
Run Code Online (Sandbox Code Playgroud)
此外,在文档中,我读到我不需要完整的卡号进行信用交易,只需要最后4位数.但是,当我只使用最后4位数时,我得到了无法找到交易的响应
如果原始交易不到 6 个月且金额等于或小于原始购买金额,则只能通过 Authorize.Net 进行退款。如果它不符合此标准,您将无法发放退款。
编辑
仅供参考,设置x_test_request = TRUE意味着交易只是一个测试,并未实际处理。
问题出在我用来与authorize.net 通信的安全密钥上,我能够进行交易,但无法退款。当我生成新密钥时,问题就消失了。