iPhone - 如何检索应用内购买的自动续订订阅的持续时间

Posted

技术标签:

【中文标题】iPhone - 如何检索应用内购买的自动续订订阅的持续时间【英文标题】:iPhone - How to retrieve duration for auto-renewable subscription for in app purchases 【发布时间】:2011-07-09 17:19:25 【问题描述】:

我正在考虑为 iPhone 应用设置应用内购买。 我计划使用新的自动更新订阅类型。但是,我想为特定订阅提供多个持续时间,但看不到如何从 SKProductsResponse.products 数组中返回的 SKProduct 检索持续时间。

SKProduct 对象具有价格、localizedTitle 和localizedDescription。但是,如果您设置具有多个持续时间的订阅系列,则为该系列设置一次标题/说明,因此您不能包含持续时间,并且文档明确表示不要在标题/说明中包含持续时间。但是,看不到任何其他字段,我可以在其中检索在我的自定义应用商店中显示的持续时间。要么我遗漏了什么,要么直到 4.3 才可用?

非常感谢您的指点!

【问题讨论】:

【参考方案1】:

您需要在某处有一些映射product_id => length,无论是在您的应用程序中还是从应用程序的后端检索。

【讨论】:

是的,这实际上就是我最终要做的。【参考方案2】:

您可以为每个持续时间使用特定的 productIdentifier(在 productIdentifier 下方的代码中,订阅 1 个月为“com.domainname.myapp.sub1month”,持续 7 天为“com.domainname.myapp.sub7day ") 并在 paymentQueue 中搜索:

-(void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
   for(SKPaymentTransaction *transaction in transactions)
     switch (transaction.transactionState)
        case SKPaymentTransactionStatePurchasing:
            break;
        case SKPaymentTransactionStatePurchased:
            if([transaction.payment.productIdentifier isEqualToString:@"com.domainname.myapp.sub1month"]
                newSubscriptionEndDate=[transaction.transactionDate timeIntervalSinceReferenceDate]+3600*24*31;
            
            if([transaction.payment.productIdentifier isEqualToString:@"com.domainname.myapp.sub7day"]  )
                newSubscriptionEndDate=[transaction.transactionDate timeIntervalSinceReferenceDate]+3600*24*7;
            
            [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
            break;

【讨论】:

【参考方案3】:

ios 11.2 将subscriptionDuration 属性引入SKProduct。不过,我认为旧版 iOS 没有退路。

https://developer.apple.com/documentation/storekit/skproduct/2936884-subscriptionperiod

【讨论】:

万岁... 11 年才发现有人可能想要一种访问该信息的方法...谁会想到?大声笑

以上是关于iPhone - 如何检索应用内购买的自动续订订阅的持续时间的主要内容,如果未能解决你的问题,请参考以下文章

应用购买iphone中的自动续订验证

在应用内购买中取消自动续订订阅

用于自动续订订阅通知的应用内购买

iOS 应用内购买自动续订订阅管理

应用内购买,具有不同持续时间的多个自动续订订阅

使用自动续订订阅的应用是不是需要 Apple 应用内购买?