Как проверить транзакцию по кредитной карте на стороне покупателя в PayPal Website Payments Pro?

Мы запускаем веб-сайт электронной коммерции на Ruby on Rails, и для обработки кредитных карт мы используем подключаемый модуль ActiveMerchant для взаимодействия с нашей учетной записью PayPal Website Payments Pro с использованием наших учетных данных API.

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

В последнее время мы столкнулись с ошибкой, из-за которой сумма резервируется дважды на счете клиента: одно списание — только авторизация, а второе — окончательная покупка. Таким образом, клиенту кажется, что мы выставляем ему счет дважды (один раз за авторизацию, один раз за окончательную покупку), в то время как на самом деле мы получаем деньги только один раз, а «второе списание» на его счет — это просто авторизация, которую мы не очищаем. по какой-то причине. (Похоже, это происходит, в частности, когда PayPal FMF отклоняет нашу транзакцию, и мы повторяем обработку.)

Я пытаюсь устранить эту проблему, создав учетные записи песочницы PayPal для покупателя и продавца. Я запускаю код построчно через консоль Rails и имитирую различные условия, чтобы попытаться воспроизвести ошибку. Однако мои успешные транзакции по кредитной карте отображаются только в моей учетной записи «продавец» / «торговец», а не в учетной записи «покупатель» в песочнице PayPal, поэтому я не могу видеть, как моя последовательность кода влияет на карту клиента. Этот пост, по-видимому, указывает на то, что это именно то, как обстоят дела, и что действительно невозможно проверить эффект на стороне кредитной карты покупателя. В этом сообщении предлагается использовать PayPal Express Checkout, но это не то, что нам нужно на нашем сайте, так как мы специально рассматриваем здесь транзакции по кредитным картам, которые интегрированы в наш сайт.

Как я могу проверить действие моего кода на кредитной карте клиента? Возможно, я что-то пропустил в PayPal или, может быть, в ActiveMerchant есть какой-то режим/журнал/монитор, который я могу использовать, чтобы увидеть это? Мне нужно найти строку кода, из-за которой мы дважды авторизуемся.


person Stanley    schedule 12.04.2013    source источник


Ответы (1)


Если первоначальная транзакция отклоняется FMF, а затем вы пытаетесь повторить другую транзакцию, это приведет к повторному удержанию карты покупателя, поскольку это будет совершенно другая попытка транзакции. Банк мог утвердить первую транзакцию, но затем фильтры FMF отклонили ее на основе ваших настроек. Что касается банка, это все еще действующий сбор, который был одобрен. Поэтому, когда вы запустите вторую попытку, это вызовет вторую блокировку карты на ту же сумму, но для другой транзакции.

person PP_MTS_Chad    schedule 12.04.2013
comment
Спасибо, это объясняет, ПОЧЕМУ возникает проблема, но как я могу ее решить? Моей первой реакцией было бы вызвать void в случае ошибки FMF, но, поскольку возвращенная авторизация равна нулю, у меня нет действительной транзакции для вызова void. Как предотвратить эту двойную авторизацию в случае FMF? - person Stanley; 15.04.2013
comment
Это невозможно предотвратить, так как отказ не происходит до тех пор, пока банк не одобрит его. Недействительность только препятствует урегулированию или захвату транзакции, но не освобождает от удержания. Покупатель по-прежнему увидит удержание средств в течение определенного периода времени. Лучший вариант, который работал для продавцов в прошлом, — это сначала пройти аутентификацию с нулевым долларом. Затем разворачиваемся и запускаем полную авторизацию и захват. Однако не все процессоры поддерживают это. Таким образом, вам, возможно, придется выполнить аутентификацию 1.00, в зависимости от процессора и службы PayPal, которую вы используете. - person PP_MTS_Chad; 15.04.2013
comment
Спасибо, я попробую. Однако это возвращает меня к моему первоначальному вопросу: как мне проверить эффект на стороне клиента? Когда мы проводим транзакции в песочнице, транзакция отражается только в отношении продавца, и на стороне кредитной карты клиента не возникает никакой разницы. Как можно проверить влияние вызовов/транзакций сообщений на кредитную карту на стороне клиента? - person Stanley; 16.04.2013
comment
Единственный способ протестировать клиентскую сторону в качестве покупателя и посмотреть, что показывает банковская сторона, — это запустить настоящий живой тест. Использование действующей карты. Имейте в виду, что это будут реальные платежи, с которыми связаны реальные суммы и сборы. Вы можете попробовать обработать платеж на небольшую сумму. - person PP_MTS_Chad; 16.04.2013