React-native-iap: 关注`getAvailablePurchases()`

创建于 2020-04-11  ·  11评论  ·  资料来源: dooboolab/react-native-iap

react-native-iap 的版本

4.4.3

react-native 的版本

0.61.6

您遇到错误的平台(IOS 或 Android 或两者?)

安卓

预期行为

首先,感谢您为制作和维护这个库所做的一切努力,非常感谢。

getAvailablePurchases()不应退回已取消(未续订)的订阅

实际行为

在测试环境下(使用测试卡测试账户),当我在我的应用程序上订阅并在expiracytime之前取消订阅时(在测试帐户中购买后5分钟),我的订阅不会被列出在超过到期时间时getAvailablePurchases()的结果。 这是一种理想的行为。
但是,如果我让我的订阅续订(在续订期之前不取消),然后在此之后取消订阅,即使超过了到期时间, getAvailablePurchases()仍会列出我的订阅。 我的问题是,为什么它仍然列出我不再订阅的订阅?

另外,我想知道有关getAvailablePurchases()的详细信息,它是否会调用 google billing 来检索可用的购买? 还是在本地保留采购清单?

测试设置: https :

测试环境(模拟器?真实设备?)

真机

重现行为的步骤

订阅订阅,让它更新,然后取消。 订阅仍将列为可用购买

🚶🏻 stale

最有用的评论

@darriuk我刚刚测试了取消订阅并确认autoRenewingAndroid属性设置为false但! 仅当用户明确取消订阅时。 如果由于拒绝付款而取消订阅,订阅将永远保持有效。 这对于订阅来说确实是个大问题,并且没有解决方法。 我有一个想法来比较transactionDate ,如果这个日期落后于订阅期限,那么请取消我这边的服务。 但似乎transactionDate始终是订阅付款的第一个日期。

所有11条评论

我想补充几个问题。 如果我们不使用后端服务进行验证会怎样。 我如何理解用户完成和取消的订阅。 我该如何处理?
同样在我的沙箱帐户中有 6 个订阅产品。 都是主动的怎么可能?
对于 IOS。

由于存在被黑客入侵的风险,Apple 强烈建议使用服务器验证。

我编写了一个后端 API,它接收用户的收据并进行验证。 如果没有找到最新的交易,则意味着该用户尚未订阅,因此我将该用户设为非高级用户(或您想做的任何事情)。 我在应用程序打开时调用此 API。 我的应用程序每天检查。

我也看到与getAvailablePurchases类似的行为。 预期的行为是在取消订阅后, getAvailablePurchases方法应该返回购买直到它过期。 到期后,购买不应出现在getAvailablePurchases结果中(如果因重复订阅付款失败导致到期,则增加 5 分钟的宽限期)。

实际行为是在取消订阅后, getAvailablePurchases方法返回一个包含订阅购买的数组, _甚至在订阅SubscriptionPurchase对象中, autoRenewingAndroid属性设置为false

我不知道何时从getAvailablePurchases返回的结果中删除了购买。 有人知道吗?

@darriuk我刚刚测试了取消订阅并确认autoRenewingAndroid属性设置为false但! 仅当用户明确取消订阅时。 如果由于拒绝付款而取消订阅,订阅将永远保持有效。 这对于订阅来说确实是个大问题,并且没有解决方法。 我有一个想法来比较transactionDate ,如果这个日期落后于订阅期限,那么请取消我这边的服务。 但似乎transactionDate始终是订阅付款的第一个日期。

@vkachan据我记得transactionDate确实总是用于第一次订阅付款。

我的一个更新:我在取消订阅大约 22 小时后再次运行getAvailablePurchases ,它最终返回一个空数组。 看起来 Google 的计费服务器需要很长时间才能更新响应。

我今天将尝试拒绝订阅付款,看看从getAvailablePurchases响应中删除需要多长时间。

更新
我测试了拒绝订阅付款, getAvailablePurchases花了大约 32 小时才返回一个空数组。 所以购买_确实

可以确认@darriuk在说什么。 我运行了一个测试订阅,它结束了,然后订阅从getAvailablePurchases开始仍然显示为活动状态大约 24 小时。 也许有某种方法可以强制 Google 重新加载? 🤔

有类似的问题,在客户端处理 iap 是一团糟,现在使用react-native-iaphub
Iaphub 负责服务器收据验证。

@tomerdev您对 iaphub 的体验如何? 我正在考虑转而使用它,但想看看另一个开发人员对该产品的看法。

@captaincole使用
它确实为我节省了很多时间。 如果你不能花很多时间来处理 IAP,我会推荐它,我个人更喜欢专注于我的应用程序。

您好,最近好像没有关于这个问题的活动。 问题已解决,还是仍需要社区关注? 如果没有进一步的活动发生,这个问题可能会被关闭。 您也可以将此问题标记为“供讨论”或“好的第一期”,我将保持开放。 感谢你的贡献。

在长时间不活动后关闭此问题。 如果这个问题在最新版本中仍然存在,请随时创建一个包含最新信息的新问题。

此页面是否有帮助?
0 / 5 - 0 等级