Revenuecat,Flutter - PurchasePackage 不起作用,但没有例外

Posted

技术标签:

【中文标题】Revenuecat,Flutter - PurchasePackage 不起作用,但没有例外【英文标题】:Revenuecat, Flutter - PurchasePackage does not work, but there are no exceptions 【发布时间】:2021-02-10 03:21:02 【问题描述】:

这是场景:

    沙盒用户购买了订阅,但已过期。 沙盒用户尝试再次购买相同的订阅。

Apple 的 IAP UX 未触发,并且 PurchaserInfo 对象返回时没有新的购买和新的权利。没有抛出异常。

在购买者信息对象中,我看到了旧的权利和过期的订阅。

我在这里错过了什么?

【问题讨论】:

您找到解决方案了吗?我遇到了同样的问题,我正在使用最新版本的插件和颤振。在 RCs github 页面上没有任何帮助。 【参考方案1】:

对于不同的场景,我面临同样的问题。 有时“purchasePackage”方法成功,有时不返回。不抛出异常,不显示产品的底页。如果再次点击购买按钮,我会得到PurchasesErrorCode.operationAlreadyInProgressError。沙盒用户和普通用户都会遇到这种情况。

在日志中我看到purchase started,仅此而已。

【讨论】:

是的。完全相同的问题。 请问您使用的是哪些插件?这可能是插件之间的冲突。 identify 方法也有同样的问题,因为插件冲突。我用超时修复了它。 我使用了大量的插件!而且,对我来说,它 90% 的时间都可以顺利运行(我也提交到了应用商店并且应用获得了批准)。但偶尔,我遇到了这个错误。 问题是我们可能会损失的钱!这对我来说非常重要【参考方案2】:

对于那些收到PurchasesErrorCode.operationAlreadyInProgressError的人:

purchases-flutter ,则该错误本身是由竞争条件引起的,并且可以重现,例如,如果您在错误回调中有重试机制。

更多详情:https://github.com/RevenueCat/purchases-ios/pull/313

解决方案是升级,我建议更新到可用的最新版本(当前为 1.4.3)。

如果您已经在使用purchases-flutter >= 1.3.0,您应该通过http://support.revenuecat.com 联系RevenueCat 支持,以便他们提供进一步的帮助。

【讨论】:

问题是没有得到 operationAlreadyInProgressError。通话卡住没有错误 您应该始终尝试在您的应用流程中尽早设置 SDK。这样一来,SDK 就会在队列中捕获事务,这可能包括在您的应用程序之外发生的事务(例如来自 iOS 设置菜单)。此外,您应该只需要调用setup 一次,无需再次调用它。如果用户注销,您可以使用 reset 重置 SDK 以使用新的匿名 ID,但您不应在应用中多次调用 setup 如下所述,AudioService 和 RevenueCat 之间存在插件冲突。通常,例如在示例应用程序中,一切正常,正如您所解释的那样。但就我而言,在播放音频后,RevenueCat 通话卡住了。【参考方案3】:

最后,经过一周的调查,我发现了问题和解决方法:问题是 AudioService 和 RevenueCat Purchase 插件之间的冲突。在“initState”中调用“Purchases.setup”方法解决了这个问题。

【讨论】:

你的意思是我们应该在调用 Purchases.purchasePackage() 之前调用 Purchases.setup() 吗?我在 main() 上调用 Purchases.setup() 但问题仍然存在 如果您遇到此插件冲突,您需要在获取购买信息和获取产品之前重新设置购买(很可能在 initState 方法中)。

以上是关于Revenuecat,Flutter - PurchasePackage 不起作用,但没有例外的主要内容,如果未能解决你的问题,请参考以下文章

Flutter iOS RevenueCat 未捕获异常'NSInternalInconsistencyException'

购买.getOfferings();将 RevenueCat 升级到最新版本后挂起

使用 RevenueCat API 检查用户订阅是不是仍然有效

PHP Sum Like Elements

您如何在 Firestore 中存储重复数据?

错误 - PLS-00103:遇到符号“SELECT”