Автоматическая оплата Android
Обновлено 24 октября 2024
Схема взаимодействия
Сценарий автоматической оплаты
Если оплата происходит через эквайринг Сбербанка и уже известен sbolBankInvoiceId, тогда следует воспользоваться автоматической оплатой.
Для автоматической оплаты необходимо воспользоваться методом payWithBankInvoiceId
. Ниже представлен список параметров метода.
Параметры метода
Объект | Тип | Формат | Обязательный | Описание |
---|---|---|---|---|
apiKey | String | ANS..512 | Да | Ключ Клиента для работы с сервисами платежного шлюза через SDK Пример: eyJhbGciOiJFUzI1NiJ9.eyJjc24iOiI3MjNiM2U3OWI4NjU2MzU2NTg2YTE5MDBhMzA3Y2JiNDJmZDEwZDc2Iiwic3ViIjoiQ049V2ViVGVzdCIsImlzcyI6IkNOPVdlYlRlc3QiLCJpYXQiOjE1ODgxNTA3ODgsImp0aSI6InVyQmdGMEl0NXI3UFhrUkFQeDFIOVEiLCJleHAiOjE2MTU0MjIxMDYwfQ.HdIG_ch3gXhNiX03oskOVBYACUa5iZCcuZVYQaesB_adc95MjbQdy5bm7gNYpBuVCDc_7XUCdKlLeP52H2_oVA |
merchantLogin | String | ANS..512 | Да | Login партнера для работы с сервисами платежного шлюза |
bankInvoiceId | String | ANS..512 | Да | Уникальный номер (идентификатор) заказа в Платежном шлюзе Банка Необходимо передавать значение sbolBankInvoiceId (передается в externalParams) из ответа на Запрос регистрации заказа |
language | String | A..2 | Нет | Язык локализации интерфейсов Пример: RU |
appPackage | String | ANS..512 | Да | Package приложения (он же BuildConfig.APPLICATION_ID) Вашего приложения, по которому необходимо вернуть Плательщика после аутентификации в СберБанк Онлайн Пример: merchant.favorite.shop |
orderNumber | String | ANS..36 | Да | Уникальный номер (идентификатор) заказа в системе Клиента Пример: 5f3f7d10-7005-7afe-b756-f73001c896b1 |
activityContext | Context | - | Да | Любой контекст Вашего приложения который может запускать новую Activity |
Вызов метода payWithBankInvoiceId
Метод payWithBankInvoiceId является входной точкой в SDK и должен быть вызван только по клику на кнопку Оплатить, которая идет в комплекте с SDK.
Обязательно корректно укажите значение параметра appPackage. В противном случае при возврате из сбола после оплаты, если будет допущена ошибка в схеме, поднимется шторка с вариантами приложений для продолжения оплаты. Таким образом, сценарий разорвется.
- Kotlin
- Java
SPaySdkApp.getInstance().payWithBankInvoiceId(
activityContext = context,
apiKey = API_KEY,
merchantLogin = CLIENT_NAME,
bankInvoiceId = BANK_INVOICE_ID,
orderNumber = ORDER_NUMBER,
appPackage = APP_PACKAGE,
language = LANGUAGE
) { paymentResult ->
when (paymentResult) {
is PaymentResult.Success -> {
//do something on success
doOnSuccess()
}
is PaymentResult.Error -> {
//do something on error
doOnError(paymentResult.merchantError)
}
is PaymentResult.Processing -> {
//do something on processing
doOnProcessing();
}
}
}
SPaySdkApp.getInstance().payWithBankInvoiceId(
context,
API_KEY,
CLIENT_NAME,
ORDER_ID,
APP_PACKAGE,
ORDER_NUMBER,
LANGUAGE
paymentResult -> {
if (paymentResult instanceof PaymentResult.Success) {
//do something on success
doOnSuccess();
} else if (paymentResult instanceof PaymentResult.Error) {
//do something on error
doOnError(
((PaymentResult.Error) paymentResult).getMerchantErrors()
);
} else if (paymentResult instanceof PaymentResult.Processing) {
//do something on processing
doOnProcessing();
}
return null;
}
);