Привет, Хабр. Меня зовут Михаил Добровольский, я руководитель портфеля проектов в МКБ, и сегодня расскажу, как мы реализовали выпуск виртуальной банковской карты в Telegram.
А почему именно в Telegram?
Наверняка все заметили, что мы стали проводить все больше времени в мессенджерах, в частности в Telegram, а все дело в том, что в нем люди не только общаются, но и получают актуальные новости, в том числе финансовые. Telegram действительно стал одним из удобных каналов коммуникации банка с клиентом. Кроме этого, мы сталкиваемся с проблемой удаления приложений из сторов (AppStore и Play Market), поэтому переход в мессенджеры, где привыкли общаться наши клиенты, был логичным решением.
Чат-бот, откройся!
После появления функционала Web Apps for Bots (https://core.telegram.org/bots/webapps) мы получили возможность безопасного отображения чувствительных банковских данных для клиентов банка. Основой решения стала платформа Open API, реализованная в рамках концепции BaaS (Bank as a Service), позволяющая сторонним сервисам взаимодействовать с системами банка.
Карта в Telegram — это безопасно?
Сервис Telegram-бота обменивается с Telegram API через метод getUpdates. Для открытия Web App в Telegram API передается ссылка на статику Web-страницы бота. На самой странице подключаем скрипт telegram-web-app.js, позволяющий Web App взаимодействовать с Telegram. Скрипт передает очень важное для нас поле initData, содержащее данные и hash, по которым на сервис-боте, развернутом в контуре банка, мы можем проверить достоверность запроса от Web App. При этом хранение аутентификационной информации пользователя осуществляется на сервисе-бота, что обеспечивает ее безопасность. Клиентские данные отображаются в Web App, для их получения из сервис-бота используется REST. Мы доверяем аутентификации Telegram, а также связке номера телефона и Telegram User Id. Эти данные являются основой для дальнейшей аутентификации пользователя в BaaS.
Данное решение соответствует требованиям стандарта PCI DSS (Payment Card Industry Data Security Standard). Так, Telegram не имеет доступа к карточным данным пользователя, а вся информация защищена программным обеспечением банка и становится доступной только после авторизации. Клиенту можно не беспокоиться за сохранность личных данных.
Как открыть виртуальную карту в Telegram и пользоваться ей
Чтобы открыть карту в Telegram, необходимо в мессенджере найти чат-бот @FC_Torpedo_Bot, поделиться своим номером телефона, ознакомиться с условиями и подтвердить выпуск при помощи SMS. Виртуальная карта появится в чат-боте, где и будет все время храниться, не занимая места в кошельке. Владельцы смартфонов на Android смогут добавить ее в Mir Pay, Samsung Pay и оплачивать покупки в любой торговой точке, где действуют эти платежные сервисы. Есть возможность добавить виртуальную карту в Yandex Pay и заниматься онлайн-шопингом без ввода реквизитов каждый раз. При оплате данной картой, владельцу начисляется cash back от банка, также карта участвует в акциях платежной системы Мир. Пополнить баланс можно любым удобным способом, а скоро появится возможность сделать это через СБП (Система быстрых платежей).
Смени имидж
В нашем боте мы реализовали интересную фичу: смена изображения карты в телеграмме и MIR/Samsung Pay-сервисах. Процесс смены картинки карты состоит из нескольких шагов. Сначала отправляется запрос для получения списка доступных картинок. Как только пользователь выбрал нужную, отправляется запрос на сервис бота для смены картинки. Сервис устанавливает картинку пользователю, закрывается Web App и пользователю в чат отправляется выбранная картинка при помощи метода Telegram API https://core.telegram.org/bots/api#sendphoto или выбранный gif, используя метод https://core.telegram.org/bots/api#sendanimation. При последующем открытии меню, в Web App отображается текущая выбранная картинка карты.
Комментарии (39)
MonkAlex
26.12.2022 21:19+1Как защищаетесь от мошенников?
Не нужны детали, интересен принцип. Ограничения по сумме, ограничения по транзакциям, хоть что-то?
ПС: что будет в теоретическом сценарии вида "я взял чужой телефон на минутку и оформил карту..."?
Mike_666
26.12.2022 21:30+1Судя по схеме этот сценарий уткнется в OTP авторизацию, которая придёт в виде SMS на тот же телефон... :)
gmtd
27.12.2022 08:35Автор кажется упустил информацию о необходимости введения паспортных данных при оформлении карты
MikeDY Автор
27.12.2022 11:39Первоначально карта выпускается по номеру телефона с ограничениями по сумме операций. Подробнее https://mkb.ru/torpedo
MikeDY Автор
27.12.2022 11:34Ограничения реализованы в рамках 161 ФЗ, так же более подробно с тарифами и условиями можно ознакомиться https://mkb.ru/torpedo.
в теоретическом сценарии вида "я взял чужой телефон на минутку и оформил карту..." карта будет выпущена, но пополнять ее придется из собственных средств))vassabi
28.12.2022 10:40пополнять можно не только собственныи средствами (ну или "кто пополнил - тот и папа"). но это уже детали, спасибо
Antra
26.12.2022 21:32+2Владельцы смартфонов на Android смогут добавить ее в Mir Pay, Samsung Pay и оплачивать покупки в любой торговой точке, где действуют эти платежные сервисы.
Вау, радость-то какая! Сервис Samsung Pay чудесно работает в Европе!
Мы спасены? Или действительность в статье несколько приукрашена?
Уж извините, вы, безусловно, молодцы, круто сделали. Но так сложилось, что смена картинки виртуальной карты для меня менее важна, чем ареал, где картой можно воспользоваться. И тут хотелось бы больше четкости в формулировках.
GrakovNe
27.12.2022 01:00+1Конечно не работают. Карту можно привязать к MIR Pay, но при попытке провести транзакцию, выяснится что мерчант поддерживает только глобальные Visa и MasterCard, но не знает что такое НСПК и как с ней общаться, поэтому платёж не пройдет
Авторы поста так же не сказали, что если ваш Samsung смартфон ввезен в РФ «параллельным импортом» и вообще-то предназначался для другой страны, карту привязать не получится
Antra
27.12.2022 08:22Упс. Если про "неработоспособность в Европе" я подозревал (был уверен), то про проблемы с SamsungPay на неродных смартфонах и в мыслях не было.
Получается, привезенный из Казахстана или купленный в Европе аппарат "примет" карточку условного узбекского или белорусского банка, но откажется принять российскую (и неважно, пластик или виртуальная, выпущена в приложении или через телеграм)?
И наоборот тоже (виртуальную карту белорусского банка не добавить в SamsungPay, россйиского Самсунга)?
GrakovNe
27.12.2022 13:33* Карты "Мир" можно добавить в Samsung Pay только на оригинальных смартфонах Samsung, предназначенных для распространения на территории Российской Федерации и Республики Беларусь.
То есть выглядит так, будто если у вас карта Мир, то телефон должен предназначаться для рынков РФ и РБ
Если телефон выпущен для центральной Азии, то РФ/РБ Мир он не примет, а никто, кроме банков этих стран, больше карты этой платежной системы просто не выпускает
MikeDY Автор
27.12.2022 11:43-1Картой можно воспользоваться только на территории РФ, через Samsung/MIR Pay замечательно работает.
GrakovNe
27.12.2022 14:24Конечно работает. Но зачем?
Карточных продуктов которые работают там, где есть НСПК и без сомнительных виртуалок привязанных к телеге хватает
Тем более что ограничения по суммам, ввеленные в угоду безопасности такие, что я не могу представить сценариев использования, кроме как «одноразовая карточка чтобы в интернете платить»
shachneff
26.12.2022 22:39PCI DSS это хорошо, а как 152-ФЗ и ГОСТ 57580 смотрят на банковские приложения внутри тг?
Wesha
27.12.2022 01:39+5Ура! Все дырки в протоколе SS7, имя которым — легион, наконец-таки починили? А, нет... ну ладно... Зато карточки... в телеграме.... привязанном к сотовому номеру... да...
SantrY
27.12.2022 10:53Их уже скорее всего никогда не исправят, такое вот наследие. Но, справедливости ради, на практике не все так плохо. Фаерволы плус-минус справляются. По крайней мере если оператор заботится о своих абонентах и заморачивается с настройкой защиты.
13werwolf13
27.12.2022 06:55+1аффтар, сделай юзернейм бота ссылкой на t.me, а то по клику он ведёт на несуществующую учётку на хабре
Komrus
27.12.2022 10:16Карточка в Телеграме! Замечательно!
А к виртуальному Телеграмовскому телефонному номеру (с кодом +888), про который тут недавно рассказывали - эту карту можно привязать? :)Antra
27.12.2022 10:34+1Да хотя бы просто к зарубежному номеру (допустим, Израильскому) - уже было бы хорошо.
GDragon
27.12.2022 10:59+1А к виртуальному Телеграмовскому телефонному номеру
Для начала, это не номер, вы не можете получать на него смс.
На этом собственно всё.Komrus
27.12.2022 11:19Да и купить этот "сикретный" номер, не имея уже аккаунта в Телеграмме - несколько проблематично :)
GDragon
27.12.2022 13:24Говорят на фрагменте есть авторизация через тон-кошелёк, так что по идее возможно.
Но я со скепсисом отношусь к телеграммовым нововведениям, они... попахивают скамом.
MikeDY Автор
27.12.2022 11:55Карта выпускается только на номер телефона РФ (+7), на другие номера SMS не уйдет.
iddqda
27.12.2022 23:06-2рад за прогрессивный ИТ департамент в МКБ - молодцы,
не каждое банковское ИТ способно вынырнуть из беспощадных ИБ регламентов.
но увы, не все ваше руководство настолько продвинутое и дальновидное
судя по тому, что европейцы вас персонально отметили в 9-м пакете санкций.
Надеюсь найдете нормальную работу
vp7
К чëрту подробности, лучше скажите - эти карты работают для международных платежей? ;))
vazir
Судя по хабу спрашивать надо МКБ
dchusovitin
Конечно нет, это ведь Мир, НСПК и российский банк.
Рабочие карты есть не в РФ и на просторах интернета =)
Darkhon
Да, виртуальные карты зарубежных банков активно продаются, и даже с 3D Secure... Но вот когда вместо оплаты картой предлагают сделать перевод в банк по реквизитам — всё равно проблема.
gmtd
Какие именно виртуальные карты зарубежных банков вы можете купить не будучи резидентом не России?
Kremleb0t
На ezzocard можно покупать одноразовые карточки за крипту. Но расплатиться ими можно далеко не везде. Тебе дают номер карточки, дату, cvv и больше ничего.
gmtd
Я знаю много таких предложений
Рекомендуется сразу проверять их на Трастпилоте
https://www.trustpilot.com/review/ezzocard.com
Практически все или мошенники, или имеют проблемы
(90% позитивных отзывов очевидно по стилю написано копирайтерами)
Darkhon
Американские и европейские, с предоплаченным номиналом. На plati.market их много продают. Я сам пользовался несколько раз, обычно нет проблем. Те, что с 3DS, стоят дороже и нужно просить переслать код через телеграм, но такие мало где требуются.
gmtd
Интересно. Почитал несколько предложений
Смутило вот такое:
✅ Карта выпущена банком США. Тип карты: Corporate, Credit.
✅ Вместе с реквизитами Вы получите уникальные имя и биллинг адрес, закрепленные за данной картой.
Похоже на ворованные, не?
gmtd
И вот еще жизнеутверждающий отзыв:
Ищу карту как раз для Google Cloud...
Darkhon
По Google Cloud не знаю, но подписка Google One, покупки в Play Market — спокойно проходят по обычным виртуальным карточкам. Также продлевал домены в Namecheap и Cloudflare. Естественно с указанием американского адреса и через VPN. Покупать "уникальный биллинг-адрес" не пробовал, обычно хватает рандомного фейкового адреса.
FinnParnish
Да уж, сейчас это пожалуй самая главная функция.
MikeDY Автор
на текущий момент карты доступны для платежей на территории РФ