首页 文章

自动续订订阅会在自动续订时发送SKPaymentTransactionStatePurchased交易吗?

提问于
浏览
12

AppStore在自动续订自动续订订阅时是否发出交易?如果是这样,如果应用程序下次加载,如果它将自己设置为观察者,它是否可以被应用程序可靠地检测到:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

新的自动续订交易是否会拨打以下电话:

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

使用transaction.transactionState == SKPaymentTransactionStatePurchased?

如果是这样,很好 . 如果不是,这是否意味着每次自动续订订阅到期时,您必须使用以下方法检查所有交易:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

谢谢...

2 回答

  • 0

    经过一些研究,我可以回答我自己的问题并提出另一个相关问题 . App Store调用paymentQueue并发布交易 . 该事务使用transaction.transactionState == SKPaymentTransactionStateRestored,而不是transaction.transactionState == SKPaymentTransactionStatePurchased发布 .

    问题是,不幸的是,这只会发布到一个设备上 . 第二个设备无法发布 . 因此,要检测自动续订,或者更确切地说检测缺少自动更新并拒绝设备继续订阅,您必须执行restoreCompletedTransaction或“http发布包含最后一个事务的64位编码JSON” . 如果是fomer,用户需要提供密码;这是侵入性的 . 如果是后者,则需要许多额外的编码 . 所以,我的问题是......为什么StoreKit没有命令:

    (不存在) - [[SKPaymentQueue defaultQueue] restoreAttachedTransactions:(NSArray *)transactions];

    此命令将像restoreCompletedtRansactions一样流动,但它只会恢复附加的事务,最重要的是,它不需要用户登录 . 它具有与“http发布包含最后一个事务的64位编码JSON”相同的安全保护,并且它允许整个In App Purchase过程在StoreKit中完成,而不是需要Web发布代码 .

    如果这对你有意义,请建议如何把它交给Apple ....谢谢 .

  • 11

    阅读this post我不确定它是否会对你有所帮助

相关问题