SberPaySdkIOSDoc

Бординг | Регистрация заказов в платежном шлюзе Сбера | Начало работы | Сценарии оплаты через SDK | Работа в режиме посочницы | Вспомогательные структуры данных | Актуальная версия SDK | Поддержка | FAQ


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

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


Доступные сценарии оплаты

В SDK представлены следующие сценарии оплаты:


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

На данном этапе в SDK был введен универсальный метод вызова оплаты - pay, который заменяет под собой все предыдущие способы оплаты.
В ближайшее время планируется оставить только новый метод оплаты pay, старые методы оплаты будут удалены из SDK. На данный момент они уже помечены как Deprecated

Для проведения необходимого для Вас сценария оплаты надо передать в метод pay структуру SPayMethod, а также структуру с параметрами SPaymentRequest

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

Swift

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

SPay.pay(view: self,
         method: method,
         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("Неопределенная ошибка")
    }
}

Objective-C

SPaymentRequest *request = [[SPaymentRequest alloc] initWithapiKey: @"Your API key"
bankInvoiceId:@"12312312"
orderNumber:@"123add"
merchantLogin:@"Test shop"
redirectUri:@"sberPayExampleapp://spay",
bindingId:nil];

[SPay payWith:self method: method with:request completion:^(enum SPayState state, NSString * _Nonnull bankInvoiceId, NSString * _Nonnull localSessionId, NSString * _Nonnull info) {

switch(state) {
    case SPayStateSuccess: NSLog(@"Успешный результат");
    break;
    case SPayStateWaiting: NSLog(@"Необходимо проверить статус оплаты");
    break;
    case SPayStateCancel: NSLog(@"Пользователь отменил оплату");
    break;
    case SPayStateError: NSLog(@"%@ - описание ошибки", info);
    break;
}
}];