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

Оплата номером телефона

Обновлено 10 августа 2026

Реализация сценария оплаты

В данном сценарии используется метод pay с параметром SPayMethod.withPhoneNumber(paymentTool:). Сценарий позволяет провести оплату, авторизовав пользователя только по номеру мобильного телефона, без привязки к логину/паролю СберID. SDK сам покажет пользователю экран подтверждения по номеру и авторизует его.

Метод SPayMethod.withBinding отмечен как deprecated.

Для проведения оплаты мерчант должен передать номер телефона пользователя в SPaymentRequest.phoneNumber — без этого поля сценарий недоступен. Фича-тогл phoneAuth должен быть включён на стороне бэкенда для мерчанта (уточнить у команды SDK, если сценарий не активируется). Для метода оплаты необходимо передать в качестве параметра инструмент для оплаты paymentTool. В Данном случае необходимо указать paymentTool = SPaymentTool.cards.

Пример реализации структуры запроса:

let request = SPaymentRequest(
apiKey: "Your API key",
bankInvoiceId: bankInvoiceId,
orderNumber: "Your order number",
merchantLogin: "Test shop",
redirectUri: "sberPayExampleapp://spay",
phoneNumber: "79261234567"
)

SPay.pay(
view: self,
method: .withPhoneNumber(paymentTool: .cards),
request: request
) { state, bankInvoiceId, localSessionId, info in

switch state {
case .success: print("Успешный результат")
case .waiting: print("Необходимо проверить статус оплаты")
case .cancel: print("Пользователь отменил оплату")
case .error: print("\(info) - описание ошибки")
@unknown default: print("Неопределенная ошибка")
}
}

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней