Студия Михаила Кечинова

ruen
Навигация
Главная Как Moneris не проверял фрод при использовании на Spree

Как Moneris не проверял фрод при использовании на Spree

Как правило, люди ищут решение этой проблемы по словам “spree moneris cvv_enabled” (мы по крайней мере так искали) и не находят.

Суть проблемы: мы сделали магазин на Spree. Подключили его к платежному шлюзу Moneris (клиент в Канаде). Через 3 недели клиент попал на несколько тысяч долларов: через его сайт делали заказы по краденным картам (без billing address и CVV). При этом Spree в оценке рисков заказа говорит, что все ОК, заказы чистые.

Стали выяснять, поняли что Moneris в дефолтном режиме не интересуют CVV и AVS. То есть к нему приходят карты, в которых из правильно введенных данных только номер, и он их принимает. Настройка :cvv_enabled опциональна и выключена. В админке Spree этой настройки в принципе нет.

Вопрос: как без переделки Spree и MonerisGateway заставить Moneris проверять карты на правильные данные?

Ответ: включить настройку :cvv_enabled.

Все понятно. Осталось включить. В админке возможности нет, в конфиге Spree возможности нет. 

Сделать это можно, сделав свой декоратор над Gateway, который будет заменять хеш настроек:

models/spree/gateway_decorator.rb

Spree::Gateway.class_eval do
  alias options_old options
  def options
    options_old.merge(cvv_enabled: true)
  end
end

Перезапускаем сайт и провяерем неправильный CVV.