MKStoreKit -isSubscriptionActive总是返回False
我正在使用MKStoreKit自动更新订阅。
在button的TouchUpInside方法我使用下面的代码..
if([[MKStoreManager sharedManager] isSubscriptionActive:kSubscriptionMonthlyIdentifier]){ //access to subscription feature }else{ //ask user to buy }
它总是让我失望。 并要求用户购买。
当我试图再次购买它显示我, You are already subscribed
。
-
有什么我做错了吗?
-
有没有其他方法来检查订阅是否有效。
-
我应该如何知道续订?
任何帮助,将不胜感激。
提前致谢。
1)您应该通过添加[MKStoreManager sharedManager];
来初始化MKStoreKit [MKStoreManager sharedManager];
在你的applicationDidFinishLaunching中。
2)你应该检查,你正确填写MKStoreKitConfigs.plist
:
您必须将订阅应用内ID添加到Subscriptions
字典(格式为"subs id" - "subs duration"
)。
在苹果文档中,您可以find有关自动更新子目录的信息:每次续订自动更新订阅新交易将生成并发送到您的应用程序。 从理论上讲,MKStoreKit必须关心所有这些东西,而且是isSubscriptionActive
应该起作用。
另外,您可以添加button以恢复以前的购买。 所以,在你的情况下,当用户在调用-isSubscriptionActive
调用-restorePreviousTransactions
之前按下buybutton,或者你可以添加这个button,这样用户可以恢复以前的交易^如果他已经购买了订阅。
你可以为这个通知添加观察者:
#define kSubscriptionsPurchasedNotification @"MKStoreKitSubscriptionsPurchased" #define kSubscriptionsInvalidNotification @"MKStoreKitSubscriptionsInvalid"
第一次通知MKStoreKit产生,当续订(或购买),第二个 – 更新失败。
MKStoreKit GitHub上有一个公开的问题 ,可能与您正在遇到的问题有关。 该线程中的人声称,应用程序初始化后MKStoreKit总是返回NO为isSubscriptionActive
。 不过,他们似乎能够成功使用MKStoreKit的先前版本。 你可能想尝试一下。