我正在开发一个免费的 Flutter 应用程序(Android 和 iOS),该应用程序使用 官方 Flutter 应用内购买插件 - 最新版本 2.0.1。
提供优质内容(应用内订阅)
我们希望使用 Google Play 促销代码 向某些用户免费(不收取额外费用)提供优质内容。
A) Google play: 当我们从 Google Play 兑换代码时,代码被接受并显示消息,说明产品已应用。然而:
B) 从应用程序:我认为官方 Flutter 应用内购买插件不支持此功能。插件文档仅提及 Apple 商店促销代码。此外,当我们按下按钮购买产品时,Google 应用内购买对话框不包含任何使用促销代码的选项。不,我没有使用许可证测试(测试卡),而是我真正的私人信用卡。
我感觉很卡!!!非常感谢任何帮助!我需要在下周开始促销活动,以获取尽可能多的用户反馈(以申请资金)。
-----更新------------------------------------
感谢另一位开发人员,我们能够确定“兑换代码”选项未出现在计费对话框中的原因。
B) 从应用程序: 仅在账单底部对话框中显示“兑换代码”选项
您似乎遇到了促销代码和 Google Play 应用内购买结算集成的一些限制。以下是您可能面临的挑战的解决方案:
会员促销代码问题 订阅促销代码旨在延长免费试用期。但费用不会永久免除。因为这不符合你的需求。因此,您可能希望通过应用内产品解锁优质内容。
应用内产品的促销链接 应用内产品的促销代码似乎是正确的方法。但是,您遇到了后端通知和查询产品购买状态的问题。以下是一些可能的解决方案:
如果您没有收到有关 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
}
}
});