根据 Apple 应用内购买编程指南:
App Store 每次续订订阅时都会创建一个单独的交易。当您的应用程序恢复以前的购买时,Store Kit 会将每笔交易传送到您的应用程序。
假设我的应用程序订阅仅限客户端(无服务器组件)。验证后续续订是否已计费的最简单方法似乎是每月恢复以前的购买。
However,这样每次打电话都会弹出用户的iTunes密码提示restoreCompletedTransactions
这似乎是糟糕的用户体验。是使用服务器收据验证码(以及新的“共享秘密”)的唯一途径吗?
App Store 会调用 paymentQueue 并在每次自动更新时发布交易。交易以 transaction.transactionState==SKPaymentTransactionStateRestored 发布。
问题是不幸的是这仅发布到一台设备。第二台设备未收到该帖子。因此,要检测自动续订,或者更确切地说,要检测缺乏自动续订并拒绝任何设备的连续订阅,您必须执行 RestoreCompletedTransaction 或“http post 包含最后一笔交易的 64 位编码 JSON”。如果是前者,用户需要提供密码;正如你所指出的,这是侵入性的。如果是后者,则需要大量额外的编码。所以,我在回答你的问题时的问题是......为什么 StoreKit 没有命令:
(不存在) - [[SKPaymentQueue defaultQueue] RestoreAttachedTransactions:(NSArray *)transactions];
该命令的流程就像restoreCompletedTransactions 一样,但它只会恢复附加的事务,最重要的是,它不需要用户登录。它具有与“http 发布包含最后一笔交易的 64 位编码 JSON”相同的安全保护,并且允许整个应用内购买流程在 StoreKit 中完成,而不需要 Web 发布代码。
如果这对您有意义,请建议如何将其发送给 Apple...谢谢。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)