0

アプリのすべての広告を削除するための単純な IAP を作成しようとしています。restoreIAP を購入すると機能しますが、(IAP を購入したことがない) クリア サンドボックス アカウントで購入しようとすると機能します。

そのため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購入は常に成功します。

何かアイデアはありますか?

4

1 に答える 1

0

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")
}
于 2016-02-01T11:40:59.447 に答える