【问题标题】:How to detect auto-renew subscription receipt on iOS如何在 iOS 上检测自动续订订阅收据
【发布时间】: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


【解决方案1】:

我也遇到过同样的问题,玩了一会儿之后,它似乎有时在沙盒中随机运行。 我还发现了一个blog,开发人员也遇到了同样的问题,但他声称它在沙盒中对他来说大约是三分之一。

所以我想这只是你/我们必须处理的沙盒的另一个怪癖。

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 2020-08-23
    • 2023-03-10
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多