tinkoff-mobile-tech / tinkoff-asdk-ios

Tinkoff Acquiring SDK
https://tinkoff.ru/kassa
44 stars 35 forks source link

СБП GA #229

Closed SeAtTink closed 1 year ago

SeAtTink commented 1 year ago

Добрый день, Подскажите пожалуйста по sdk IOS, 1) Как работает SDK с теми банками, что поменяли диплинк схему? Например, есть пользователи, у которых осталось старое приложение Сбера, а затем они поставили новое приложение через iMazing. Обработает ли SDK такие ситуации динамически или нужно ставить новую версию SDK? 2) Ранее мы подключали оплату через СБОЛ, при возврате в наше приложение мы должны были запрашивать у бэка самостоятельно статус оплаты. При работе с СБП нам точно не нужно делать доп. экран с ожиданием статуса оплаты? 3) Кастомизация списка банковских приложений: есть или нет? Что мы можем визуально кастомизировать кроме кнопки СБП? 4) Что будет, если мы захотим использовать свой дизайн для диалога, имеет ли смысл тогда вообще использовать SDK? 5) Вопрос про налоги, что делать с обязательными полями, когда нам не нужно передавать налоги? 6) "Кастомизация дизайна через SDK Есть ли возможность кастомизации списка с выбором банка для оплаты через СБП и вообще управлять дизайном BottomSheet?" 7) Модальное окно "Ожидаем оплаты платежа" это часть СДК? Можно убрать? Как на разных платформах будет работать?

ivanglushko commented 1 year ago

Добрый день!

  1. К сожалению динамически обработать изменения нельзя, ибо схемы зашиты в приложении. Если схемы меняются (от нспк приходит новый список схем) и не совпадает со схемами внутри приложения (Info.plist) то тогда приложение не сможет открыть банковское приложение. Клиент сдк должен обновлять список схем самостоятельно.
ivanglushko commented 1 year ago

@akhaman даст фидбек по остальным вопросам

akhaman commented 1 year ago
  1. Если банк меняет свою схему для диплинка, вам необходимо внести новое значение в info.plist под ключом LSApplication. SDK сам по себе не знает о доступных банках. Тут логика такая:

ASDK делает запрос и получает список банков, поддерживающих СБП. Далее ASDK через системную функцию проверяет, установлено ли приложение с заданной схемой на устройстве. Система возвращает ответ true/false true - приложение 100% существует false - приложения с такой схемой нет ИЛИ такая схема не добавлена в info.plist (LSApplicationQueriesSchemes) в приложении мерчанта.

Если в ответе приходит false, ASDK отбрасывает этот вариант из списка и не отображает на экране выбора банка. Запрос для получения списка банков происходит по урлу от НСПК (можно открыть через браузер и глянуть этот список): https://qr.nspk.ru/proxyapp/c2bmembers.json

  1. После оплаты по СБП, при возврате в приложение мерчанта, ASDK самостоятельно вызывает метод проверки статуса платежа и возвращает статус оплаты через колбэк; если вы хотите принудительно проверить статус , можете вызвать AcquiringSdk.getState

  2. Кастомизации нет

  3. Нужно подробнее узнать о вашем кейсе. При желании вы можете реализовать свое решение для взаимодействия с API эквайринга

  4. Хотели бы побольше информации по кейсу. Параметр Taxation не является обязательным, параметр Tax можно обьявить как nil

  5. Список с банками не кастомизируется. Можно кастомизировать экран с платежной формой https://github.com/Tinkoff/AcquiringSdk_IOS#пример-создание-acquiringviewconfiguration

  6. Часть SDK. Убрать нельзя

SeAtTink commented 1 year ago

Добрый день ! Благодарю за ответы, появились дополнительные вопросы: 1) Можно ли кастомизировать модальное окно "Ожидаем оплаты платежа" 2) Есть ли тестовая среда для SDK, какие методы можно протестировать на тесте ?

akhaman commented 1 year ago

Добрый день!

  1. Нет
  2. В Сэмпле проекта показаны все примеры работы с асдк - привязка карт, оплата по карте(прохождение 3ds и тд), а так же оплата по тинькофф пей и оплата по сбп. Но, что бы проверить полный е2е цикл для 2 крайних вариантов - вам нужно получить тестовое клиентское приложение Тинькофф, развернутое на тестовом контуре, этого команда эквайринга предоставить не сможет