My Android -приложение объединяет Revenuecat SDK V8.3.1 и предлагает несколько уровней подписки для пользователей. Ошибка в заголовке происходит для некоторых пользователей. Насколько я признал, среди тысяч пользователей два пользователя. (Это в производственной среде, а не что-то вроде проблемы с тестовым пользователем) Представленные аргументы недействительны. < /p>
< /blockquote>
Фактический код функции называется, когда пользователь пытается обновить их Подписка: < /p>
fun selectSubscriptionPlan(activity: Activity, product: StoreProduct) {
if (uiState.value.isPurchasing) return
viewModelScope.launch {
if (Purchases.sharedInstance.isAnonymous) {
// Block to purchase if the signing-in to RevenueCat has never succeeded even at this point.
_effect.emit(Effect.DisplayErrorMessage(activity.getString(R.string.message_anonymous_user)))
return@launch
}
try {
val params = PurchaseParams.Builder(activity, product)
// To ensure the uiState.value.activeSubscriptionProduct is up to date.
fetchCustomerInfo()
uiState.value.activeSubscriptionProduct?.let { currentSubscription ->
if (product != currentSubscription) {
val currentProductId = currentSubscription.id.split(":").first()
val newProductId = product.id.split(":").first()
val isCrossGrade = currentProductId == newProductId
val isUpgrade =
pricePerYear(product) > pricePerYear(currentSubscription)
val replacementMode = if (isCrossGrade) {
GoogleReplacementMode.WITHOUT_PRORATION
} else if (isUpgrade) {
GoogleReplacementMode.CHARGE_PRORATED_PRICE
} else {
GoogleReplacementMode.DEFERRED
}
params.googleReplacementMode(replacementMode)
params.oldProductId(currentProductId)
FirebaseCrashlytics.getInstance()
.log("Parameters: currentProductId=$currentProductId, newProductId=$newProductId, isCrossGrade=$isCrossGrade, isUpgrade=$isUpgrade, replacementMode=$replacementMode")
}
}
_uiState.value = uiState.value.copy(isPurchasing = true)
val result = Purchases.sharedInstance.awaitPurchase(params.build())
if (result.customerInfo.activeSubscriptions.contains(product.id)) {
_effect.emit(Effect.DisplaySuccessMessage(message = activity.getString(R.string.message_purchase_succeeded)))
updateSubscriptionStatus(isSubscribed = true)
fetchCustomerInfo()
}
} catch (e: PurchasesTransactionException) {
if (!e.userCancelled) {
_effect.emit(Effect.DisplayErrorMessage(e.message))
}
FirebaseCrashlytics.getInstance().recordException(e)
} finally {
_uiState.value = uiState.value.copy(isPurchasing = false)
}
}
}
< /code>
Я могу заметить, что журнал, который я вкладываю в Crashlytics, когда возникает ошибка, говорит о действительных идентификаторах производства, а режим замены также должен быть действительным. < /p>
Parameters: currentProductId=airfriend_pro, newProductId=airfriend_mega, isCrossGrade=false, isUpgrade=true, replacementMode=CHARGE_PRORATED_PRICE
Я также прошу пользователя 1) проверить их метод оплаты в их учетной записи Google, а также 2) регистрация/регистрация в учетную запись Google снова, но он говорит о проблеме Останки. Non-fatal Exception: com.revenuecat.purchases.PurchasesTransactionException: One or more of the arguments provided are invalid.
at com.revenuecat.purchases.CoroutinesExtensionsCommonKt$awaitPurchase$2$2.invoke(CoroutinesExtensionsCommon.kt:60)
at com.revenuecat.purchases.CoroutinesExtensionsCommonKt$awaitPurchase$2$2.invoke(CoroutinesExtensionsCommon.kt:55)
at com.revenuecat.purchases.ListenerConversionsCommonKt$purchaseCompletedCallback$1.onError(ListenerConversionsCommon.kt:22)
at com.revenuecat.purchases.PurchasesOrchestrator$dispatch$1.invoke(PurchasesOrchestrator.kt:944)
at com.revenuecat.purchases.PurchasesOrchestrator$dispatch$1.invoke(PurchasesOrchestrator.kt:943)
at com.revenuecat.purchases.PurchasesOrchestrator.dispatch$lambda$17(PurchasesOrchestrator.kt:845)
at androidx.appcompat.widget.TooltipCompatHandler$$ExternalSyntheticLambda0.run(R8$$SyntheticClass:9)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:9063)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Подробнее здесь: https://stackoverflow.com/questions/794 ... igher-tier
«Один или несколько из предоставленных аргументов недействительны» при обновлении до более высокого уровня через Revenue ⇐ Android
Форум для тех, кто программирует под Android
1740544740
Anonymous
My Android -приложение объединяет Revenuecat SDK V8.3.1 и предлагает несколько уровней подписки для пользователей. Ошибка в заголовке происходит для некоторых пользователей. Насколько я признал, среди тысяч пользователей два пользователя. (Это в производственной среде, а не что-то вроде проблемы с тестовым пользователем) Представленные аргументы недействительны. < /p>
< /blockquote>
Фактический код функции называется, когда пользователь пытается обновить их Подписка: < /p>
fun selectSubscriptionPlan(activity: Activity, product: StoreProduct) {
if (uiState.value.isPurchasing) return
viewModelScope.launch {
if (Purchases.sharedInstance.isAnonymous) {
// Block to purchase if the signing-in to RevenueCat has never succeeded even at this point.
_effect.emit(Effect.DisplayErrorMessage(activity.getString(R.string.message_anonymous_user)))
return@launch
}
try {
val params = PurchaseParams.Builder(activity, product)
// To ensure the uiState.value.activeSubscriptionProduct is up to date.
fetchCustomerInfo()
uiState.value.activeSubscriptionProduct?.let { currentSubscription ->
if (product != currentSubscription) {
val currentProductId = currentSubscription.id.split(":").first()
val newProductId = product.id.split(":").first()
val isCrossGrade = currentProductId == newProductId
val isUpgrade =
pricePerYear(product) > pricePerYear(currentSubscription)
val replacementMode = if (isCrossGrade) {
GoogleReplacementMode.WITHOUT_PRORATION
} else if (isUpgrade) {
GoogleReplacementMode.CHARGE_PRORATED_PRICE
} else {
GoogleReplacementMode.DEFERRED
}
params.googleReplacementMode(replacementMode)
params.oldProductId(currentProductId)
FirebaseCrashlytics.getInstance()
.log("Parameters: currentProductId=$currentProductId, newProductId=$newProductId, isCrossGrade=$isCrossGrade, isUpgrade=$isUpgrade, replacementMode=$replacementMode")
}
}
_uiState.value = uiState.value.copy(isPurchasing = true)
val result = Purchases.sharedInstance.awaitPurchase(params.build())
if (result.customerInfo.activeSubscriptions.contains(product.id)) {
_effect.emit(Effect.DisplaySuccessMessage(message = activity.getString(R.string.message_purchase_succeeded)))
updateSubscriptionStatus(isSubscribed = true)
fetchCustomerInfo()
}
} catch (e: PurchasesTransactionException) {
if (!e.userCancelled) {
_effect.emit(Effect.DisplayErrorMessage(e.message))
}
FirebaseCrashlytics.getInstance().recordException(e)
} finally {
_uiState.value = uiState.value.copy(isPurchasing = false)
}
}
}
< /code>
Я могу заметить, что журнал, который я вкладываю в Crashlytics, когда возникает ошибка, говорит о действительных идентификаторах производства, а режим замены также должен быть действительным. < /p>
Parameters: currentProductId=airfriend_pro, newProductId=airfriend_mega, isCrossGrade=false, isUpgrade=true, replacementMode=CHARGE_PRORATED_PRICE
Я также прошу пользователя 1) проверить их метод оплаты в их учетной записи Google, а также 2) регистрация/регистрация в учетную запись Google снова, но он говорит о проблеме Останки. Non-fatal Exception: com.revenuecat.purchases.PurchasesTransactionException: One or more of the arguments provided are invalid.
at com.revenuecat.purchases.CoroutinesExtensionsCommonKt$awaitPurchase$2$2.invoke(CoroutinesExtensionsCommon.kt:60)
at com.revenuecat.purchases.CoroutinesExtensionsCommonKt$awaitPurchase$2$2.invoke(CoroutinesExtensionsCommon.kt:55)
at com.revenuecat.purchases.ListenerConversionsCommonKt$purchaseCompletedCallback$1.onError(ListenerConversionsCommon.kt:22)
at com.revenuecat.purchases.PurchasesOrchestrator$dispatch$1.invoke(PurchasesOrchestrator.kt:944)
at com.revenuecat.purchases.PurchasesOrchestrator$dispatch$1.invoke(PurchasesOrchestrator.kt:943)
at com.revenuecat.purchases.PurchasesOrchestrator.dispatch$lambda$17(PurchasesOrchestrator.kt:845)
at androidx.appcompat.widget.TooltipCompatHandler$$ExternalSyntheticLambda0.run(R8$$SyntheticClass:9)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:9063)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Подробнее здесь: [url]https://stackoverflow.com/questions/79465828/one-or-more-of-the-arguments-provided-are-invalid-on-upgrading-to-higher-tier[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия