FAQ
В данном разделе собраны часто встречающиеся вопросы по интеграции SDK SberPay.
FAQ Общие вопросы
В: Какие платформы поддерживает SDK:
О: Все платформы перечислены в таблице:
В: После вызова метода оплаты открывается view sdk и сразу же возникает ошибка
О: Возможные ошибки:
ApiKey/Merchantlogin не подходят под выбранный режим. Для режимов песочницы и прода необходимо использовать разные наборы apikey/merchantlogin.
Убедитесь, что вы не используете vpn, proxi, ваше устройство не использует Jailbreak.
Убедитесь, что вы регистрируете заказ для нужного режима работы sdk. Для каждого из режимов нужно использовать свои username и password при регистрации заказа.
В: В версиях 2.0, 2.1 требуется в метод оплаты передавать orderNumber. Откуда его взять и зачем?
О: В поле OrderNumber необходимо передать номер заказа, который Вы использовали при генерации bankinvoiceId. Это поле необходимо нам для быстрого и качественного реагирования на инциденты как при интеграции SDK, так и при использвании SberPay клиентами.
В: В нашем приложении реализована оплата с использованием платежной страницы WebView, на которой уже есть кнопка SberPay, необходимо ли что-то делать с данной кнопкой при интеграции с SberPay SDK in-App?
О: для корректного ко скрыть кнопку SberPay в WebView и ставить в приоритет SberPay SDK in-App. Сделать это можно следующими способами:
- Передача в запросе на регистрацию заказа в jsonParams передавать jsonParams={"showSbol":"false"} или jsonParams={"sberpayHide":"true"}.
- В полученное значение formUrl добавить &sberpayHide=true, пример: https://3dsec.sberbank.ru/payment/merchants/sbersafe_sberid/payment_ru.html?mdOrder=1710d317-19d6-72f2-b595-339a5e22219c&sberpayHide=true.
Рекомендуем скрывать кнопку SberPay при формировании заказа вышеуказанными методами, это необходимо для сохранения доступности метода SberPay при оплатах на сайте.
В: После оплаты частями, денежные средства поступили от ООО «ЦНФС» («Центр новых финансовых сервисов») - это нормально?
О: Да, при оплате частями денежные средства поступят от организации, которая предоставляет сервис и с которой у вас заключен договор - ООО «ЦНФС» («Центр новых финансовых сервисов»).
В: Какие данные собирает SDK?
О: SDK SberPay имеет встренную систему сбора метрик. Метрики необходимы для оперативного разбора инцидентов и мониторинга работоспособности SDK. SDK не собирает персональные данные пользователя. Пример собираемых метрик: пользователь открыл экран оплаты, пользователь закрыл экран со списком карт.
FAQ SDK SberPay Android in-App
В: Какие языки программирования мы поддерживаем?
О: Kotlin, Java
В: Ошибка при нажатии оплатить до перехода в сбол, а в коллбеке метода оплаты нет никаких ошибок?
О: Скорее всего у вас запущен отладчик Android Studio. В целях безопасности, мы не разрешаем проводить оплату с дебаггером.
В: Оплата на debug сборке прошла, а на release сборке ошибки?
О: Дело во включенном оптимизаторе исходного кода proguard/r8 при сборке релиза.
https://developers.sber.ru/docs/ru/sberpay-sdk/androidsdk/r-rools
В: При нажатии кнопки оплатить в коллбек метода пришла ошибка RequiredDataNotSent
description=Длина bankInvoiceId должна быть 32 символа)
О: Передается не верное значение bankInvoiceId. Нужно регистрировать заказ по гайду: https://developers.sber.ru/docs/ru/sberpay-sdk/sign-up и передавать в качестве bankInvoiceId в SDK параметр sbolBankInvoiceId из ответа запроса на регистрацию заказа.
В: Съехала верстка на кнопке оплатить по SberPay или при оплате UnexpectedError(description=Системная или внутренняя ошибка)
О: В первую очередь нужно убедиться, что метод isReadyForSPaySdk()
(https://developers.sber.ru/docs/ru/sberpay-sdk/androidsdk/start-sdk#proverka-gotovnosti-k-oplate ) возвращает true
. В противном случае, кнопку отрисовывать нельзя
Почему isReadyForSPaySdk()
вернул false
?
- На устройстве не установлено приложение СберБанка
- Неправильно произведена инициализация SDK(https://developers.sber.ru/docs/ru/sberpay-sdk/androidsdk/start-sdk#initsializatsiya-sdk)
В: Что означает PaymentResult.Proccessing
в коллбеке на оплату?
О: Это статус "оплата в процессе". Он вернется, если мы не смогли получить статус оплаты у сервера, например, пришлось слишком долго ждать ответ. В таком случае, советуем узнать статус платежа back2back.
В: Куда попадет пользователь после оплаты? Что будет если на финальных экранах оплаты пользователь смахнет шторку?
О: После оплаты “шторка” SDK закроется и пользователь окажется на том же экране на котором он вызвал оплату по SberPay. Но так как у метода оплаты есть коллбек на статус платежа, то, как только вы получили результат оплаты в коллбеке, вы можете отправить пользователя на нужный вам экран.
FAQ SDK SberPay iOS in-App
В: Какие языки программирования мы поддерживаем?
О: Swift, Objective-C
В: Зачем SDK собирает информацию о местоположении, wi-fi и bluetooth? Обязательны ли разрешения на получение этих данных?
О: Данная информация необходима для обеспечения безопасности оплаты через SDK. Если пользователь не дал одно из разрешений, то оплата пройдет успешно. Оплата может быть отклонена, если пользователь считается ненадежным по косвенным признакам. В ближайших обновлениях планируем отказаться от пермиссии на wifi и bluetooth.
В: Метод isReadyForSPay возвращает false?
О: Причины может быть три:
- Вы тестируетесь на симуляторе.
- Не установлено приложение Сбербанк онлайн или СБОЛ на устойстве.
- У вас не прописаны все поля в info.plist. См пункт
Начало работы
.
В: После старта сценария SDK совершается переход в приложение Сбербанк онлайн/СБОЛ, но переход обратно в приложение не происходит?
О: Проверьте все пункты на корректность указанного deeplink:
- В файле проекта зарегистрирован диплинк.
- В классе
SBankInvoicePaymentRequest
передается ваш диплинк в форматевашдиплинк://spay
. - В AppDelegate/SceneDelegate в методе
application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:])
вы передаете if url.scheme == "Ваш диплинк
" && url.host == "spay".
В: Что означает статус Waiting
в коллбеке на оплату?
О: Это статус "оплата в процессе". Он вернется, если мы не смогли получить статус оплаты у сервера, например, пришлось слишком долго ждать ответ. В таком случае, советуем узнать статус платежа back2back.
В: Куда попадет пользователь после оплаты? Что будет если на финальных экранах оплаты пользователь смахнет шторку?
О: После оплаты “шторка” SDK закроется и пользователь окажется на том же экране на котором он вызвал оплату по SberPay. Но так как у метода оплаты есть коллбек на статус платежа, то, как только вы получили результат оплаты в коллбеке, вы можете отправить пользователя на нужный вам экран.