EcomSdkIOSDoc

Регистрация заказов в платежном шлюзе Сбера | Начало работы | Сценарий оплаты | Работа в режиме песочницы | Вспомогательные структуры данных | Актуальная версия SDK | Поддержка


Начало работы

Xcode 14+
Версия iOS 14.0 и более поздние


Подключение SDK к проекту

Настройка info.plist

Для корректной работы SDK в файле info.plist приложения должны быть добавлены следующие параметры

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>gate1.spaymentsplus.ru</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
        </dict>
    </dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Данные о местонахождении собираются и отправляются на сервер для безопасного проведения оплаты</string>

NSLocationWhenInUseUsageDescription - Если у вас уже используется этот параметр, то дублировать его не нужно

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

Подключите SDK одним из удобных Вам способов: SPM / Бинарный артефакт

SPM

dependencies: [
    .package(url: "https://github.com/sdkpay/EcomSdkPackage", .upToNextMajor(from: "1.1.7"))
]

Binary artifact

Подключить SDK для успешной работы также можно с помощью бинарного артефакта. Перетащите скачанный файл EcomSdk.xcframework в Frameworks, Libraries, and Embedded Content, а также выставите у зависимости параметр Embed & Sign


Настройка SDK

Для инициализации SDK необходимо вызвать метод setup и передать в него список параметров, указанных в таблице ниже

Параметр Дефолтное значение Описание
paymentConfig SPaymentConfig(card = true, bindings = true, sbp = true) Класс содержащий список доступных способов оплаты. Структура SPaymentConfig
environment SEnvironment.prod Стенд для работы с SDK, подробнее работа со стендами описана в разделе “Работа в режиме песочницы”
resultViewNeeded true С помощью данного параметра можно отключить отображение экрана статуса операции
completion ((EcomError?) -> Void)? Блок, отрабатыващий после инициализации SDK.
Структура EcomError

Swift

import EcomSdk

Ecom.setup(
    paymentConfig: SPaymentConfig = SPaymentConfig(),
    environment: SEnvironment = .prod,
    resultViewNeeded: Bool = true,
    completion: ((EcomError?) -> Void)? = nil
)

Objective-C

#import <EcomSdk/EcomSdk.h>

[Ecom setupWithPaymentConfig: paymentConfig
                              enviroment: SEnvironmentProd
                              resultViewNeeded: true
                              completion: nil]

Дополнительно, при инициализации SDK совместно с SPaySDK

Для корректной работы SPaySDK внутри SDK, необходимо реализовать метод getAuthURL и передать в него параметр url из метода application реализуемого в классе AppDelegate

func application(_ app: UIApplication,
                open url: URL,
                options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
    Ecom.getAuthURL(url)
    return true
}