我在堆栈上看到了一些关于促销代码处理的主题溢出:Detecting promo code,Handling promo code,Consumable promo codes,但没有一个答案正确。对于如何为应用内购买创建和兑换促销代码,有一些快速指南,但是没人谈论以后会发生什么。
在AppStore上兑换(应用内购买)促销代码:
有人说这就是您要做的(然后,当用户选择付款时,突然没有9,99 $的信息,而是诸如“使用促销代码”之类的信息,由StoreKit在后台处理)。恐怕那样行不通。
我是否应该在AppDelegate中进行处理-如果在应用启动后立即进行交易(这意味着有人使用了促销代码)?我是否应该提醒用户使用促销代码,解锁功能或向帐户添加一些“宝石”(如果是消耗品)?
编辑:还有以下两个苹果开发者论坛主题:Few people have the same problem - no answer,Apple staff responded about where to place transactionObserver
EDIT2:或者促销代码无法应用于一次性使用且无法恢复的易耗品(使用应用内促销代码基于我在某处阅读的还原内容?)
答案 0 :(得分:0)
对于那些像我一样被困住的人。
实际上,您需要声明一个类(例如,PurchaseHelper),该类将通过 SKProductsRequestDelegate 和 SKPaymentTransactionObserver 扩展名导入 StoreKit 到AppDelegate中。
然后,如果用户在App Store中兑换了促销代码-然后他打开了您的应用-就会调用“ updatedTransactions ”函子,这是您唯一可以对所购买的产品进行操作的事情。
我所做的是-将info / transactionId保存为UserDefaults ,因此在主屏幕上,用户会收到类似“您已兑换促销代码。选择您喜欢的促销地点,然后单击“购买”以获得它的警报。免费”。
当然,更好的解决方案是立即在AppDelegate中启用产品。如果您的促销代码为用户提供了100美元(消耗品),那么您就可以添加它(但是仍然存在问题,如果他已登录)。
如果您知道更好的解决方案,请告诉我。