如果我们只能检查收据,检查交易队列有什么意义呢?

What is the point of checking the transactions queue if we can just check the receipts?

对于Apple in app purchase,看来我们应该观察交易队列:

for (SKPaymentTransaction *transaction in transactions)  {
  switch (transaction.transactionState) {
      case SKPaymentTransactionStatePurchased:
      ...
}

但我们还需要验证收据(解析 [[NSBundle mainBundle] appStoreReceiptURL]]; 处的内容)。不过那……能不能走捷径直接看收据?有什么区别?

要验证收据,您应该create custom server并将收据发送到服务器。收据还包含所有交易,您应该在其中找到最后一笔交易,这不是向用户显示一些有关购买的消息的简单方法。 我使用交易来进行统计和快速获取信息,并使用收据来验证购买。
您也可以使用收据进行购买的双重检查,如果收据不包含适当的交易,您可以限制对内容的访问。