Система Быстрых Платежей как альтернатива ApplePay и GPay в онлайне

Привет! Я продакт в сервисе ParkPass. Наш сервис ускоряет и упрощает взаимодействие с парковкой, в том числе и её оплату.

Как выглядит стандартный процесс оплаты парковки?

  1. Вы берёте на въезде парковочный носитель (карту/билет);
  2. До выезда вам надо оплатить парковку в терминале оплаты парковки;
  3. Вы его ищите;
  4. Находите;
  5. Разбираетесь в устройстве паркомата: куда и что вставлять, сколько платить, как платить и так далее;
  6. И наконец оплачиваете;

Если всё идёт так как надо, вы потратите 5-7 минут на весь процесс оплаты. А может быть так, что терминал не работает, он далеко от вашей машины, нет оплаты банковской картой, нет сдачи, терминал один, а людей много(очередь), вы суперзвезда и не хотите быть среди простых смертных. Или вы просто не можете найти паркомат...

Тогда время оплаты увеличивается просто в разы. И это ужасно. Именно поэтому существует наш сервис. Людям не хочется тратить своё время на всё вышеперечисленное. Они хотят оплатить парковку, пока идут к машине, сесть и уехать.

Как выглядит процесс оплаты парковки через наш сервис?

Вместо поиска и похода в терминал оплаты парковки, мы предлагаем оплатить парковку по QR-коду на парковочном носителе.

  • Пользователь сканирует QR-код;
  • Ему открывается AppClip (микроприложение для iOS) или Web-приложение/InstantApp (Android);
  • Он подтверждает, что это его парковочная сессия;
  • Оплачивает через ApplePay и GooglePay;
  • Можно выезжать.

Весь процесс занимает до 2 минут. Всегда. Еще и чек на email отправим. В паркомате чеки могут не выдавать. Доказывай как хочешь, что ты оплатил, если что-то пошло не так.

Оплата в AppClip с помощью ApplePay

И тут случилось , то что случилось...

После того как ApplePay и GooglePay по факту перестали работать в России, оплата в нашем сервисе тоже отвалилась. Мы знали, что есть Система Быстрых Платежей. Но принцип работы нужно было изучать. Изучили, решили, что можно использовать, но есть одно но... Процесс инициализации платежа и оплаты через СБП в корне отличается от ApplePay/GooglePay.


Проблема

За что мы так любим ApplePay и GooglePay? Ты нажимаешь кнопку оплатить, светишь лицом или прикладываешь палец и... вуаля. Оплата прошла. С СБП это не так. СБП с точки зрения простого обывателя — это ссылка. Ссылка, которая содержит в себе набор параметров для оплаты. Если вы сканируете QR-код с СБП ссылкой через приложение банка, то всё ок. Приложение банка умеет работать с такими ссылками. Но как сделать так, чтобы по ссылке проходила оплата аналогичная AP и GP?

Решение

Мы начали искать инфу по СБП, примеры. Оказалось, что нигде нет нормальной документации по СБП для разработчиков. Нет виджетов для установки на сайт или в приложение. В итоге нашли ответ для себя в коде сайта Системы Быстрых Платежей. Суть решения заключается в том, что с помощью специальной ссылки можно вызвать конкретное приложение банка и там уже всё будет готово для оплаты

А вот пример как выглядит ссылки для оплаты в Сбере Android: intent://qr.nspk.ru/BD100047PN1IF5JO8QKAPK0B0TDLIESG?type=02&bank=100000000004&sum=291600&cur=RUB&crc=FAED#Intent;scheme=bank100000000111;package=ru.sberbankmobile;end;

Вот, например, как выглядит ссылка для оплаты в Альфа-банке для iOS:
bank100000000008://qr.nspk.ru/BD100001O6S8CBS49LFONAU5164BQ5B4?type=02&bank=100000000004&sum=2700&cur=RUB&crc=D37D

Честно, я так нигде и не нашёл почему ссылки выглядят именно так, что это такое. Я понимаю, что это что-то вроде DeepLink. Раз они кем-то сделаны, значит, кто-то знает их принцип работы. Если вы знаете, где можно почитать, оставьте ссылку в комментарии.

В результате мы решили написать свой виджет для оплаты через СБП для Web и iOS. Схема логики работы выглядит как-то так. Не стремился воспроизвести сверхточную схему работу. Надеюсь из того что есть, в целом принцип вам понятен :)

Система Быстрых Платежей как альтернатива ApplePay и GPay в онлайне

Как в итоге стал выглядеть процесс оплаты после подключения СБП.

  1. Пользователь сканирует QR-код и переходит поссылке;
  2. Ему открывается AppClip (iOS) или Web-приложение/InstantApp (Android);
  3. Он подтверждает, что это его парковочная сессия;
  4. Нажимает Оплатить через СБП;
  5. Выбирает свой банк — иконка каждого банка это ссылка на приложение банка;
  6. Оплачивает в приложении банк;
  7. Можно выезжать.
Оплата в AppClip с помощью СБП

Что в итоге

В текущей ситуации СБП для нас оказалось нормальное альтернативное решение.

  • Наш банк поддерживает генерацию ссылок для СБП через АПИ;
  • Скорость оплаты осталось почти такой же, как и через ApplePay и GooglePay;
  • Оплату по СБП поддерживает порядка 100 банков и их приложения;
  • Комиссия за оплату 0%, Карл! У MasterCard, Visa, ApplePay, GooglePay; комиссия > 2.5%
  • Наш сервис продолжает работать.

Пожелания

На мой взгляд СБП может стать нормальной альтернативой для ApplePay и GooglePay в онлайне. При этом, со стороны СБП и Банков партнёров нужны шаги, по улучшению и упрощению процедуры оплаты. В нашем случае нам самим пришлось реализовывать желаемое поведение, а хотелось, чтобы подобное шло из коробки от разработчиков СБП. И судя по новостям развитие будет, но как скоро https://www.rbc.ru/finances/31/03/2022/624592ec9a7947d36dfa4bc3?from=newsfeed


Бонусные ссылки тем кто дочитал до конца

  • Пощупать как это работает можно по ссылке: https://pay.parkpass.ru/#/?P=107&C=3270385573
  • Мы выложили наш проект на GitHub. Вполне вероятно у вас такая же ситуация, как и у нас, и наше решение вам поможет. Сейчас там только версия для Веба, но постараемся в ближайшее время выложить и для iOS. Ссылка на репозиторий: https://github.com/ParkPassApp/ParkPass-SBP

Спасибо моим коллегам, которые помогли разобраться и вернуть в работу сервис. 💪

5151
39 комментариев

Хорошее у вас приложение 👍

3
Ответить

Спасибо!

Ответить

Удалось реализовать для iOS?Интересует, как реализовали обход ограничения в 50 ссылок в методе canOpenUrl, чтобы отображать только установленные приложения банков

1
Ответить

Да, получилось. Мы не проверяем какие приложения установлены на телефоне у пользователя, а предлагаем выбрать из общего списка. По умолчанию показываем топ 12 банков

Тут перечень банков, которые подключены к СБП https://qr.nspk.ru/proxyapp/c2bmembers.json

Пример ссылки для ios я оставлял в посте. По нажатию на такую ссылку в фоне запускается webview, а тот в свою очередь запускает открытие ссылки. В результате чего происходит открытие нужного приложения.

Если получится, то на следующей неделе выложим в github решение дл ios.

3
Ответить

Здравствуйте! Скажите пожалуйста получилось ли у вас отсеивать ненужные банки?

Ответить

Пользователь сканирует QR — идея для стартапа: сделать генерацию такого QR на терминалах оплаты, которые есть в каждом магазине.

Навёл камеру, видишь ссылку, нажал, открылся условный сбер, в котором отображаются твои 240₽ за ФлэтВайт, оплатил, не терминале отобразилась успешная оплата.

1
Ответить

Получается вы придумали сервис, который у нас уже давно есть 🧐
Если что, информация о нём есть тут: https://www.sberbank.ru/ru/person/qr

1
Ответить