Оплата номером телефона
Реализация сценария оплаты
В данном сценарии используется метод 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("Неопределенная ошибка")
}
}