ym88659208ym87991671
Оплата вне SDK Android | Документация для разработчиков

Оплата вне SDK Android

Обновлено 24 октября 2023

Схема взаимодействия

Схема оплаты

Сценарий оплаты вне Android SDK

Данный механизм используется при проведении оплаты вне Android SDK для показа «шторки» результата оплаты.

Получение токена оплаты

Для получения PaymentToken необходимо использовать метод getPaymentToken и передать в параметры перечисленные ниже:

Параметры метода

ОбъектТипФорматОбязательныйОписание
apiKeyStringANS..512ДаКлюч Клиента для работы с сервисами платежного шлюза через SDK Пример: eyJhbGciOiJFUzI1NiJ9.eyJjc24iOiI3MjNiM2U3OWI4NjU2MzU2NTg2YTE5MDBhMzA3Y2JiNDJmZDEwZDc2Iiwic3ViIjoiQ049V2ViVGVzdCIsImlzcyI6IkNOPVdlYlRlc3QiLCJpYXQiOjE1ODgxNTA3ODgsImp0aSI6InVyQmdGMEl0NXI3UFhrUkFQeDFIOVEiLCJleHAiOjE2MTU0MjIxMDYwfQ.HdIG_ch3gXhNiX03oskOVBYACUa5iZCcuZVYQaesB_adc95MjbQdy5bm7gNYpBuVCDc_7XUCdKlLeP52H2_oVA
merchantLoginStringANS..512ДаНазвание магазина Клиента Пример: Любимый магазин
amountIntN..12ДаСумма операции в минорных единицах Пример: 145566
currencyStringN..3ДаЦифровой код валюты операции согласно ISO 4217 Пример: 643
mobilePhoneStringN..11НетНомер мобильного телефона Плательщика Пример: 79261112233
orderNumberStringANS..36ДаУникальный номер (идентификатор) заказа в системе Клиента Пример: 5f3f7d10-7005-7afe-b756-f73001c896b1
orderDescriptionStringANS..512НетОписание заказа Пример: Любимый товар
recurrentEnabledBooleanДаПараметр создания платежного токена для реккурентных платежей Пример: true
recurrentExpiryStringN..8Да, если recurrentEnabled = trueДата прекращения действия рекуррентных платежей (формат YYYYMMDD) Пример: 20230821
recurrentFrequencyIntN..2Да, если recurrentEnabled = trueПериод рекуррентных платежей в днях (натуральное число в пределах от 1 до 28) Для нереккурентых платежей значение 0 Пример: 20
languageStringA..2НетЯзык локализации интерфейсов Пример: RU
appPackageStringANS..512ДаPackage приложения Клиента, по которому необходимо вернуть Плательщика после аутентификации в СберБанк Онлайн Пример: merchant.favorite.shop

Получение PaymentToken

Метод getPaymentToken является входной точкой в SDK и должен быть вызван только по клику на кнопку "Оплатить", которая идет в комплекте с SDK.

 SPaySdkApp.getInstance().getPaymentToken(
context = context,
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣apiKey = "eyJhbGciOiJFUzI1NiJ9.eyJjc24iOiI3MjNiM2U3OWI4NjU2MzU2NTg2YTE5MDBhMzA3Y2Ji",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣merchantLogin = "BestMerch",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣amount = 21323,
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣currency = "643",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣mobilePhone = "79261112233",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣orderNumber = "5f3f7d10-7005-7afe-b756-f73001c896b1",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣orderDesription = "payment for household appliances",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣reccurentEnabled = true,
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣reccurentExpiry = "20230821",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣reccurentFrequency = "20",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣appPackage = "merchant.favorite.shop",
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣language = "RU"
⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣ ⁣) { paymentTokenResult ->
when (paymentTokenResult) {
is PaymentTokenResult.Success -> {
doSomethingOnSuccess(paymentTokenResult.paymentToken)
}
is PaymentTokenResult.Error -> {
doSomethingOnError(paymentTokenResult.description)
}
}
}

Завершение работы при оплате вне SDK

Если оплата производится на стороннем сервисе, для закрытия окна SDK необходимо вызвать метод completePayment и передать в него статус оплаты. После его вызова SDK отобразит необходимый экран статуса оплаты и работа SDK будет завершена

Параметры запроса completePayment

ОбъектТипОбязательныйОписание
PayResultobjectДаРезультат оплаты, полученным Клиентом от платежного шлюза. Возможные значения: PaymentResult.Success, PaymentResult.Error, PaymentResult.Processing

Вызов метода completePayment()

SPaySdkApp.getInstance().completePayment(
context = context,
paymentResult = PaymentResult
)
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.