Перейти к основному содержимому

Интеграция SDK

1. Отобразить экран управления сохраненными картами

На картинке ниже пример такого экрана в демо-приложении SDK. Код экрана - на github.

2. Вызвать метод своего бэкенда

Перед показом этого экрана вызовите метод своего бэкенда, созданный по инструкции в Подготовка бэкенда. Затем сохраните customer_access_token в переменную.

// В контроллере экрана управления сохраненными картами
override func viewDidLoad() {
// ...
api.startCardSaving() { result in
switch result {
case .success(let response):
self.customerAccessToken = response.customerAccessToken
// ...
}
}

3. Получение списка сохраненных карт

Вызовите метод получения сохраненных карт пользователя, чтобы отобразить их и сохранить для дальнейшей работы.

Вызовите метод Ioka.shared.getSavedCards(), передав в него customer_access_token.

override func viewDidLoad() {
// ...
api.startCardSaving() { result in
switch result {
case .success(let response):
self.customerAccessToken = response.customerAccessToken

Ioka.shared.getSavedCards(customerAccessToken: customerAccessToken) { result in
switch result {
case .success(let savedCards):
self.savedCards = savedCards
self.updateInterface()
// ...
}
// ...
}
}

4. Отобразить сохраненные карты

Отобразите сохраненные карты в своем интерфейсе. Например, как было показано в пункте (1).

Для получения иконки типа карты (Mastercard, Visa) и иконки банка-эмитента используйте свойства paymentSystemIcon и emitterIcon в объекте SavedCard:

// Отображаемая карта
let savedCard = ...

paymentSystemImageView.image = savedCard.paymentSystemIcon
emitterImageView.image = savedCard.emitterIcon

5. Удаление сохраненной карты

При нажатии на кнопку удаления сохраненной карты, вызовите соответствующий метод SDK.

Используйте метод deleteSavedCard(). Необходимо передать customer_access_token и id карты, которую нужно удалить.

// Выбранная пользователем карта
let savedCard = ...

Ioka.shared.deleteSavedCard(customerAccessToken: customerAccessToken, cardId: savedCard.id) { error in
if let error = error {
// Отобразите ошибку в своём интерфейсе
} else {
// Удалите карту из списка
}
}

6. Сохранение новой карты

При нажатии на кнопку сохранения новой карты, вызовите соответствующий метод SDK. Метод отображает форму ввода данных карты, результат сохранения карты и при необходимости форму 3DSecure.

После того, как пользователь закрывает экран результата, результат передаётся вам, чтобы вы могли его обработать.

Вызовите метод startSaveCardFlow(). В параметрах необходимо передать sourceViewController и customerAccessToken. В completion передаётся параметр result типа FlowResult.

Ioka.shared.startSaveCardFlow(sourceViewController: self, customerAccessToken: customerAccessToken) { result in
switch result {
case .succeeded:
// Ваша логика для успешного сохранения карты. Например, обновление списка сохраненных карт.
case .failed(let error):
// Ваша логика для неудачного сохранения карты.
case .cancelled:
// Ваша логика для закрытия пользователем экрана сохранения карты.
}
}

Экраны, которые отображаются в рамках сценария сохранения карты в ioka SDK: