如何恢复丢失的SKPaymentTransactions?

Hyp*_*ole 9 storekit ios

我有一个测试帐户,在其交易历史记录中只有两次购买.这两种产品都是非消耗品.

我在iPad 1上登录并购买了产品A.

然后我退出iPad 1并登录iPad 2并购买了产品B.

然后我尝试使用[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];在iPad 2上解锁产品A 来恢复以前的交易.

当呼叫回来时,只有产品B在可恢复交易列表中.

此外,当我尝试在iPad 2上再次购买产品A.

SKPayment *payment = [SKPayment paymentWithProduct:productA];
[[SKPaymentQueue defaultQueue] addPayment:payment];
Run Code Online (Sandbox Code Playgroud)

我得到一个弹出窗口说'你已经购买了它.点按"确定"即可免费下载.

如果我已经购买了产品A,当我尝试恢复之前的购买时,为什么它不在产品列表中?为什么我必须让用户再次尝试购买?

编辑:
我发现无论我使用哪种iPad(iPad 1或iPad 2)都没关系,只有产品B出现在可恢复交易列表中,而产品A需要重新购买.

编辑:
我将产品请求,恢复和购买工作外推到自己的项目中,使用与原始相同的捆绑包ID和产品ID.

现在,可恢复交易列表中没有任何内容,但是当我尝试购买任一产品时,会出现相同的弹出窗口.

用破碎的Apple工具再次沿着兔子洞走下去.

编辑:
这次调查的灵感来自用户对丢失权利的一系列投诉.当用户从iPad 2切换到新的iPad 3时,这在很大程度上开始成为一个问题.这在我的所有用户中并不一致,但是他们中的很多人已经提出了将其作为优先事项的恶臭,并且Apple客户支持已经将它们发回给我,但我不确定这是我可以解决的问题特别是因为Apple坚持要成为应用内购买的收银机.

Hyp*_*ole 3

据我所知,这是苹果服务器软件中的一个错误。

  • 我经常看到这个问题,尤其是在使用 iTunes 测试帐户时。iOS 7 GM 中仍然存在问题。 (2认同)