【发布时间】:2017-03-10 11:32:18
【问题描述】:
我有一个自动续订的订阅。我还有以下购买代码:
SKProduct* productToPurchase = #create product logic#;
SKPayment* payment = [SKPayment paymentWithProduct:productToPurchase];
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
[[SKPaymentQueue defaultQueue] addPayment:payment];
所以,购买原始订阅是可以的。 之后,我关闭我的应用程序并离线等待,直到发生至少一个自动续订期。我启动了我的应用程序,我的期望是我会在这里收到关于新交易的回调:
- (void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray*)transactions
但是什么也没发生。我没有收到任何关于离线自动续订的信息。请注意,我也尽快添加观察者:
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)options {
...
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
...
}
那么,这里有什么问题呢?或者有没有更正确的方法来理解订阅是否被延长?
非常感谢! 塞尔吉
【问题讨论】:
-
好的,是的,我尝试这样做:
auto refreshRequest = [[SKReceiptRefreshRequest alloc] initWithReceiptProperties:nil]; [refreshRequest setDelegate:observer]; [refreshRequest start];但它要求用户在每次启动应用程序时输入其 Apple ID 的密码,这很糟糕 -
另外,他们的文档告诉我们:成功续订订阅后,Store Kit 将续订事务添加到事务队列中。您的应用程序在启动时检查事务队列并以与任何其他事务相同的方式处理更新。请注意,如果您的应用在订阅更新时已经在运行,则不会调用事务观察器;您的应用会在下次启动时发现续订。
-
在我的测试中,当我在续订时间之后启动应用程序时,续订付款已发送到付款队列。如果您明确刷新收据,则会提示用户登录,但收据会自动刷新,因此您只需访问收据并将包含续订的订阅。
标签: ios subscription auto-renewable