我对Flutter中的应用内购买很陌生。我正在独自编写一个附带项目应用程序,我希望允许用户将应用程序从免费版本升级到付费版本。
我在documentation中看到,in_app_purchase包是很好的工具(在设置应用程序商店之后)。我还找到了这个关于这个主题的代码实验室。
我的问题是:有没有一种方法来验证购买没有后端?我想做一个非消耗品采购,我想知道为什么我需要一个后端来验证?包返回用户拥有的项目,在我的情况下,我相信这就足够了。
InAppPurchase.queryPastPurchases()
我的逻辑是不是有问题?在codelab中,教程指出(“您可以安全地验证事务。|您可以对来自应用商店的计费事件做出React。|您可以在数据库中跟踪购买情况。|用户将无法通过倒回系统时钟来欺骗您的应用程序提供高级功能。”)但这些对我来说似乎是不必要的额外保障,如果我使用上述软件包.
我看到了相关的问题,但它们似乎已经超过10年了。
1条答案
按热度按时间ct3nt3jp1#
当我开始使用
in_app_purchase
包时,我也很沮丧。这是我的第一个应用程序,所以我不想建立一个完整的后端,也不想花太多钱在我的第一个项目上。我在YouTube上找了几十个教程,但我发现的都是使用过时API的过时视频。我也遇到了RevenueCat等替代方案,但我太担心将财务数据的访问权限授予第三方服务。
我真的认为在你的后台验证应用内购买会更好。如果交易无效/退款,您可以跟踪购买情况并限制对高级功能的访问。而且用户可以--如文档中所述--倒回他们的系统时钟,这样订阅就永远不会过期。另一方面,有多少普通用户会努力总是改变系统设置,只是因为他们想保存1,99 $一个好的应用程序?
但现在回到你的问题:这只是一个建议,所以只要你想保存自己的麻烦,我认为你可以直接从客户端验证(应该是相对安全的)。我假设您在研究期间已经了解了Google的
Android Publisher
API。请参阅here了解更多信息。只需向应用程序的packageName
、购买的productId
和token
(在包的PurchaseDetails
类中提供)发出http请求,端点就会给予有关购买的详细信息。您也可以使用googleapis包来实现这一点。祝你的项目好运!