Оплата без рефреш-токена
Обновлено 11 июля 2024
Сценарий оплаты
В этом режиме авторизация через банк потребуется каждую оплату.
Для автоматической оплаты необходимо воспользоваться методом payWithoutRefresh
. Ниже представлен список параметров метода.
Параметры класса SBankInvoicePaymentRequest, который необходимо передать в запрос
Объект | Тип | Формат | Обязательный | Описание |
---|---|---|---|---|
apiKey | String | ANS..512 | Да | Ключ клиента для работы с сервисами платежного шлюза через SDK |
merchantLogin | String | ANS..512 | Да | Login партнера для работы с сервисами платежного шлюза |
language | String | A2 | Нет | Выбранный язык локализации интерфейсов Пример: RU |
BankInvoiceId | String | ANS..36 | Да | Уникальный номер (идентификатор) заказа в Платежном шлюзе Банка. Необходимо передавать значение sbolBankInvoiceId (передается в externalParams) |
redirectUri | String | ANS..512 | Да | Диплинк, переданный вам вместе c приветственным письмом. Пример: apptest://spay |
orderNumber | String | ANS..36 | Да | Уникальный номер (идентификатор) заказа в системе Клиента Пример: 5f3f7d10-7005-7afe-b756-f73001c896b1 |
Пример инициализации структуры для запроса:
- Swift
- Objective-C
let request = SBankInvoicePaymentRequest(merchantLogin: "Test shop",
bankInvoiceId: bankInvoiceId,
orderNumber: "123add",
redirectUri: "sberPayExampleapp://spay")
SBankInvoicePaymentRequest *request = [[SBankInvoicePaymentRequest alloc] initWithMerchantLogin: @"Test shop"
orderId:@"12312312"
orderNumber:@"123add"
language:nil
redirectUri:@"sberPayExampleapp://spay"];
Вызов метода PayWithoutRefresh
После инициализации структуры запроса необходимо вызвать сам метод payWithoutRefresh
, передать в его параметры созданную ранее структуру и текущий UIViewController
вашего приложения.
- Swift
- Objective-C
SPay.payWithoutRefresh(with: self, with: request) { state, info, localSessionId in
switch state {
case .success:
print("Успешный результат")
case .waiting:
print("Необходимо проверить статус оплаты")
case .cancel:
print("Пользователь отменил оплату")
case .error:
print("(info) - описание ошибки")
@unknown default:
print("Неопределенная ошибка")
}
}
[SPay payWithoutRefreshWith:self with:request completion:^(enum SPayState state, NSString * _Nonnull info, NSString * _Nonnull localSessionId) {
switch(state) {
case SPayStateSuccess:
NSLog(@"Успешный результат");
break;
case SPayStateWaiting:
NSLog(@"Необходимо проверить статус оплаты");
break;
case SPayStateCancel:
NSLog(@"Пользователь отменил оплату");
break;
case SPayStateError:
NSLog(@"%@ - описание ошибки", info);
break;
}
}];