1

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

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

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

它总是让我返回错误。并要求用户购买。

当我再次尝试购买时,它告诉我You are already subscribed

  • 有什么我做错了吗?

  • 有没有其他方法可以检查订阅是否处于活动状态。

  • 我如何知道订阅已续订?

任何帮助,将不胜感激。

提前致谢。

4

2 回答 2

2

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

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

您必须将您的订阅应用内 ID 添加到Subscriptions字典(格式为:) "subs id" - "subs duration"

在苹果文档中,您可以找到有关自动更新订阅的信息:自动更新订阅的每次更新都会生成新交易并将其发送到您的应用程序。理论上,MKStoreKit 必须照顾所有这些东西,并且isSubscriptionActive应该可以工作。

此外,您可以添加按钮以恢复以前的购买。-isSubscriptionActive因此,在您的情况下,当用户在拨打电话之前按下购买按钮时-restorePreviousTransactions,或者您可以添加此按钮,这样用户可以恢复以前的交易^如果他已经购买了订阅。

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

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

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

于 2012-10-29T12:56:29.440 回答
0

MKStoreKit GitHub 上有一个未解决的问题,可能与您遇到的问题有关。该线程中的人声称,在应用程序初始化后,MKStoreKit 总是返回 NO isSubscriptionActive。不过,他们似乎能够成功使用以前版本的 MKStoreKit。您可能想尝试一下。

于 2012-11-03T15:00:20.983 回答