2016-01-31 2 views
0

Я пытаюсь сделать простой 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

It's Non consumable IPA – FlorianG

ответ

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") 
} 
+0

Это был неправильный код, я меняю его на свой первый пост. Он не работает с MKStoreKitRestoredPurchasesNotification и kMKStoreKitRestoringPurchasesFailedNotification – FlorianG

 Смежные вопросы

  • Нет связанных вопросов^_^