Ошибка библиотеки выставления счетов 6.0 «пользователь не имеет права» при обновлении ⇐ Android
Ошибка библиотеки выставления счетов 6.0 «пользователь не имеет права» при обновлении
Я настроил две подписки, каждая из которых имеет один базовый план, вот так
SubsA -> Ежемесячный базовый план A
SubsB -> Годовой базовый план B
Я могу успешно приобрести каждый из них. Итак, моя тестовая установка работает правильно.
Однако, когда я купил ежемесячную подписку и настроил переход на годовую подписку, я получаю сообщение об ошибке «Пользователь не имеет права на этот продукт».
Мой код (обновления) выглядит следующим образом:
var billingFlowParams = BillingFlowParams.newBuilder() .setObfuscatedAccountId(UUID.randomUUID().toString()) .setProductDetailsParamsList( listOf(BillingFlowParams.ProductDetailsParams.newBuilder() .setProductDetails(список товаров[productId]!!.productDetails!!) .setOfferToken(productlist[productId]!!.offerToken!!).build() ) ) .setSubscriptionUpdateParams( BillingFlowParams.SubscriptionUpdateParams.newBuilder() // PurchaseToken можно найти в Purchase#getPurchaseToken .setOldPurchaseToken(список товаров["subscription_yearly"]!!.purchaseToken!!) .setSubscriptionReplacementMode(ReplacementMode.WITH_TIME_PRORATION) .строить() ).строить() val billingResult = billingClient.launchBillingFlow(this, billingFlowParams) if(billingResult.responseCode != BillingClient.BillingResponseCode.OK) { showBillingClientError(billingResult.responseCode) } Я проверил, что мой (новый) OfferToken и (старый) PurchaseToken верны. Обратите внимание, что я сохранил свои продукты/покупки/токены, которые возвращаются из queryProductDetailsAsync() и queryPurchasesAsync(), в списке продуктов.
Что я пропустил?
Я настроил две подписки, каждая из которых имеет один базовый план, вот так
SubsA -> Ежемесячный базовый план A
SubsB -> Годовой базовый план B
Я могу успешно приобрести каждый из них. Итак, моя тестовая установка работает правильно.
Однако, когда я купил ежемесячную подписку и настроил переход на годовую подписку, я получаю сообщение об ошибке «Пользователь не имеет права на этот продукт».
Мой код (обновления) выглядит следующим образом:
var billingFlowParams = BillingFlowParams.newBuilder() .setObfuscatedAccountId(UUID.randomUUID().toString()) .setProductDetailsParamsList( listOf(BillingFlowParams.ProductDetailsParams.newBuilder() .setProductDetails(список товаров[productId]!!.productDetails!!) .setOfferToken(productlist[productId]!!.offerToken!!).build() ) ) .setSubscriptionUpdateParams( BillingFlowParams.SubscriptionUpdateParams.newBuilder() // PurchaseToken можно найти в Purchase#getPurchaseToken .setOldPurchaseToken(список товаров["subscription_yearly"]!!.purchaseToken!!) .setSubscriptionReplacementMode(ReplacementMode.WITH_TIME_PRORATION) .строить() ).строить() val billingResult = billingClient.launchBillingFlow(this, billingFlowParams) if(billingResult.responseCode != BillingClient.BillingResponseCode.OK) { showBillingClientError(billingResult.responseCode) } Я проверил, что мой (новый) OfferToken и (старый) PurchaseToken верны. Обратите внимание, что я сохранил свои продукты/покупки/токены, которые возвращаются из queryProductDetailsAsync() и queryPurchasesAsync(), в списке продуктов.
Что я пропустил?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение