我正在尝试使用MKStoreKit在我的应用程序中实现应用程序内的采购。除了一件我搞不懂的事外,它大部分都很好用。我使用下面的方法来恢复事务。
-(void)restoreToFullVersion:(UIViewController *)sender{
[MBProgressHUD showHUDAddedTo:sender.view animated:TRUE];
[[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^{
[MBProgressHUD hideHUDForView:sender.view animated:TRUE];
[[NSNotificationCenter defaultCenter] postNotificationName:@"userDidUpgradeNotification" object:nil userInfo:nil];
[self upgradeSuccessful];
} onError:^(NSError *error) {
[MBProgressHUD hideHUDForView:sender.view animated:TRUE];
}];
}//end method我已经将完成块和上面的代码按照预期的方式工作,除非您随后调用
[MKStoreManager isFeaturePurchased:kMainNoncomsumable];结果是假的。我是否正确地认为,在恢复过程完成后,MKStoreManager应该返回isFeaturePurchased的true,还是遗漏了什么?
我只实现了一个非消费的应用程序内购买,并包括MKStoreManager到我的项目使用可可荚。
似乎其他人都在使用相同的problem,但我还没有找到一个有效的解决方案。
提前感谢您的帮助!
发布于 2014-01-08 17:39:26
我让它起作用了,以防万一将来会有同样的问题,以下是我所做的。我删除了应用程序内的购买,并在iTunes连接中创建了一个新的应用程序,使用可可豆重新安装了MKStoreKit,在MKStoreKit plist文件中重新输入了应用内购买id,等待了一天,现在一切正常!
发布于 2014-01-07 05:49:15
据我所见,MKStoreKit称完成块为完成块,无论是否恢复了任何购买。您知道,即使没有遇到错误,也可能没有任何可恢复的购买。
要测试还原特性,您应该做的是:
-application:didFinishLaunchingWithOptions:方法:
[MKStoreManager sharedManager removeAllKeychainData];+isFeaturePurchased:以确保购买成功(应该返回YES)。-removeAllKeychainData。+isFeaturePurchased:,确保应用程序不知道已经购买了该产品(应该返回NO)。-restorePreviousTransactionsOnComplete:onError:。+isFeaturePurchased:以确保产品被恢复(应该返回YES)。确保在整个过程中都使用相同的测试帐户。
顺便说一句,MKStoreKit不对iOS7进行任何收据检查,因此您可能想尝试一个更新的库,比如RMStore (似乎也可以在cocoapods中找到)。
https://stackoverflow.com/questions/20961512
复制相似问题