В 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;
}
}];