Реализация бесконтактной оплаты на сайте
Срок реализации – если все материалы в распоряжении, хватит и пары дней.
Задачи
- Добавить на сайт возможность оплаты через Google Pay;
- Обойти основную платежную страницу.
Стэк
php, Bitrix, Angular
Решение
Крупный сервис в сфере негосударственного пенсионного страхования поручил нам сделать на сайте кнопку быстрого и удобного платежа. Как правило, на платежных страницах многих банков есть возможность выбора способа оплаты, однако сейчас задача состояла в обходе основного эквайринга.
Реализация тривиальная, но со своими нюансами. После нажатия чудо-кнопки «Google Pay» на frontend-части происходит получение у Гугла авторизационного токена, который содержит в себе некоторые данные вроде суммы платежа.
Далее отправляется запрос на endpoint, предоставленный банком. У большого красного банка, например, это /google/payment.do. Отправляем туда полученный токен, указываем merchant (имя продавца), сумму и другие мелочи.
В ответе приходит номер заказа. По нему запрашиваем статус - прошла ли оплата или была какая-то ошибка (внезапно не хватило денег на карте). Другой вариант развития событий - у карты юзера есть 3D secure. В этом случае он попадает на страницу с смс-паролем для подтверждения.
В конечном счете пользователь оказывается на странице, с которой и пришел. На этом всё - счастливый пенсионер видит попап с уведомлением об успешном платеже.
Нам удалось подробно изучить процесс проведения гугл-платежей. У Google Pay и Apple Pay все очень похоже, но со своими особенностями. Полученный опыт позволит в короткие сроки воплотить такую задачу на любом проекте.
Анастасия, backend developer