MKStoreKit 恢复购买总是成功

MKStoreKit restore purchases always success

我正在尝试制作一个简单的 IAP 来删除我应用程序的所有广告。 当我购买 IAP 时它有效,但是当我尝试 restore 使用透明沙盒帐户(从未购买过 IAP)购买时,它有效。

因此,restorePurchases() 始终有效,即使用户之前没有购买 IAP。

这是我的代码: 当用户 select 恢复按钮时,我执行此方法:

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

你有什么想法吗?

您可以与 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")
}