iphone - MKStoreKit -isSubscriptionActive 总是返回 False

标签 iphone objective-c ios in-app-purchase mkstorekit

我正在使用 MKStoreKit 进行自动更新订阅。

在 Button 的 TouchUpInside 方法上,我使用以下代码..

if([[MKStoreManager sharedManager] isSubscriptionActive:kSubscriptionMonthlyIdentifier]){
  //access to subscription feature
}else{
  //ask user to buy
}

它总是返回 false。并要求用户购买。

当我再次尝试购买时,它显示您已经订阅

  • 我做错了什么吗?

  • 有没有其他方法可以检查订阅是否有效。

  • 我怎么知道订阅已续订?

如有任何帮助,我们将不胜感激。

提前致谢。

最佳答案

1) 您应该通过在 applicationDidFinishLaunching 中添加 [MKStoreManager sharedManager]; 来初始化 MKStoreKit。

2) 您应该检查您是否正确填写了MKStoreKitConfigs.plist:

您必须将您的订阅应用内 ID 添加到 订阅 字典(格式:“订阅 ID”-“订阅持续时间”)。

在 Apple 文档中,您可以找到有关自动续订订阅的信息: 自动续订订阅的每次续订都会生成新交易并发送到您的应用程序。理论上,MKStoreKit 必须处理所有这些事情,isSubscriptionActive 应该可以工作。

此外,您还可以添加用于恢复以前购买的按钮。因此,在您的情况下,当用户在调用 -isSubscriptionActive 调用 -restorePreviousTransactions 之前按下购买按钮时,或者您可以添加此按钮,以便用户可以恢复之前的交易^如果他已经已购买订阅。

您可以为此通知添加观察者:

#define kSubscriptionsPurchasedNotification @"MKStoreKitSubscriptionsPurchased"
#define kSubscriptionsInvalidNotification @"MKStoreKitSubscriptionsInvalid"

第一个通知 MKStoreKit 生成,当订阅被更新(或购买)时,第二个 - 当更新失败时。

关于iphone - MKStoreKit -isSubscriptionActive 总是返回 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13083429/

相关文章:

objective-c - 不活跃? @"inactive": @"active" syntax?

iOS10 + 渐变停止工作

ios - ios可点击区域圆角矩形

ios - AV Framework 前置摄像头问题

ios - Objective-C 错误 "Expected identifier or ' (' "

iphone - 在一个 View 中隐藏状态栏会在所有 View 中隐藏它

ios - 使用弱引用时是否可以实现 NSFastEnumeration?

iphone - 如何检查下载的PNG图像是否损坏?

iphone - 在 iPhone 上打开热点会导致我的应用程序屏幕向下移动

iphone - 如何将 UIButton 添加到 UIButton