2014-11-11 7 views
6

Próbuję robić zakupy w aplikacji i wszystko działa dobrze, z wyjątkiem przywracania. Poniżej znajduje się kod Pisałem:Przywracanie zakupów w aplikacji:

func paymentQueueRestoreCompletedTransactionsFinished(queue:SKPaymentQueue!) 
{ 
    for transaction:AnyObject in queue.transactions 
    { 
     let trans : SKPaymentTransaction = transaction as SKPaymentTransaction 
     var identifier : NSString = trans.payment.productIdentifier 
     println(identifier) 
    } 
} 

Problem, że twarz jest tutaj nie jestem coraz purchased identifier tutaj. Myślę, że źle napisałem kod.

Odpowiedz

0

Riyazul, musisz sprawdzić oryginalną transakcję podczas przywracania zakupów.

Kod powinien czego potrzebujesz to:

var identifier : NSString = trans.originalTransaction.payment.productIdentifier 

Daj mi znać, jeśli to nadal nie działa.

+0

Przetestowałem kod w piaskownicy, ale nie zwróć dowolny identyfikator produktu. Robię renowację przy pomocy konsumpcyjnych zakupów – TomSawyer

1

Dodaj poniżej dwóch linii kodu na przycisk akcji kliknij

SKPaymentQueue.default().restoreCompletedTransactions() 
SKPaymentQueue.defaultQueue().addTransactionObserver(self) 

Edycja - dla Swift 3:

SKPaymentQueue.default().add(self) 
SKPaymentQueue.default().restoreCompletedTransactions()