App Store 调用 paymentQueue 并在每次自动更新时发布交易。交易通过 transaction.transactionState==SKPaymentTransactionStateRestored 发布。
问题是不幸的是,这只会发布到一台设备上。第二个设备没有得到发布。因此,要检测自动续订,或者更确切地说是检测缺少自动续订并拒绝任何设备继续订阅,您必须执行 restoreCompletedTransaction 或“http 发布包含最后交易的 64 位编码 JSON”。如果是前者,用户需要提供他们的密码;正如你所指出的,这是侵入性的。如果是后者,则需要大量额外的编码。所以,我在回答你的问题时的问题是......为什么 StoreKit 没有命令:
(不存在)- [[SKPaymentQueue defaultQueue] restoreAttachedTransactions:(NSArray *)transactions];
该命令将像 restoreCompletedTransactions 一样流动,但它只会恢复附加的事务,最重要的是,它不需要用户登录。它具有与“http 发布包含最后交易的 64 位编码 JSON”相同的安全保护,并且它允许在 StoreKit 中完成整个应用内购买过程,而不需要 Web 发布代码。
如果这对您有意义,请建议如何将其发送给 Apple....谢谢。