Как обрабатывать повторяющиеся транзакции с Authorize.Net - PullRequest
0 голосов
/ 25 июля 2011

Я пытаюсь обрабатывать повторяющиеся платежи через Authorize.Net со следующими требованиями:

  • Обработка платежей будет инициирована нами

  • Клиент вводит данные карты только при первой транзакции.Мы будем выставлять счета на карту ежемесячно, с потенциально разными суммами, но при этом данные карты не будут присутствовать.

  • Требуется CVV при первой транзакции.В случае успеха, когда мы ежемесячно выставляем счет на карту, CVV не потребуется для транзакций позже.

  • Мы не хотим хранить конфиденциальную информацию, такую ​​как данные кредитной карты.Позже у пользователя будет возможность указать другую карту или обновить свой профиль (это можно сделать с помощью SOAP, XML или любого общедоступного метода)

  • Это будет включать в себя транзакции проверки

По сути, мы пытаемся создать такой же опыт, как Amazon, где вы вводите данные карты один раз.Когда вы покупаете в будущем, вы выбираете только свой профиль / (карта и адрес доставки), который хотите использовать, и платеж проходит без повторного ввода карты или CVV.Единственная разница в том, что мы инициируем платежи в будущем, поскольку наши услуги основаны на подписке.

Моя первоначальная мысль заключалась в использовании CIM.Однако из-за 3-го требования CIM может не работать для этого, поскольку он не хранит CVV.Какой лучший путь для достижения желаемого результата?

Ответы [ 3 ]

1 голос
/ 25 июля 2011

Вам не нужно использовать AIM для первого платежа.Просто используйте CIM и отправьте код CVV вместе с профилем оплаты.Authorize.NET не будет хранить код CVV, но проверит его один раз и запомнит, что карта проверена на предмет списания с платежного профиля.Мы использовали этот метод более года, и у нас не было проблем.

0 голосов
/ 21 марта 2013

Authorize.net позволяет настроить параметры проверки кода карты через веб-интерфейс следующим образом:

Select the conditions for which the Payment Gateway should reject a transaction when
the Card Code submitted does not match the value on file with the customer's credit
card company.

Reject Transaction If Card Code value...
    _ Does NOT Match (N)
    _ Is NOT Processed (P)
    _ Should be on card, but is not indicated (S)
    _ Issuer is not certified or has not provided encryption key (U)

Проверка кода карты (например, проверка адреса) фактически происходит только в том случае, если передан код карты.Включение фильтров проверки кода карты не повлияет на транзакции, отправленные без кода карты.

Существует также отдельная страница под названием «Форма оплаты - Поля», где вы можете указать, какие поля можно просматривать, редактировать и * 1006.* обязательно в форме оплаты.Если вы отметите, что в этой форме требуется CVV2, для него также потребуется указывать CVV2 при каждом использовании AIM / CIM.Обратите внимание: кажется более разумным просто реализовать это требование в своем коде, если вы этого хотите, вместо того, чтобы ставить флажок на Authorize.net и затем пытаться отлаживать ошибки.

Если вы держите CVV2 на«Форма оплаты - поля», как , а не , требуется, если у вас есть сохраненный Профиль оплаты, вы можете отправить новый Запрос на транзакцию по сохраненному идентификатору платежа без CVV2, и он не будет отклонен.

Теперь некоторые сайты, которые, я уверен, вы видели, покажут пользователю сохраненную карту (конечно же, замаскированную) и попросят снова ввести CVV2 - только CVV2, без повторного ввода номера карты.

Если вы действительно хотите выполнить повторную проверку только CVV2 в существующем Платежном профиле в Authorize.NET CIM, вы не можете использовать updateCustomerPaymentProfileRequest, поскольку для этого нужен номер карты.

Что вы делаете, внутри TransactionRequest есть объект profileTransAuthCaptureType, который принимает ProfileID и PaymentID.У этого также есть поле для cardCode, где вы можете поместить CVV2!Это позволяет вам повторно проверить CVV2, не запрашивая заново весь номер карты / дату истечения срока действия.В этом случае, даже если установлен флажок «НЕ обрабатывается», а CVV2 помечен как обязательный для заполнения в «Форме платежа - Поля», вы не получите отклонение.

Существует метод безумия, но он уверенэто сложно, так как вы управляете всеми настройками, и они должны быть синхронизированы в нескольких местах, чтобы он работал так, как вы хотите.

0 голосов
/ 25 июля 2011

Для этого вам нужно будет использовать комбинацию расширенного метода интеграции (AIM) и API менеджера информации о клиентах (CIM). Вы будете использовать AIM для обработки первого платежа, который позволит вам проверить, является ли предоставленный номер CVV действительным. Если это так, вы можете настроить профиль оплаты на CIM для них.

...