我很困惑使用服务器模型应用 InApp 购买。
我在 StoreKit 指南中读到了这个:
如果用户尝试购买他们已经购买的非消耗性产品或可续订的订阅,您的应用程序会收到该项目的 **常规交易,而不是恢复交易。但是,不会再次向用户收取该产品的费用。您的应用程序应将这些交易视为与原始交易相同的交易。
那么告诉我我怎么知道用户是购买了物品还是恢复了物品????
我很困惑使用服务器模型应用 InApp 购买。
我在 StoreKit 指南中读到了这个:
如果用户尝试购买他们已经购买的非消耗性产品或可续订的订阅,您的应用程序会收到该项目的 **常规交易,而不是恢复交易。但是,不会再次向用户收取该产品的费用。您的应用程序应将这些交易视为与原始交易相同的交易。
那么告诉我我怎么知道用户是购买了物品还是恢复了物品????
您应该跟踪已购买的项目并将它们从用户必须购买的选项列表中删除。
如果你这样做,用户将永远不会尝试购买他们已经打过的东西。
首次安装应用程序时,您可能希望恢复之前购买的项目(如果有的话)。要做到这一点,你打电话restoreCompletedTransactions
,你会得到一个单独的回调到 normal : paymentQueueRestoreCompletedTransactionsFinished:
。
回答你的问题。
恢复的项目进入paymentQueueRestoreCompletedTransactionsFinished:
方法
paymentQueue:updatedTransactions:
通常购买的物品通过该方法进来
正常购买的物品,已经付款的物品进入该paymentQueue:updatedTransactions:
方法。
您无法区分 2. 和 3. 这是故意的。