Проверка возврата на Authorize.net с использованием тестовой учетной записи? - PullRequest
3 голосов
/ 11 августа 2009

Я занимаюсь разработкой веб-сайта, который использует Authorize.net, но в настоящее время я использую тестовый аккаунт. Для проверки возврата требуется уникальный идентификатор транзакции, но поскольку я использую только тестовую учетную запись, он не возвращает уникальный идентификатор транзакции при выполнении тестовой транзакции (всегда 2147483647). Есть ли другой способ для этого работать? Мне нужно посмотреть, будет ли мой код работать с API.

Ответы [ 3 ]

1 голос
/ 10 марта 2011

Какой бы код вы ни использовали для анализа «идентификатора транзакции», который Authorize.net возвращает вам после успешной транзакции, он конвертирует идентификатор транзакции в целое число. Его следует рассматривать как строку, а не как целое число. В 2008 году Authorize объявил, что они переключаются с целочисленного на строковый идентификатор транзакции, поскольку у них заканчиваются 32-разрядные целые числа.

2147483647 - это самое большое целое число из 10, которое вы можете сделать с 32 двоичными разрядами (1111 1111 1111 1111 1111 1111 1111 1111). Это означает, что Authorize возвращает идентификатор транзакции> 2147483647 (например, 3000000000), а ваш язык программирования усекает биты до максимально допустимого значения, 2147483647.

Проверьте ваш PHP-код и убедитесь, что идентификатор транзакции приводится к значению в виде строки. Чтобы быть уверенным, вы, возможно, захотите просмотреть свой код и привести его в действие. Например:

(string)$transaction_id

Также убедитесь, что ваш код не выполняет функции, которые автоматически приводят строки как целые числа. Например:

$transaction_id + 1

Наконец, если идентификатор транзакции читается из базы данных, убедитесь, что база данных хранит идентификатор транзакции в виде строкового типа данных. Например, для mysql используйте CHAR или VARCHAR и сделайте его больше 10. Попробуйте 16 или 24, чтобы быть в безопасности.

Ссылки:

1 голос
/ 18 апреля 2012

Если вы отправляете свои запросы на https://test.authorize.net/gateway/transact.dll, вы всегда будете получать 0 в качестве идентификатора транзакции.

Итак, вкратце, вам понадобится реальная учетная запись для проверки ваших возвратов. Вы можете установить x_test_request = TRUE и отправить значение https://secure.authorize.net/gateway/transact.dll и проверить, вернули ли вы верный идентификатор транзакции. Но опять же, вам понадобится действительная учетная запись Live с Authorize.Net, чтобы иметь возможность размещать транзакции на Live URL

0 голосов
/ 03 декабря 2010

Чтобы получить идентификатор транзакции, при отправке запроса транзакции в тестовом режиме вам необходимо задать в списке параметров запроса:

x_test_request=FALSE

тогда вы получите правильный идентификатор

...