SKPaymentTransaction transactionIdentifier 与我的收据不匹配

SKPaymentTransaction transactionIdentifier doesn't match my receipt

当我购买了(免费的)非消耗性应用程序内 'pack',然后从设备上清除该应用程序并重新安装时,随后的 'buy' 请求'pack' 导致应用商店提示用户在说他们已经购买后再次下载 - 太棒了。正是我想要的。

但是当我在收据中验证收款的 transactionID 时,收到的 SKPaymentTransactionID.transactionIdentifier 与收据中的任何内容都不匹配。然而,它确实非常适合消耗品 - 可能是因为它们是 'new' 购买?

目前 restore/download 流程工作正常,但我对收据中的交易 ID 的验证失败,因为没有发出新的交易 ID - 交易日期已被修改。

问:应该吗?或者我在用户已经购买的东西上调用 [[SKPaymentQueue defaultQueue] addPayment:payment]; 是错误的,我应该先阅读收据并更新我的 UI 以便他们只能选择恢复吗?

您需要使用传入 SKPaymentTransactionoriginalTransaction 对象,并与它进行比较。