如何在 Flutter 中处理 Google Play 兑换促销代码?

问题描述 投票:0回答:1

我正在开发一个免费的 Flutter 应用程序(Android 和 iOS),该应用程序使用 官方 Flutter 应用内购买插件 - 最新版本 2.0.1。
提供优质内容(应用内订阅) 我们希望使用 Google Play 促销代码 向某些用户免费(不收取额外费用)提供优质内容。

到目前为止我尝试过的:

  1. 订阅促销代码:他们只提供更长的免费试用期(如果不取消,则随后向用户收费)。促销代码运行良好,但这并不适合我们,因为它可以向用户收费。
  2. 产品促销代码:一位朋友建议创建一个可解锁优质内容的应用内产品,并且促销代码将免费提供该产品。我已经为其生成了促销代码并开始通过内部测试对其进行测试。 Google Play 文档称可以从 A) Google Play 或 B) 从您的应用程序兑换代码。

两种选择的问题:

A) Google play: 当我们从 Google Play 兑换代码时,代码被接受并显示消息,说明产品已应用。然而:

  • 我们在后端系统中没有收到任何购买通知(在 play_billing Pub 子主题中没有收到消息,我们通常从 Google Play 接收购买通知)。
  • 该购买在 Google Play 开发者控制台 > 订单中也不可见。
  • 当我们尝试从应用程序购买产品(对于同一 Google 帐户)时,我们会收到 Google 应用程序内购买对话框,并显示错误:您已经拥有该商品。我们尝试清除 Google Play 应用程序的缓存和数据,但这没有帮助。
  • Flutter 应用内购买插件中没有方法可以用来查询用户是否已经购买了该产品(然后只需解锁高级内容)

B) 从应用程序:我认为官方 Flutter 应用内购买插件不支持此功能。插件文档仅提及 Apple 商店促销代码。此外,当我们按下按钮购买产品时,Google 应用内购买对话框不包含任何使用促销代码的选项。不,我没有使用许可证测试(测试卡),而是我真正的私人信用卡。

我感觉很卡!!!非常感谢任何帮助!我需要在下周开始促销活动,以获取尽可能多的用户反馈(以申请资金)。

-----更新------------------------------------

感谢另一位开发人员,我们能够确定“兑换代码”选项未出现在计费对话框中的原因。

B) 从应用程序: 仅在账单底部对话框中显示“兑换代码”选项

  • 在生产模式下
  • 对于新用户(如果用户之前应用过一次性代码或者用户是测试用户,则不可见)
flutter in-app-purchase promotion-code
1个回答
0
投票

您似乎遇到了促销代码和 Google Play 应用内购买结算集成的一些限制。以下是您可能面临的挑战的解决方案:

  1. 会员促销代码问题 订阅促销代码旨在延长免费试用期。但费用不会永久免除。因为这不符合你的需求。因此,您可能希望通过应用内产品解锁优质内容。

  2. 应用内产品的促销链接 应用内产品的促销代码似乎是正确的方法。但是,您遇到了后端通知和查询产品购买状态的问题。以下是一些可能的解决方案:

如果您没有收到有关 play_billing Pub/Sub 的购买信息,则 Google Play 处理您的促销代码购买的方式可能存在问题。 (因为它不会创建实际交易)

解决方法:即使 Google Play 不生成促销代码兑换的交易数据,也请使用客户端验证。但是您可以通过 Flutter 应用内购买插件中的 queryPastPurchases() 方法找到产品所有权状态,以查看用户是否是产品所有者。 B. 查看产品所有权 你说没有办法询问用户是否已经购买了该产品。不过,使用 Flutter 内购插件,您仍然可以检查用户之前是否购买过该产品。

解决方案:使用InAppPurchase.instance.queryPastPurchases()来检查用户过去的购买情况。这将返回购买清单。您还可以确定他们是否已经兑换了促销代码或购买了产品。 试试这个:

InAppPurchase.instance.queryPastPurchases().then((pastPurchases) {
  for (var purchase in pastPurchases.pastPurchases) {
    if (purchase.productID == 'your_product_id') {
      // Unlock premium content
    }
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.