Миграция на Яндекс Пэй 2.0

В данном разделе описаны планы миграция со старых версий на новые версии Яндекс Пэй версии 2

План миграции для библиотеки com.yandex.pay:pay

Шаг 1. Обновите зависимость в сборочных файлах build.gradle и синхронизируйте проект

dependencies {
    implementation "com.yandex.pay:pay"
}

Шаг 2. Проверьте библиотеку на совместимость

Если ваш minSdkVersion равен 23 или меньше, то прочитайте пункт о поддержке младших версий устройств

Шаг 3. Используйте YPay вместо YaPay для получения сессии

Используйте новый объект вместе с функцией YPay.getYandexPaymentSession() вместо устаревших YaPay.getPaymentSession().

Примечание

При использовании данной функции на Java вам будет необходимо передать еще один дополнительный параметр sessionKey.

Для Kotlin этот параметр будет необязательным.

Шаг 4. Замените устаревший контракт на новый лаунчер

Используйте новый YPayLauncher вместо регистрации контракта

//old
val launcher = registerForActivityResult(YPayContract()){
    //do something
}
//new
val launcher = YPayLauncher(this){
    //do something
}
//old
ActivityResultLauncher<YPayContractParams> launcher = registerForActivityResult(YPayContract()){
    //do something
}
//new
YPayLauncher launcher = new YPayLauncher(this){
    //do something
}

Шаг 5. Обновите onClickListener для вашей кнопки

Если вы используете кнопку Яндекс Пэй, то вам необходимо обновить слушатель клика, передав в него обновленный ранее YPayLauncher

//old
yPayButton.setOnClickListener(YPayButton.OnClickListener {
    // do something
})
//new
yPayButton.setOnClickListener(newLauncher){
    // do something
}
//old
yPayButton.setOnClickListener(() -> {
    // do something
});
//new
yPayButton.setOnClickListener(launcher, yPayButtonLauncher -> {
    // call yPayButtonLauncher.launch() for launch service
});

Теперь вы можете производить запуск сервиса, используя yPayButtonLauncher

Шаг 5. Обновите данные для контракта

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

Выберите удобный способ проведения оплаты и обновите входные параметры:

//old
val paymentData = PaymentData(...)
//new

//for psp-like
val pspLikePaymentData = PaymentData.PaymentUrlFlowData(...)
//for chekout-like
val checkoutLikePaymentData = PaymentData.CartFlowData(...)
//old
PaymentData paymentData = new PaymentData(...)
//new

//for psp-like
PaymentData pspLikePaymentData = new PaymentData.PaymentUrlFlowData(...)
//for checkout-like
PaymentData checkoutLikePaymentData = new PaymentData.CartFlowData(...)

Шаг 6. Запустите сервис

В зависимости от выбранного вами варианта оплаты и формата запуска - проведите запуск лаунчера

Подробнее про запуск можно узнать из данных пунктов:

Шаг 7. Обработайте результат работы сервиса