Начало работы с SDK
Требования
Для использования SDK нужно соблюдать следующие требования:
Xcode 13+;
Версия iOS 12.0 и более поздние.
Реализация сценария
Для корректной работы SDK в файле info.plist приложения должны быть добавлены следующие параметры:
<key>DTXAutoStart</key>
<string>false</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sbolidexternallogin</string>
<string>sberbankidexternallogin</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Подключение SDK к проекту
SPM
Перейдите в файл вашего проекта, во вкладке Package dependancies
нажмите +
и в строке поиска введите ссылку на репозиторий, переданную вам с договором, и добавьте пакет SDK в свое приложение.
Cocoapods
Для подключения SDK к проекту с помощью cocoapods:
Откройте свой проект в Xcode.
Создайте подфайл, запустив
pod init
в терминале или используя меню File и выбрав New File → Podfile.Добавьте модули, которые вы хотите использовать, в файл
Podfile
.Сохраните Podfileи запустите
pod install
в Терминале, чтобы установить модули.Закройте свой проект в Xcode и откройте файл .xcworkspace, созданный после запуска
pod install
.
Бинарный артефакт
Перетащите файл переданный вам с договором в Frameworks, Libraries, and Embedded Content
, а также выставите Embed & Sign
.
Настройка проекта
Для успешной авторизации в среде банка необходимо в настройках таргета проекта зарегистрировать deeplink
вашего приложения.
Добавьте Access wi-fi information
в Capabilities таргета вашего проекта.
Для этого выберите ваш таргет → Signing & Capabilities → +Capability → Access wi-fi information.
Начало работы
Импортируйте модуль SPaySdk в проект
Импортирование модуля на Swift
import SPaySdk
Импортирование модуля на Objective-C
#import "SPaySdk.h"
В AppDelegate вашего проекта в методе didFinishLaunchingWithOptions необходимо реализовать функцию setup
. Параметры функции преставлены ниже.
Параметр | Тип | Дефолтное значение | Описание |
---|---|---|---|
apiKey | String | нет | Ключ клиента для работы с сервисами платежного шлюза через SDK |
bnplPlan | Bool | true | Функционал Оплата частями |
environment | SEnvironment | prod | Выбор окружения sdk для тестирования |
Реализация метода setup на Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: \[UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let window = UIWindow(frame: UIScreen.main.bounds)
self.window = window
SPay.setup(apiKey: "", bnplPlan: true, environment: .prod)
return true
}
Реализация метода setup на Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[SPay setupWithApiKey:@"" bnplPlan:true environment: SEnvironmentProd completion:nil];
return YES;
}
После чего необходимо реализовать в AppDelegate
вашего проекта метод getAuthURL
как показано ниже.
Реализация метода getAuthURL на Swift
func application(_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
if url.scheme == "sberPayExampleapp" && url.host == "sberidauth" {
SPay.getAuthURL(url)
}
return true
}
Реализация метода getAuthURL на Objective-C
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> )options {
if ([url.scheme isEqualToString:@"sberPayExample.app"] && [url.host isEqualToString:@"sberidauth"])
{
[SPay getAuthURL: url];
}
return YES;
}
Проверка готовности оплаты
Для проверки наличия установленного мобильного приложения банка на устройстве необходимо вызывать метод isReadyForSPay
.
Проверка установленного мобильного приложения банка на Swift
SPay.isReadyForSPay
Проверка установленного мобильного приложения сбанка на Objective-C
SPay.isReadyForSrPay
Если на устройстве установлено мобильное приложение банка, то метод вернет ответ true
и можно будет отрисовать кнопку оплаты.
Отрисовка кнопки оплаты
Для отрисовки кнопки оплаты необходимо инициализиорать компонент SPButton
.
Инициализация кнопки оплаты на Swift
let button = SPButton() button.tapAction = {
// обработка нажатия
}
Инициализация кнопки оплаты на Objective-C
SPButton button = [[SPButton alloc] init]; button.tapAction = \^{
// обработка нажатия
};