对于使用非消费类应用内购买的基本应用,有没有人想出使用SKPaymentQueue的最佳做法restoreCompletedTransactions?
我知道建议始终注册一个事务观察器来接收返回到应用程序的待处理事务,但这是一个不同的问题.看起来restoreCompletedTransactions应用程序必须主动决定何时对客户已经进行的所有购买进行轮询.
据我所知,该方法旨在检索可能已丢失的购买.例如,客户可能会以这样的方式安装应用程序或将应用程序移动到新设备,其中应用程序的先前付款的本地记录丢失或重置.
我不清楚的是如何以可靠的方式自动检测这种情况(即如何决定何时轮询丢失的购买).我不想搞砸这一点,并且有可能拒绝客户访问他们已经支付的功能.
与此同时,我不希望restoreCompletedTransactions每次应用程序启动只是为了安全,并且基本上回复了我已经知道的99.9%的交易.(除了应用内购买,我的应用并不需要任何网络连接.)
Apple文档澄清了客户不会再次因他们已经进行的任何非消费性购买而被收费.如果他们尝试重新购买,则仍应将付款交易发送至应用.
最糟糕的情况是,客户可以通过这种方式恢复购买,但我仍然希望避免让他们走上类似于重新购买他们已经支付的东西的道路.