MKStoreKit恢复购买总是成功
问题描述:
我想做一个简单的IAP删除我的应用程序的所有广告。 当我购买IAP它工作,但当我尝试restore
购买与清洁沙箱帐户(它从来没有购买IAP),它的工作。MKStoreKit恢复购买总是成功
因此,restorePurchases()
总是工作,即使用户以前没有购买IAP。
有我的代码: 当用户选择还原按钮,我执行这个方法:
func restaureIAP() {
PKNotification.toast("Chargement en cours...")
MKStoreKit.sharedKit().restorePurchases()
}
我还补充观察员:
// Product restaure
NSNotificationCenter.defaultCenter().addObserverForName(kMKStoreKitRestoredPurchasesNotification,
object: nil, queue: NSOperationQueue.mainQueue()) { (note) -> Void in
PKNotification.success("Restauré !")
print ("Succes restaure: \(note.object)")
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "isPurchase")
}
NSNotificationCenter.defaultCenter().addObserverForName(kMKStoreKitRestoringPurchasesFailedNotification,
object: nil, queue: NSOperationQueue.mainQueue()) { (note) -> Void in
PKNotification.failed("Erreur")
print ("Failed restaure: \(note.object)")
}
此应用程序可在AppStore
,并有同样的问题:购买IAP工作,但购买restore
总是成功。
你有什么想法吗?
答
您可以使用MKStoreKitRestoredPurchasesNotification
和kMKStoreKitRestoringPurchasesFailedNotification
观察员检查恢复交易。
MKStoreKit.sharedKit().startProductRequest()
NSNotificationCenter.defaultCenter().addObserverForName(kMKStoreKitRestoredPurchasesNotification,
object: nil, queue: NSOperationQueue.mainQueue()) { (note) -> Void in
print ("Restored product: \(note.object)")
}
NSNotificationCenter.defaultCenter().addObserverForName(kMKStoreKitRestoringPurchasesFailedNotification,
object: nil, queue: NSOperationQueue.mainQueue()) { (note) -> Void in
print ("Restored failed")
}
+0
这是错误的代码,我改变了我的第一篇文章。它不适用于MKStoreKitRestoredPurchasesNotification和kMKStoreKitRestoringPurchasesFailedNotification – FlorianG
什么是您的IAP产品的类型? –
“transactionState”属性的值是什么? – holex
这是非消耗性IPA – FlorianG