9 мая 2014 г.

Как 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.

Комментариев нет :

Отправить комментарий