ActiveMerchant: как авторизовать карты при использовании шлюзов, которые не поддерживают операцию void? - PullRequest
6 голосов
/ 23 января 2009

Я работаю над биллинговым компонентом приложения Ruby on Rails с использованием ActiveMerchant. Платежный шлюз, который мы выбрали, это PaymentExpress .

Примеры кодов, которые я вижу, например, приведенный ниже, используйте authorize() и void() для проверки действительности карты:

def test_card!
  auth_response = gateway.authorize(100, card)
  gateway.void(auth_response.authorization) if auth_response.success?
  raise AuthorizationFailed.new(auth_response) unless auth_response.success?
end

Однако PaymentExpress не поддерживает действие void. Есть ли альтернативный способ выполнить это действие авторизации или можно пропустить действие void, учитывая, что шлюзы, такие как PaymentExpress, заканчивают запрос авторизации через 7 дней?

Я не могу найти упоминания о void авторизации в документации или в Google, а также не могу найти указание на то, насколько это важно.

Некоторая помощь?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2009

Оказывается, что, по крайней мере, с PaymentExpress, они автоматически выполняют авторизацию как часть процесса хранения своей карты. Если авторизация не удалась, она просто не сохранит карту, а вместо этого вернет «INVALID CARD». Это видно из их веб-приложения для поиска транзакций - при хранении карточек на карточке разрешается 1,00 долл. США, а через неделю автоматически аннулируется.

2 голосов
/ 25 января 2009

Некоторые процессоры карт помечают такую ​​транзакцию как потенциальное мошенничество. Им не нравится видеть маленькие тестовые транзакции, сопровождаемые большими транзакциями. В частности, American Express несколько агрессивен в этом отношении, поскольку он склонен отклонить транзакцию, когда вы вернетесь и попытаетесь получить реальную сумму.

Если вы планируете взимать с клиента сумму x, вам необходимо авторизовать ее на сумму x для проверки карты. Затем вы можете использовать предыдущую авторизацию и сделать захват или принудительную публикацию для завершения оплаты. Таким образом, клиент будет видеть только правильную сумму, ожидающую и рассчитанную в его выписке.

...