Использование SDK для приложений iOS

Подключение:

Для подключения SDK необходимо добавить в проект библиотеку libPayOnlineSdk.a и папку PayOnlineSdk, содержащую header-файлы.

Для выполнения платежа:
1. Создать объект конфигурации PayOnlineConfiguration:
Пример кода:

PayOnlineConfiguration *payOnlineConfiguration = [PayOnlineConfiguration configurationWithMerchantId:12345 privateKey: @"12-34-5"];
2. Реализовать методы протокола PayOnlineDelegate:
Пример кода:

@implementation ViewController
...
#pragma mark - PayOnlineDelegate methods
(void)payOnlineSuccess:(PayOnlinePayResponse *)response { // платеж прошел успешно }
(void)payOnlineDeclined:(PayOnlinePayResponse *)response { // платеж отклонен }
// необходима проверка 3DS
(void)payOnlineThreeDsRequired:(PayOnlinePayResponse *)response { // создаем и показываем встроенный браузер WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:webView]; // открываем страницу банка-эмитента во встроенном браузере [self.processing navigateToAcsUrl:response delegate:self webView:webView]; }
(void)payOnlineError:(PayOnlineError *)error { // ошибка }
@end
Для iOS версии 10 и меньше

(void)payOnlineThreeDsRequired:(PayOnlinePayResponse *)response { // создаем и показываем встроенный браузер UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:webView]; // открываем страницу банка-эмитента во встроенном браузере [self.processing navigateToAcsUrl:response delegate:self webView:webView]; }
                                    
3. Создать объект платежа PayOnlinePayRequest:
Пример кода:

PayOnlinePayRequest *payRequest = [[PayOnlinePayRequest alloc] init];
payRequest.email = @"test@payonline.com";
payRequest.cardNumber = @"4444333322221111";
payRequest.ip = @"127.0.0.1";
payRequest.cardExpMonth = 1;
payRequest.cardExpYear = 2015;
payRequest.cardHolderName = @"NAME SURNAME";
payRequest.cardCvv = 123;
payRequest.amount = [NSDecimalNumber decimalNumberWithString:@"120.00"];
payRequest.currency = PayOnlineCurrencyRub;
payRequest.orderId = @"order12345";
4. Создать объект PayOnlineProcessing на основе конфигурации среды выполнения и вызвать метод pay:
Пример кода:

PayOnlineProcessing *processing = [PayOnlineProcessing processingWithConfig:payOnlineConfiguration];
[processing pay:payRequest delegate:payOnlineDelegate];
5. Работа метода pay завершится вызовом одного из методов payOnlineDelegate.