我对 flutter 中的应用内购买还很陌生。我正在独自编写一个副项目应用程序,我希望允许用户将应用程序从免费版本升级到付费版本。
我在 documentation 中看到 in_app_purchase 包是一个很好的工具(在设置应用程序商店之后)。我还找到了有关该主题的codelab。
我的问题是:有没有办法在没有后端的情况下验证购买?我想做一次非消耗品购买,我想知道为什么我需要后端来验证这一点?包裹返回用户拥有的物品,就我而言,我相信这已经足够了。
InAppPurchase.queryPastPurchases()
我的逻辑有逻辑吗?在 Codelab 中,教程指出(“您可以安全地验证交易。| 您可以对应用商店的计费事件做出反应。| 您可以在数据库中跟踪购买情况。| 用户将无法欺骗您的应用程序通过倒带系统时钟来提供高级功能。”)但如果我使用上述软件包,这些对我来说似乎是不必要的额外保护措施......
我看到了相关问题,但现在好像已经有10多年了。
当我开始使用
in_app_purchase
包时,我也很沮丧。这是我的第一个应用程序,所以我不想构建整个后端,也不想为我的第一个项目花太多钱。
我在 YouTube 上查找了数十个教程,但发现的都是使用已弃用的 API 的过时视频。我还遇到了诸如RevenueCat之类的替代方案,但我太担心向第三方服务提供财务数据的访问权限。
我确实认为最好在后端验证应用内购买。如果交易作废/退款,您可以跟踪购买情况并限制对高级功能的访问。正如文档中所述,用户可以倒回系统时钟,这样订阅就永远不会过期。另一方面,有多少普通用户会努力总是更改系统设置,只是因为他们想为一个好的应用程序节省 1.99 美元?
但是现在回到你的问题:这只是一个推荐,所以只要你想省去麻烦,我认为你可以从客户端验证它(应该是相对安全的)。我假设您在研究过程中已经了解了 Google 的
Android Publisher
API。请参阅此处了解更多信息。只需使用应用程序的 packageName
、购买的 productId
和 token
(在包 PurchaseData
类中提供)发出 http 请求,端点将为您提供有关购买的详细信息。
祝您的项目顺利!