Привет, Хабр. Меня зовут Михаил Добровольский, я руководитель портфеля проектов в МКБ, и сегодня расскажу, как мы реализовали выпуск виртуальной банковской карты в 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)


  1. vp7
    26.12.2022 20:02
    +10

    К чëрту подробности, лучше скажите - эти карты работают для международных платежей? ;))


    1. vazir
      26.12.2022 20:27

      Судя по хабу спрашивать надо МКБ


    1. dchusovitin
      26.12.2022 20:59
      +5

      Конечно нет, это ведь Мир, НСПК и российский банк.
      Рабочие карты есть не в РФ и на просторах интернета =)


      1. Darkhon
        26.12.2022 21:57

        Да, виртуальные карты зарубежных банков активно продаются, и даже с 3D Secure... Но вот когда вместо оплаты картой предлагают сделать перевод в банк по реквизитам — всё равно проблема.


        1. gmtd
          27.12.2022 08:28

          Какие именно виртуальные карты зарубежных банков вы можете купить не будучи резидентом не России?


          1. Kremleb0t
            27.12.2022 10:09

            На ezzocard можно покупать одноразовые карточки за крипту. Но расплатиться ими можно далеко не везде. Тебе дают номер карточки, дату, cvv и больше ничего.


            1. gmtd
              27.12.2022 10:11

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

              Рекомендуется сразу проверять их на Трастпилоте

              https://www.trustpilot.com/review/ezzocard.com

              Практически все или мошенники, или имеют проблемы

              (90% позитивных отзывов очевидно по стилю написано копирайтерами)


          1. Darkhon
            27.12.2022 22:58

            Американские и европейские, с предоплаченным номиналом. На plati.market их много продают. Я сам пользовался несколько раз, обычно нет проблем. Те, что с 3DS, стоят дороже и нужно просить переслать код через телеграм, но такие мало где требуются.


            1. gmtd
              28.12.2022 11:17

              Интересно. Почитал несколько предложений
              Смутило вот такое:

              ✅ Карта выпущена банком США. Тип карты: Corporate, Credit.

              ✅ Вместе с реквизитами Вы получите уникальные имя и биллинг адрес, закрепленные за данной картой.

              Похоже на ворованные, не?


              1. gmtd
                28.12.2022 11:23

                И вот еще жизнеутверждающий отзыв:

                google cloud новый дед, старый ак - бан

                Ищу карту как раз для Google Cloud...


                1. Darkhon
                  28.12.2022 11:45

                  По Google Cloud не знаю, но подписка Google One, покупки в Play Market — спокойно проходят по обычным виртуальным карточкам. Также продлевал домены в Namecheap и Cloudflare. Естественно с указанием американского адреса и через VPN. Покупать "уникальный биллинг-адрес" не пробовал, обычно хватает рандомного фейкового адреса.


    1. FinnParnish
      26.12.2022 23:28
      +1

      Да уж, сейчас это пожалуй самая главная функция.


    1. MikeDY Автор
      27.12.2022 11:09
      -2

      на текущий момент карты доступны для платежей на территории РФ


  1. MonkAlex
    26.12.2022 21:19
    +1

    Как защищаетесь от мошенников?

    Не нужны детали, интересен принцип. Ограничения по сумме, ограничения по транзакциям, хоть что-то?

    ПС: что будет в теоретическом сценарии вида "я взял чужой телефон на минутку и оформил карту..."?


    1. Mike_666
      26.12.2022 21:30
      +1

      Судя по схеме этот сценарий уткнется в OTP авторизацию, которая придёт в виде SMS на тот же телефон... :)


    1. gmtd
      27.12.2022 08:35

      Автор кажется упустил информацию о необходимости введения паспортных данных при оформлении карты


      1. MikeDY Автор
        27.12.2022 11:39

        Первоначально карта выпускается по номеру телефона с ограничениями по сумме операций. Подробнее https://mkb.ru/torpedo


    1. MikeDY Автор
      27.12.2022 11:34

      Ограничения реализованы в рамках 161 ФЗ, так же более подробно с тарифами и условиями можно ознакомиться https://mkb.ru/torpedo.
      в теоретическом сценарии вида "я взял чужой телефон на минутку и оформил карту..." карта будет выпущена, но пополнять ее придется из собственных средств))


      1. vassabi
        28.12.2022 10:40

        пополнять можно не только собственныи средствами (ну или "кто пополнил - тот и папа"). но это уже детали, спасибо


  1. Antra
    26.12.2022 21:32
    +2

    Владельцы смартфонов на Android смогут добавить ее в Mir Pay, Samsung Pay и оплачивать покупки в любой торговой точке, где действуют эти платежные сервисы.

    Вау, радость-то какая! Сервис Samsung Pay чудесно работает в Европе!

    Мы спасены? Или действительность в статье несколько приукрашена?

    Уж извините, вы, безусловно, молодцы, круто сделали. Но так сложилось, что смена картинки виртуальной карты для меня менее важна, чем ареал, где картой можно воспользоваться. И тут хотелось бы больше четкости в формулировках.


    1. GrakovNe
      27.12.2022 01:00
      +1

      Конечно не работают. Карту можно привязать к MIR Pay, но при попытке провести транзакцию, выяснится что мерчант поддерживает только глобальные Visa и MasterCard, но не знает что такое НСПК и как с ней общаться, поэтому платёж не пройдет

      Авторы поста так же не сказали, что если ваш Samsung смартфон ввезен в РФ «параллельным импортом» и вообще-то предназначался для другой страны, карту привязать не получится


      1. Antra
        27.12.2022 08:22

        Упс. Если про "неработоспособность в Европе" я подозревал (был уверен), то про проблемы с SamsungPay на неродных смартфонах и в мыслях не было.

        Получается, привезенный из Казахстана или купленный в Европе аппарат "примет" карточку условного узбекского или белорусского банка, но откажется принять российскую (и неважно, пластик или виртуальная, выпущена в приложении или через телеграм)?

        И наоборот тоже (виртуальную карту белорусского банка не добавить в SamsungPay, россйиского Самсунга)?


        1. GrakovNe
          27.12.2022 13:33

          * Карты "Мир" можно добавить в Samsung Pay только на оригинальных смартфонах Samsung, предназначенных для распространения на территории Российской Федерации и Республики Беларусь.

          источник

          То есть выглядит так, будто если у вас карта Мир, то телефон должен предназначаться для рынков РФ и РБ

          Если телефон выпущен для центральной Азии, то РФ/РБ Мир он не примет, а никто, кроме банков этих стран, больше карты этой платежной системы просто не выпускает


    1. MikeDY Автор
      27.12.2022 11:43
      -1

      Картой можно воспользоваться только на территории РФ, через Samsung/MIR Pay замечательно работает.


      1. GrakovNe
        27.12.2022 14:24

        Конечно работает. Но зачем?

        Карточных продуктов которые работают там, где есть НСПК и без сомнительных виртуалок привязанных к телеге хватает

        Тем более что ограничения по суммам, ввеленные в угоду безопасности такие, что я не могу представить сценариев использования, кроме как «одноразовая карточка чтобы в интернете платить»


  1. shachneff
    26.12.2022 22:39

    PCI DSS это хорошо, а как 152-ФЗ и ГОСТ 57580 смотрят на банковские приложения внутри тг?


    1. Wesha
      27.12.2022 01:39
      +5

      Ура! Все дырки в протоколе SS7, имя которым легион, наконец-таки починили? А, нет... ну ладно... Зато карточки... в телеграме.... привязанном к сотовому номеру... да...


      1. SantrY
        27.12.2022 10:53

        Их уже скорее всего никогда не исправят, такое вот наследие. Но, справедливости ради, на практике не все так плохо. Фаерволы плус-минус справляются. По крайней мере если оператор заботится о своих абонентах и заморачивается с настройкой защиты.


  1. 13werwolf13
    27.12.2022 06:55
    +1

    аффтар, сделай юзернейм бота ссылкой на t.me, а то по клику он ведёт на несуществующую учётку на хабре


    1. MikeDY Автор
      27.12.2022 11:54

      1. 13werwolf13
        27.12.2022 12:03
        +1

        так надо не в комменты а в тело статьи


  1. Komrus
    27.12.2022 10:16

    Карточка в Телеграме! Замечательно!
    А к виртуальному Телеграмовскому телефонному номеру (с кодом +888), про который тут недавно рассказывали - эту карту можно привязать? :)


    1. Antra
      27.12.2022 10:34
      +1

      Да хотя бы просто к зарубежному номеру (допустим, Израильскому) - уже было бы хорошо.


    1. vassabi
      27.12.2022 10:34

      тссс, не палите контору ! :D


    1. GDragon
      27.12.2022 10:59
      +1

      А к виртуальному Телеграмовскому телефонному номеру

      Для начала, это не номер, вы не можете получать на него смс.
      На этом собственно всё.


      1. Komrus
        27.12.2022 11:19

        Да и купить этот "сикретный" номер, не имея уже аккаунта в Телеграмме - несколько проблематично :)


        1. GDragon
          27.12.2022 13:24

          Говорят на фрагменте есть авторизация через тон-кошелёк, так что по идее возможно.
          Но я со скепсисом отношусь к телеграммовым нововведениям, они... попахивают скамом.


    1. MikeDY Автор
      27.12.2022 11:55

      Карта выпускается только на номер телефона РФ (+7), на другие номера SMS не уйдет.


  1. iddqda
    27.12.2022 23:06
    -2

    рад за прогрессивный ИТ департамент в МКБ - молодцы,
    не каждое банковское ИТ способно вынырнуть из беспощадных ИБ регламентов.
    но увы, не все ваше руководство настолько продвинутое и дальновидное
    судя по тому, что европейцы вас персонально отметили в 9-м пакете санкций.
    Надеюсь найдете нормальную работу