【问题标题】:In-App Purchase with Promo Code - and how to handle it使用促销代码进行应用内购买 - 以及如何处理
【发布时间】:2019-03-26 10:58:47
【问题描述】:

我在堆栈overflow上看到了一些关于促销代码处理的主题:Detecting promo codeHandling promo codeConsumable promo codes,但没有一个有正确的答案。有一些关于如何创建和兑换应用内购买的促销代码的快速指南,但没有人谈论稍后会发生什么。

在 AppStore 上兑换(应用内购买)促销代码:

  • 让您在成功兑换后打开应用程序
  • 通知最好在 AppDelegate 中声明的 transactionObserver

有些人说这就是您所要做的一切(然后当用户选择付款时,突然没有 9,99 美元的信息,而是像 StoreKit 在幕后处理的“使用促销代码”之类的信息)。恐怕那样不行。

我是否应该在 AppDelegate 中以某种方式处理它 - 如果在应用启动后立即有交易(意味着有人使用了促销代码)?我应该提醒用户他使用了促销代码,然后解锁功能或在他的帐户中添加一些“宝石”(如果是消耗品)?

编辑:还有这两个苹果开发者论坛主题:Few people have the same problem - no answerApple staff responded about where to place transactionObserver

EDIT2:或者促销代码不能应用于消耗品,这些产品使用过一次并且无法恢复(使用应用内促销代码是基于恢复我在某处读过的?)

【问题讨论】:

    标签: swift in-app-purchase app-store


    【解决方案1】:

    对于像我一样被卡住的人。

    确实,您需要声明一个类(例如 PurchaseHelper),在 AppDelegate 中使用 SKProductsRequestDelegateSKPaymentTransactionObserver 扩展来导入 StoreKit

    然后,如果用户在 App Store 中兑换促销代码 - 并且他打开了您的应用 - 'updatedTransactions' 函数会被调用,这是您唯一可以对购买的产品进行操作的时间。 p>

    我所做的是 - 将 info/transactionId 保存到 UserDefaults,因此在主屏幕中,用户会收到类似“您兑换了促销代码。选择您最喜欢的地点并点击购买以获取它的提醒”免费”。

    当然更好的解决方案是立即在 AppDelegate 中启用产品。如果您的促销代码给了用户 100 美元(消耗品),那么您可以添加它(但他是否已登录仍然存在问题)。

    如果您知道任何更好的解决方案,请告诉我。

    【讨论】:

    • 我正在尝试这个,但促销代码永远不会在更新交易中到达。更新事务在应用启动时被调用,但它不包含应用内购买。有任何想法吗? stackoverflow.com/questions/57772095/…
    • 如果你能发布你的代码的完整示例会很棒。一切都在 AppDelegate 中实现,还有完整的“updateTransactions”功能。那会有很大帮助!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 2015-01-28
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多