2015-03-17 3 views
1

Я пишу код в swift для обработки IAP. Как вы определяете, какой IAP был приобретен внутри функции paymentQueue?Как определить, какой IAP был приобретен?

Вот код, который я до сих пор:

func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) { 

    println("Received Payment Transaction Response from Apple") 

    for transaction:AnyObject in transactions { 
     if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{ 
      switch trans.transactionState { 
      case .Purchased: 
       println("Product Purchased"); 
       SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction) 
       break; 
      case .Failed: 
       println("Purchased Failed"); 
       SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction) 
       break; 
      case .Restored: 
       println("Product Restored"); 
       SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction) 
       // case .Restored: 
       //[self restoreTransaction:transaction]; 
      default: 

       break; 
      } 
     } 
    } 
} 
+0

Значение 'productIdentifier' экземпляра' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'соответствует вашему продукту. – holex

+0

@holex Конечно! Я использовал транзакцию вместо trans. Поэтому productIdentifier не отображается. Еще новый для Свифта. Если вы опубликуете это как ответ, я соглашусь с ним. Благодарю. – loyalpenguin

+0

Я добавил его в качестве ответа, как вы хотели. – holex

ответ

2

SKPaymentTransaction значение экземпляра payment В отеле productIdentifier дает соответствующий продукт.


вы можете прочитать в its Class Reference более о SKPaymentTransaction.

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