
В SDK представлены следующие сценарии оплаты:
На данном этапе в SDK был введен универсальный метод вызова оплаты -
pay, который заменяет под собой все предыдущие способы оплаты.
В ближайшее время планируется оставить только новый метод оплатыpay, старые методы оплаты будут удалены из SDK. На данный момент они уже помечены как Deprecated
Для проведения необходимого для Вас сценария оплаты надо передать в метод pay структуру SPayMethod, а также структуру с параметрами SPaymentRequest
Пример реализации структуры запроса:
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("Неопределенная ошибка")
}
}
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;
}
}];