Як приймати платежі по кредитних картах

Як приймати платежі по кредитних картах

Уподобання користувачів змінюються в залежності від країни і пристрої, з якого вони заходять на сайт. Дуже близькі до ідеалу виявилися банківські карти, популярність яких росте з року в рік, в тому числі і в Росії. Це не тільки один з найпоширеніших способів оплати, а й найприбутковіший з усіх доступних на сайті Badoo, а їх більше 20.

Все почалося з того, що чотири роки тому ми розмістили у себе на сайті форму для введення деталей кредитних карт і почали приймати платежі. Через кілька місяців стало зрозуміло, що користувачі з задоволенням платять за наші послуги не тільки через SMS, але і картами, обсяг платежів за якими показував багатообіцяючий зростання. Ми стали активно розвивати цей напрямок. З тих пір ми розглянули десяток платіжних шлюзів, що пропонують послуги еквайрингу (т. Е. Прийому платежів за банківськими картками), і зараз одночасно працюємо з трьома з них. Ми зробили підтримку платежів з 3D Secure, налаштували систему, відловлювати шахрайські транзакції, і багато іншого.

Чому приймати оплату пластиковими картами складно?


Як приймати платежі по кредитних картах


Здавалося б, що тут складного? Одна проста форма, в яку користувач вводить дані своєї карти і натискає кнопку оплатити. Ми обробляємо запит, надсилаємо його в банк - і все, скоро гроші будуть у нас на рахунку. В ідеальному світі так і відбувається, але в реальному - трохи інакше.

Якщо ви хочете приймати платежі за банківськими картками, то в першу чергу повинні забезпечити безпеку даних користувачів. Для цього великі платіжні системи, такі як Visa, Master Card, American Express, Diners і ін. Розробили стандарт безпеки індустрії платіжних карт - PCI DSS (Payment Card Industry Data Security Standard). Це великий список вимог, яким повинна відповідати компанія, а також процес розробки програми та конфігурація використовуваного обладнання.

Друга проблема - це захист від шахрайських операцій, інакше кажучи, «фрода» (від англ. Fraud). Адже сайтом можуть користуватися не тільки добропорядні користувачі, але і шахраї, які використовують при покупках крадені дані кредитних карт. Після такої покупки власник карти отримає виписку з незрозумілими йому транзакціями, піде в банк і зажадає повернення коштів. Через якийсь час йому повернуть гроші, а компанія отримує «мінус в карму» і штраф від платіжної системи.

І останнє в списку, але не за важливістю - це частка успішно проведених транзакцій. Навіть якщо на карті достатньо грошей і всі системи, що беруть участь в проведенні платежу, працюють як годинник, що випустив карту банк може просто відхилити транзакцію, якщо йому щось не сподобається або здасться підозрілим.

Навіщо проходити сертифікацію PCI DSS?

Основна мета сертифікації - упевнитися, що дані карт зберігаються безпечно, що зловмисник не зможе проникнути в вашу систему, а проникнувши, не зможе легко отримати приватну інформацію. Проходити її зобов'язані всі компанії, які обробляють дані кредитних карт, навіть якщо в процесі обробки ці дані не зберігаються.

На початку проходження сертифікації сприймалося нами як формальність, тому що ми не зберігали у себе деталей кредитних карт. Наше додаток займалося тільки тим, що малювала красиву форму, яка підходить під дизайн сайту. Але поступово воно розвивалося, обростала бізнес-логікою і «антіфродовимі» перевірками. Ми почали зберігати персональні дані користувачів і дозволену інформацію про їх кредитних картах. У підсумку ми самі стали зацікавлені в тому, щоб наша система була максимально безпечною. Тепер PCI DSS сприймається не як формальність, а як можливість, нехай і дещо бюрократична, перевірити себе на міцність.

Підтверджувати відповідність стандарту необхідно щорічно. Вимоги залежать від рівня, присвоєного компанії. Їх існує всього чотири, і видаються вони в залежності від кількості транзакцій, що обробляються за рік. Нещодавно Badoo було присвоєно перший рівень, який є найвищим і найбезпечнішим. У нього найжорсткіші вимоги по сертифікації, для їх підтвердження потрібно проходити зовнішній аудит. Для більш низьких рівнів досить заповнення листа самооцінки або виконання внутрішнього аудиту. Повний список вимог можна подивитися в самому стандарті. Ми ж розповімо про те, що може спростити процес проходження сертифікації для будь-якого з рівнів.

Як приймати платежі по кредитних картах


Для початку треба запам'ятати, що номер карти (PAN) і код безпеки знаходиться на задній частині карти (CVC) заборонено будь-де зберігати. У цьому немає нічого страшного, так як для нормальної роботи програми цього і не потрібно. При отриманні запиту від користувача дані відразу пересилаються агрегатору і можуть зберігається тільки в оперативній пам'яті, що дозволено стандартом. Зберігати в постійному сховищі можна тільки перші шість і останні чотири цифри номера карти, ім'я власника картки і дату закінчення терміну її дії. На високих рівнях стандарт все-таки дозволяє зберігати номер карти, але він повинен бути зашифрований стійким алгоритмом або незворотної хеш-функцією.

Наступна важлива річ - це зменшення області, яка підлягає сертифікації. Якщо обробка платежів не є прямим бізнесом компанії, то немає особливого сенсу поширювати жорсткі правила безпеки PCI DSS на всю інфраструктуру. Досить виділити з додатком, обробляє карти, окремі сервера і репозиторій з кодом, доступ до яких буде мати обмежене коло людей. Крім формального зменшення обсягу робіт це дасть і додаткову безпеку всієї системи в цілому. Її компоненти будуть слабо пов'язані, тому, зламавши основне додаток, зловмисник не зможе отримати доступ до даних кредиток.
Єдиний варіант уникнути сертифікації - не обробляти дані пластикових карт самому. Наприклад, найпростіший і найпоширеніший спосіб - відправити користувача на сторінку платіжного шлюзу. Після оплати він повернеться на сайт, а вам прийде повідомлення про статус платежу. Для тих, хто все-таки хоче мати свою власну платіжну форму, яка органічно вписувалася б в дизайн сайту, є варіант складніше. Дані карти можна зашифрувати в браузері, використовуючи публічний ключ, і відправити форму безпосередньо платіжного шлюзу, який розшифрує їх приватним ключем і обробить платіж.

Чим небезпечний фрод і як його зменшити?

Фрод - це вид шахрайства з даними карти, спрямований на незаконне використання грошей з її рахунку. Небезпека тут криється не тільки для користувача, але і для вас як продавця. Користувач може зажадати у банку повернути свої кошти, і ви не тільки не отримаєте грошей за свій товар чи послугу, але ще і заплатите штраф за кожен такий запит, навіть якщо потім він буде успішно оскаржений. Крім цього, Visa, Master Card і інші платіжні системи можуть накладати додаткові штрафи за високий рівень повернень. Якщо штраф за звичайний повернення, як правило, не перевищує 10 доларів США, то штраф за великий обсяг легко може скласти сотні тисяч доларів США.

Тут важливо розуміти, що існує два види повернень: «рефандов» (від англ. Refund) і «чарджбек» (від англ. Chargeback). Різниця в тому, що рефандов ви робите самі при зверненні користувача, а чарджбек вас змушує зробити платіжна система. Тому штрафи і всілякі санкції накладають тільки при чарджбек.

Способів боротьби з фродом багато. Найпростіший і ефективний - 3D Secure. По суті, це просто додатковий крок при оплаті, на якому користувач повинен підтвердити, що платіж виконується власником карти (див. Нижче).

Як приймати платежі по кредитних картах


Крім збільшення безпеки, проведення транзакції з 3D Secure перекладає відповідальність за фрод по ній на плечі банку, що випустив карту. Це відбувається тому, що крок підтвердження знаходиться повністю під його контролем, і транзакція не повинна пройти, якщо у банку виникли будь-які підозри. Але, незважаючи на всі плюси, у цього способу перевірки є один фатальний недолік. Як і будь-який додатковий крок, він дуже погано впливає на частку успішних платежів. Щоб упевнитися в цьому, ми провели серію експериментів в різних країнах, результати яких представлені на графіку нижче.

Як приймати платежі по кредитних картах


Три стрілки на графіку показують момент, коли ми вимкнули примусове використання 3D Secure в країні. Наприклад, в Росії спочатку був включений 3D Secure. Після його відключення частка успішних платежів зросла на 20%. В Італії, навпаки, ми його включили і побачили падіння частки успішних транзакцій на 10-15%. І тільки в Британії поведінку користувачів не змінилося.

Ми також проводили подібні експерименти і в США, де після включення 3D Secure користувачі практично перестали платити, і в країнах Південної Африки, які традиційно вважаються оплотом фрода, але де відключення 3D Secure дало позитивний ефект.

Подивившись на отримані результати, ми вирішили відмовитися від примусового включення 3D Secure для всіх транзакцій. Але для збереження чарджбек на низькому рівні потрібно було розробити систему, яка зможе визначати шахрайські транзакції і блокувати їх. Для початку ми вирішили скласти портрети користувачів, які найчастіше є джерелами фрода у нас на сайті.

Якщо шахраєві вдалося пройти через всю нашу захист і ми отримали інформацію про чарджбек, то його можна спробувати оскаржити. В цьому випадку ми все одно платимо штраф, але якщо виграємо суперечку, то хоча б не втратимо суму самого платежу.

Особливо просунуті агрегатори можуть надати «інсайдерську» інформацію про отримані банком чарджбек, які ще не встигли дійти до платіжної системи. Такі повідомлення ми використовуємо для проактивного захисту від фрода. Вони реєструються в нашій системі, і ми намагаємося зробити рефандов за цими транзакціями. В цьому випадку ми все одно повертаємо гроші користувачеві, але, так як робимо це добровільно, то ніяких додаткових санкцій і штрафів на нас не накладається. Сумарний ефект від подібних заходів не дуже великий - можна заощадити всього кілька відсотків доходу. Але для Badoo це сотні тисяч доларів на рік, що окупає всі витрати.

Чому не всі платежі проходять успішно?

По дорозі від покупця до банку, що випустив карту, запит на зняття грошей проходить через безліч систем. Крім продавця, в процесі беруть участь:
  • платіжний шлюз або агреатор, який може надавати й інші способи оплати;
  • банк-еквайєр - банк, який підключений до різних платіжних систем і надає послуги з обробки платежів тільки з пластикових карт;
  • платіжні системи (Visa, Master Card і ін.);
  • банк-емітент - банк випустив карту, якою користувач намагається оплатити послугу.
  • Кожен етап транцзакціі містить свої моменти, які можуть вплинути на її успішність.

Як приймати платежі по кредитних картах

На цьому етапі код знаходиться під нашим контролем, і якщо виникають якісь проблеми, то ми можемо їх виправити. Тут самий неприємний вид помилок - це логічні помилки валідації введених даних. Якщо при перевірці імені власника карти очевидно, що воно може бути довге або дуже короткий, з цифрами, дефісом і чим завгодно, що здалося батькам доречним, то при перевірці номера карти потрібно бути уважним і знати, яким він може і повинен бути. Наприклад, його довжина може бути від 13 до 19 (в залежності від типу карти), а не тільки 16 цифр, як думають багато хто. Також бажано перевіряти не тільки довжину, але і весь номер, використовуючи Luhn алгоритм. При перевірці дати закінчення терміну дії карти треба пам'ятати, що вона діє до останнього дня зазначеного місяця, а не до його початку.

Сайт - Платіжний шлюз - Банк-еквайєр - МПС - Банк-емітент

Успішність транзакції на цьому етапі може залежати від частоти платежів і їх суми, країни, з якої вони надходять; типу карти і багато чого іншого. На жаль, вплинути на це ми ніяк не можемо, тому на цих етапах дуже високий відсоток відмов через помилкових спрацьовувань антіфродових систем одного з учасників процесу. Але нам вдалося знайти два параметра, які ми можемо контролювати і які сильно впливають на частку успішних платежів. Це використання локального процесингового центру та правильного MCC.

Як приймати платежі по кредитних картах


Підібравши відповідний для нас код, ми все ще не були задоволені показниками деяких країн. Наприклад, у Франції частка успішних платежів ніяк не хотіла підніматися вище 50-60%. Причина виявилася в тому, що там дуже популярна національна платіжна система Carte Bleue. Щоб приймати їх карти, використовуваний процесинговий центр (банк-еквайєр) повинен бути до неї підключений. Як правило, відповідні банки розташовані в тій же самій країні, де потрібно поліпшити показники. Це дає додатковий бонус у вигляді зменшення підозрілості транзакції для антіфродових систем банків-емітентів цієї країни і спричиняє збільшення частки успішних платежів.

Після того як ми стали використовувати локальний процесинг, підключений до Carte Bleue, ми отримали приріст частки успішних платежів у Франції на 30%. У США, де немає локальних платіжних систем, такий прийом дав трохи менший приріст - близько 20%.

Як приймати платежі по кредитних картах


За рамками статті залишився розповідь про розроблену нами платформі, яка дозволила проводити всі вищеописані експерименти легко і без додаткового програмування.

Схожі статті