Как перейти на Pay SDK
В принципах функционирования Pay SDK есть отличия от billingClient SDK.
В этом разделе собран список ключевых изменений по сравнению с billingClient SDK, на которые важно обратить внимание. Все подробности с примерами кода вы можете найти в документации для конкретной версии Pay SDK.
Список зависимостей
У Pay SDK сократился список зависимостей.
Подключение в проект
При подключения зависимости учитывайте отличие в названии SDK (pay
вместо billingclient
):
- BillingClient SDK:
implementation("ru.rustore.sdk:billingclient")
. - Pay SDK:
implementation("ru.rustore.sdk:pay")
.
Инициализация
Изменился способ указания consoleApplicationId
при инициализации:
- BillingClient SDK: в файле
build.gradle
необходимо вызывать методRuStoreBillingClientFactory.create()
и внутрь данного метода передатьconsoleApplicationId
. - Pay SDK: в файле
manifest.xml
необходимо прописатьmeta-data
с указаниемconsole_app_id_key
. ПараметрыdeeplinkScheme
,themeProvider
,externalPaymentLoggerFactory
иdebugLogs
не указываются.
Проверка доступности работы с платежами
-
Изменился метод проверки доступности работы с платежами:
- BillingClient SDK:
RuStoreBillingClient.Companion.checkPurchasesAvailability()
. - Pay SDK:
RuStorePayClient.getPurchaseInteractor().getPurchaseAvailability()
.
- BillingClient SDK:
-
Поменялись ответы метода:
- BillingClient SDK:
FeatureAvailabilityResult.Available
иFeatureAvailabilityResult.Unavailable(val cause: RuStoreException)
. - Pay SDK:
PurchaseAvailabilityResult.Available
иPurchaseAvailabilityResult.Unavailable(val cause: Throwable)
.
- BillingClient SDK:
Получение списка продуктов
-
В Pay SDK получение списка продуктов не требует авторизации пользователя.
-
Вы можете запрашивать до 1000 элементов за один запрос, в то время как в billingClient SDK — до 100.
-
Изменился метод получения списка продуктов:
- BillingClient SDK:
billingClient.products productsUseCase.getProducts()
. - Pay SDK:
RuStorePayClient.getProductInteractor().getProducts()
.
- BillingClient SDK:
-
В возвращаемой модели продукта поменялась структура. В следующей таблице приведены списки полей, которые возвращают оба SDK. Описание полей см. в документации billingClient SDK и Pay SDK.
BillingClient SDK | Pay SDK |
---|---|
productId | productId |
productType | type |
productStatus | — |
priceLable | amountLabel |
price | price |
currency | currency |
language | — |
title | title |
description | description |
imageUrl | imageUrl |
promoImageUrl | — |
subscription | — |
Получение списка покупок
Изменился метод получения списка покупок:
- BillingClient SDK:
billingClient.purchases purchasesUseCase.getPurchases()
. - Pay SDK:
RuStorePayClient.getPurchaseInteractor().getPurchases()
.
Получение сведений о покупке
-
Изменился метод получения сведений о покупке:
- BillingClient SDK:
billingClient.purchases purchasesUseCase.getPurchaseInfo()
. - Pay SDK:
RuStorePayClient.getPurchaseInteractor().getPurchase()
.
- BillingClient SDK:
-
В возвращаемой модели покупки поменялась структура. В следующей таблице приведены списки полей, которые возвращают оба SDK. Описание полей см. в документации billingClient SDK и Pay SDK.
BillingClient SDK | Pay SDK |
---|---|
purchaseId | purchaseId |
productId | productId |
invoiceId | invoiceId |
language | — |
purchaseTime | purchaseTime |
orderId | orderId |
— | purchaseType |
— | productType |
— | description |
amountLable | amountLable |
amount | price |
currency | currency |
quantity | quantity |
purchaseState | Status |
developerPayload | developerPayload |
subscriptionToken | subscriptionToken |
-
Изменилась статусная модель покупки (
Status
) и список возможных статусов.Теперь нет отдельных статусных моделей для потребляемых или непотребляемых продуктов. Вместо них используются модели покупки по одностадийной и двухстадийной оплате.
В следующей таблице приведены возможные статусы для каждого SDK. Описание статусной модели и значения статусов см. в документации billingClient SDK и Pay SDK.
BillingClient SDK | Pay SDK |
---|---|
CREATED | — |
INVOICE_CREATED | INVOICE_CREATED |
PAID | PAID |
CONFIRMED | CONFIRMED |
CONSUMED | — |
CANCELLED | CANCELLED |
PAUSED | — |
TERMINATED | — |
— | PROCESSING |
— | EXPIRED |
— | REJECTED |
— | REVERSED |
— | REFUNDED |