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

Оплата вне SDK iOS

Обновлено 11 июля 2024

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

Схема оплаты

Сценарий ручной оплаты

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

Если клиент продолжил сценарий, то есть выбрал оплатить со SberPay, то для получения PaymentToken необходимо создать структуру для запроса, после чего вызвать метод getPaymentToken. Ниже представлен список параметров для формирования структуры запроса.

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

ОбъектТипФорматОбязательныйОписание
apiKeyStringANS..512ДаКлюч клиента для работы с сервисами платежного шлюза через SDK
clientIdStringANS..36НетИдентификатора плательщика в вашей системе Пример: ac2db5dd-9bd0-441e-a5d9-6d23ce7a1123
clientNameStringANS..512ДаНазвание магазина клиента Пример: Любимый магазин
amountIntN..12ДаСумма операции в минорных единицах Пример: 145566
currencyIntN3ДаЦифровой код валюты операции согласно ISO 4217 Пример: 643
bankInvoiceIdStringANS..36НетУникальный номер (идентификатор) заказа в Платежном шлюзе Банка.
mobilePhoneStringN12НетНомер мобильного телефона Плательщика, если имеется в вашей системе Пример: 79261112233
orderNumberStringANS..36НетУникальный номер (идентификатор) заказа в системе Клиента. Пример: 5f3f7d10-7005-7afe-b756-f73001c896b1
descriptionStringANS..512НетОписание к заказу
languageStringA2НетВыбранный язык локализации интерфейсов Пример: RU
recurrentEnabledBooleanДаПараметр создания платежного токена для реккурентных платежей (true или false) Пример: true
recurrentExpiryStringN8НетДата прекращения действия рекуррентных платежей (формат YYYYMMDD) Пример: 20230821
recurrentFrequencyIntN..2ДаПериод рекуррентных платежей в днях (натуральное число в пределах от 1 до 28) Для нереккурентых платежей значение 0 Пример: 20
redirectUriStringANS..512ДаАдрес вашего приложения, по которому необходимо вернуть пользователя после аутентификации в СберБанк Онлайн Пример: apptest:/
merchantLoginStringANS..512ДаНазвание магазина клиента Пример: Любимый магазин
let request = SPaymentTokenRequest(redirectUri: "sberPayExampleapp://spay",

merchantLogin: "Test shop",

amount: totalCost,

currency: "643",

mobilePhone: nil,

orderNumber: orderId,

recurrentExipiry: "20230821",

recurrentFrequency: 2)

// ⁣или

let request = SPaymentTokenRequest(merchantLogin: "Test shop",

orderId: orderId,

redirectUri: "sberPayExampleapp://spay")

Вызов метода getPaymentToken

После инициализации структуры запроса необходимо вызвать сам метод getPaymentToken, передать в его параметры созданную ранее структуру и текущий UIViewController вашего приложения.

SPay.getPaymentToken(with: self, with: request) { response in

if let error = response.error {

// Обработка ошибки

print("(error.errorDescription) - описание ошибки")

} else {

⁣⁣⁣// Обработка успешно полученных данных

// response.paymentToken - Зашифрованный (Base64) платежный токен

// response.paymentTokenId - Идентификатор платежного токена. Отсутствует, если заполнен paymentToken

// response.tokenExpiration - Срок действия платежного токена в формате UNIX (POSIX) времени

}

}

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

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

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

ОбъектТипФорматОбязательныйОписание
paymentSuccessSPayStateДаРезультат оплаты, полученным Клиентом от платежного шлюза. Возможные значения: SPayState
SPay.completePayment(paymentState: .success) {

// Действия после закрытия шторки

}
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.