我正在使用MKStoreKit进行自动续订。
在Button的TouchUpInside方法上,我正在使用以下代码。
if([[MKStoreManager sharedManager] isSubscriptionActive:kSubscriptionMonthlyIdentifier]){
//access to subscription feature
}else{
//ask user to buy
}
它总是使我错误。并要求用户购买。
当我再次尝试购买时,向我显示了
You are already subscribed
。任何帮助,将不胜感激。
提前致谢。
最佳答案
1)您应该通过在applicationDidFinishLaunching中添加[MKStoreManager sharedManager];
来初始化MKStoreKit。
2)您应检查是否正确填写了MKStoreKitConfigs.plist
:
您必须将订阅的应用程序内ID添加到Subscriptions
字典(格式为"subs id" - "subs duration"
)。
在Apple文档中,您可以找到有关自动续订潜水艇的信息:
自动续订订阅的每次续订都会生成新交易并将其发送到您的应用程序。从理论上讲,MKStoreKit必须注意所有这些内容,并且isSubscriptionActive
应该起作用。
另外,您可以添加用于恢复以前购买的按钮。因此,在您的情况下,当用户在调用-isSubscriptionActive
之前先按购买按钮,然后再调用-restorePreviousTransactions
,或者您可以添加此按钮,以便用户可以恢复先前的交易^(如果他已经购买了订阅)。
您可以为该通知添加观察者:
#define kSubscriptionsPurchasedNotification @"MKStoreKitSubscriptionsPurchased"
#define kSubscriptionsInvalidNotification @"MKStoreKitSubscriptionsInvalid"
续订(或购买)订阅时,第一个通知MKStoreKit生成;续订失败时,第二个通知生成。