Настройка окружения
Важно
Поддерживаемая версия Android SDK: 7.0 и выше.
Если ваш проект имеет minSdkVersion 23 или ниже, см. Настройка для устройств с версией ниже 7.0.
Перед началом интеграции нужно получить и добавить в проект несколько идентификаторов:
- Merchant ID
- SHA256 Fingerprints
- Client ID (
YANDEX_CLIENT_ID
) - Android package name (
applicationId
)
Шаг 1. Получите необходимые идентификаторы
-
Получите значение хеша SHA256 Fingerprints с помощью утилиты
keytool
:keytool -list -v -alias <your-key-name> -keystore <path-to-production-keystore>
После ввода команды значение хеша отобразится в блоке
Certificate fingerprints: SHA256
. -
Для регистрации приложения перейдите в сервис Яндекс OAuth.
-
В поле Название вашего сервиса укажите название, которое будет видно пользователям на экране авторизации.
-
В разделе Платформы приложения выберите Android-приложение и укажите его параметры:
- Android package name — уникальное имя приложения из
applicationId
в конфигурационном файле проекта; - SHA256 Fingerprints — значение хеша SHA256, полученное в пункте 1.
- Android package name — уникальное имя приложения из
-
Убедитесь, что на Яндекс OAuth у вашего приложения добавлен доступ к Яндекс Пэй. Для этого в блоке Доступ к данным в поле Название доступа выберите Оплата через Yandex Pay.
-
Нажмите кнопку Создать приложение и скопируйте значение поля Client ID.
-
На странице Настройки личного кабинета Яндекс Пэй укажите значения Client ID, SHA256 и Android package name в полях Client ID, SHA256 Fingerprint и Android package name соответственно.
Шаг 2. Подключите Client ID
Укажите полученный Client ID в сборочном скрипте build.gradle
в manifestPlaceholders
в качестве значения YANDEX_CLIENT_ID
:
android {
defaultConfig {
manifestPlaceholders = [
// Подставьте ваш Client ID
YANDEX_CLIENT_ID: "12345678901234567890",
]
}
}
Шаг 3. Инициализируйте FirebaseApp во всех процессах приложения
Мобильный SDK использует службы AppMetrica, которые необходимы для стабильной работы SDK. Этот шаг позволяет исправить проблемы совместимости сервисов Firebase и сервисов метрик.
При использовании Firebase вместе с Яндекс Пэй SDK необходимо вызывать FirebaseApp.initialize(context)
во всех процессах приложения.
Если вы используете AppMetrica в своем приложении, активировать YandexMetrica необходимо после инициализации Firebase.
Пример
// don`t forget declare MyApplication in AndroidManifest.xml in <application/> block using android:name
class MyApplication: Application() {
override fun onCreate() {
// inited at every app processes
FirebaseApp.initializeApp(this)
}
}
Подробнее о взаимодействии можно прочитать в статье AppMetrica stopped working after Firebase was updated.
Настройка для устройств с версией ниже 7.0
Владельцы устройств с версиями Android 7.0 (API 24 lvl) и выше могут пользоваться SDK Яндекс Пэй без ограничений. Для устройств с версиями ниже 7.0 возможности ограничены:
- нет официальной поддержки;
- ограничен функционал библиотеки SDK;
- потребуется дополнительная настройка окружения по шагам ниже.
-
Подключите дистрибутив библиотеки SDK в
build.gradle
вашего проекта:dependencies{ ... implementation "com.yandex.pay:*pay/token/other*:*version*" ... }
-
Синхронизируйте проект и попробуйте собрать его. У вас должна появиться ошибка слияния манифестов:
Manifest merger failed : uses-sdk:minSdkVersion *Your min version* cannot be smaller than version 24 declared in library
-
Откройте AndroidManifest.xml файл того модуля, в котором вы подключаете зависимость и перечислите все библиотеки, попадающие в эту ошибку.
Пример:
<manifest xmlns:tools="http://schemas.android.com/tools"> <uses-sdk tools:overrideLibrary="com.yandex.pay, ...* other libraries *... ,com.yandex.pay.base"/> </manifest>
-
Проверьте доступность поддержки SDK через объект YPay и инициализируйте все необходимые компоненты после проверки:
if (YPay.isSupported){ // init Yandex pay } else { // do some other logic }
Важно
Проверяйте доступность
YPay.isSupported
при каждом обращении к SDK Яндекс Пэй.