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总是成功。

你有什么想法吗?

+1

什么是您的IAP产品的类型? –

+0

“transactionState”属性的值是什么? – holex

+0

这是非消耗性IPA – FlorianG

您可以使用MKStoreKitRestoredPurchasesNotificationkMKStoreKitRestoringPurchasesFailedNotification观察员检查恢复交易。

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