使用 Flutters 应用内购买插件检查订阅有效性?

Mag*_*s W 7 in-app-purchase in-app-billing in-app in-app-subscription flutter

我正在尝试使用官方 Flutter In-App-Purchase 插件实现应用内购买。我的工作正常,但我不知道如何判断用户订阅是否仍然有效或是否已过期。即使在我取消测试订阅后,连接和执行后获得的值queryPastPurchases()与订阅处于活动状态时相同:

productId: test_subscription_1   
transactiondate: 1565682346568   
status: null

verificationData
    source: IAPSource.GooglePlay   
    localVerificationData: {
        "orderId":"GPA.1234-1234-1234-12345",
        "packageName":"com.example.myapp",
        "productId":"test_subscription_1",
        "purchaseTime":1565682346568,
        "purchaseState":0,
        "purchaseToken":"<long string>",
        "autoRenewing":false
    }   
    serverVerificationData: "<long string>"
Run Code Online (Sandbox Code Playgroud)

我是否应该简单地硬编码我的订阅期并将当前时间与purchaseTime+订阅期进行比较?这甚至适用于自动续订吗?如果用户将手机上的日期更改为一年前会怎样?似乎应该有一些值应该给我到期时间或至少一个布尔值真/假来指示订阅是否仍然有效?

enc*_*ife 3

官方应用内购买插件负责进行购买,但不提供专门处理自动续订订阅所需的所有后端基础设施。

对您问题的简短回答是将此购买信息发送到您的服务器并在那里管理订阅状态。或者,您可以查看托管解决方案,例如purchases_flutterhttps://pub.dev/packages/purchases_flutter/

  • 当然,用例“购买订阅”-&gt;“检查用户是否有有效订阅”一定是 IAP 插件最基本的用例之一?该插件只能处理购买,但不能实际使用它们,这是没有意义的 - 那么还有什么意义呢?这就像一辆带有点火锁但没有连接电线的汽车。 (16认同)
  • 收入猫出了点问题,人们总是链接到它们或编辑帖子来使用它们 (4认同)