Указанная транзакция не соответствует критериям выдачи кредита

Я пытаюсь совершить транзакцию возврата через приложение 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 цифры, я получаю ответ, что транзакция не может быть найдена


person szaman    schedule 19.05.2011    source источник
comment
Я добавил x_test_reques = TRUE в запрос, после чего операция была одобрена. Но хороший ли это способ? Я думал, что когда я делаю запрос на тестовый сервер, транзакция должна быть одобрена без каких-либо дополнительных флагов. А номер этой карты?   -  person szaman    schedule 19.05.2011


Ответы (5)


Возврат возможен только через Authorize.Net, если исходной транзакции меньше 6 месяцев, а сумма равна или меньше первоначальной суммы покупки. Если он не соответствует этим критериям, вы не можете оформить этот возврат.

изменить

К вашему сведению, установка x_test_request = TRUE означает, что транзакция была только тестовой и фактически не обрабатывалась.

person John Conde    schedule 19.05.2011
comment
Я сделал свои сделки вчера. Статус успешно урегулирован. Я также совершаю транзакции возврата на сумму, намного меньшую, чем первоначальная транзакция. - person szaman; 19.05.2011
comment
Подтвердили ли вы, что отправляете правильный идентификатор transaction_id исходной покупки? - person John Conde; 19.05.2011
comment
Я беру идентификатор транзакции из панели authorize.net, поэтому уверен, что он правильный - person szaman; 20.05.2011

У меня такая же проблема с тестовым аккаунтом. Я не могу вернуть транзакцию, созданную несколько минут назад. Вы должны войти в свою учетную запись песочницы и перейти в настройки учетной записи -> тестовый режим -> набор обработки транзакций «Тест», в моем случае это был «Живой». Чем транзакция вернула успех.

person Yury Gerasin    schedule 15.09.2016

Проблема была с ключами безопасности, которые я использую для связи с authorize.net. Я мог совершать транзакции, но не возвращал их. Когда я сгенерировал новые ключи, проблема исчезла.

person szaman    schedule 10.06.2011
comment
Проклятие. Это украло два часа моей жизни, пока я не нашел ваш пост. Спасибо. Ребята из ANet настолько помешаны на безопасности, что делают вашу жизнь невозможной. Документация ужасно плохая для платного сервиса. Насколько сложно указать, что вам нужно восстановить ключ транзакции в описании кода ошибки в документации? - person Mauro; 21.09.2012
comment
Я рад, что смог помочь. Я надеюсь, что они завершат свои документы :) - person szaman; 22.09.2012

Это также может быть, если транзакция очень новая и еще не была урегулирована. В этом случае вместо этого вы захотите аннулировать транзакцию.

person leech    schedule 31.10.2012

от:

https://support.authorize.net/authkb/index?page=content&id=A567

я обнаружил, что:

  • Возврат не может быть обработан по транзакциям старше 120 дней.

поэтому я думаю, что 6 месяцев были изменены и в настоящее время неверны. я попытался оформить REFUND для транзакции 122-дневной давности, и я получил сообщение об ошибке, указанное выше.

person pRose_la    schedule 25.06.2015