引用的交易不符合发放信用的标准

6 投票
6 回答
8105 浏览
提问于 2025-04-16 17:56

我在用我的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沟通的安全密钥上。我可以进行交易,但无法退款。当我生成了新的密钥后,这个问题就解决了。

撰写回答