Настройка окружения

Важно

Поддерживаемая версия Android SDK: 7.0 и выше.

Если ваш проект имеет minSdkVersion 23 или ниже, см. Настройка для устройств с версией ниже 7.0.

Перед началом интеграции нужно получить и добавить в проект несколько идентификаторов:

  • Merchant ID
  • SHA256 Fingerprints
  • Client ID (YANDEX_CLIENT_ID)
  • Android package name (applicationId)

Шаг 1. Получите необходимые идентификаторы

  1. Получите значение хеша SHA256 Fingerprints с помощью утилиты keytool:

    keytool -list -v -alias <your-key-name> -keystore <path-to-production-keystore>
    

    После ввода команды значение хеша отобразится в блоке Certificate fingerprints: SHA256.

  2. Для регистрации приложения перейдите в сервис Яндекс OAuth.

  3. В поле Название вашего сервиса укажите название, которое будет видно пользователям на экране авторизации.

  4. В разделе Платформы приложения выберите Android-приложение и укажите его параметры:

    • Android package name — уникальное имя приложения из applicationId в конфигурационном файле проекта;
    • SHA256 Fingerprints — значение хеша SHA256, полученное в пункте 1.
  5. Убедитесь, что на Яндекс OAuth у вашего приложения добавлен доступ к Яндекс Пэй. Для этого в блоке Доступ к данным в поле Название доступа выберите Оплата через Yandex Pay.

  6. Нажмите кнопку Создать приложение и скопируйте значение поля Client ID.

  7. На странице Настройки личного кабинета Яндекс Пэй укажите значения 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;
  • потребуется дополнительная настройка окружения по шагам ниже.
  1. Подключите дистрибутив библиотеки SDK в build.gradle вашего проекта:

    dependencies{
        ...
        implementation "com.yandex.pay:*pay/token/other*:*version*"
        ...
    }
    
  2. Синхронизируйте проект и попробуйте собрать его. У вас должна появиться ошибка слияния манифестов:

    Manifest merger failed : uses-sdk:minSdkVersion *Your min version* cannot be smaller than version 24 declared in library
    
  3. Откройте AndroidManifest.xml файл того модуля, в котором вы подключаете зависимость и перечислите все библиотеки, попадающие в эту ошибку.

    Пример:

    <manifest xmlns:tools="http://schemas.android.com/tools">
        <uses-sdk tools:overrideLibrary="com.yandex.pay, ...* other libraries *... ,com.yandex.pay.base"/>
    </manifest>
    
  4. Проверьте доступность поддержки SDK через объект YPay и инициализируйте все необходимые компоненты после проверки:

    if (YPay.isSupported){
        // init Yandex pay
    } else {
        // do some other logic
    }
    

    Важно

    Проверяйте доступность YPay.isSupported при каждом обращении к SDK Яндекс Пэй.

Предыдущая
Следующая