我尝试通过我的
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个月且金额等于或小于原始购买金额,则只能通过Authorize.Net进行退款.如果不符合此标准,则无法退款.
编辑
仅供参考,设置x_test_request = TRUE表示事务只是一个测试而没有实际处理.