如何从 SKPaymentTransaction 获取 IAP 收据?

Bri*_*ean 5 in-app-purchase ios swift swift2

如何获取用户 iOS 设备上完成的购买的应用内购买收据?购买后,我们需要在购买后立即验证收据(最好是在SKPaymentTransactionObserver)。否则,当我们尝试单独验证本地收据时......它已经过时了!

下面是我的交易观察者:

extension StoreManager: SKPaymentTransactionObserver {
  func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])    {
    print("Received Payment Transaction Response from Apple");
    for transaction:AnyObject in transactions {
      // check object is a transaction first
      if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{
        switch trans.transactionState {
        case .Purchased:
          print("Product Purchased");
          SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
          // invoke any callback waiting to be called
          purchaseCallbackHolder?([trans.pseudoReceipt]) // here is where I'd like to extract the receipt associated with the transaction
          purchaseCallbackHolder = nil
          break;

        case .Failed:
          print("Purchased Failed");
          SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
          break;
        }
      }
    }

  }
}
Run Code Online (Sandbox Code Playgroud)

请注意上面我已经编写了代码trans.pseudoReceipt。这里的问题是我无法从交易中提取任何收据。然而,当我检查本地收据时......它没有更新!感谢您的帮助。