2017-02-10 157 views
2

我正在将应用内购买添加到我的应用中。 我对此有些疑惑。如何处理? 我们是否需要在这个状态下实现自己,否则苹果公司会处理这个问题?如何处理SKPaymentTransactionStateDeferred?

如果我们应该实施手段如何在这里处理? 如何使用沙箱测试仪帐户进行测试? 有人告诉我清楚。提前致谢。

回答

1

据苹果StoreKit文件,延缓状态是: -

该交易是在排队,但其最终地位正在等待外部动作,如询问购买。更新您的用户界面以显示延迟状态,并等待另一个指示最终状态的回调。

我们得到的交易延缓状态,如果用户是苹果家人分享&家族管理员启用问买的一部分。

当儿童用户尝试购买应用内商品时,会向父用户发送请求以进行审批。家长用户在Ask to Buy流程开始后有24小时批准或取消孩子的购买。如果家长未能在24小时内回复,“Ask to Buy”请求将从iTunes Store服务器中删除,并且您的应用的观察者不会收到任何通知。

您应该更新您的用户界面以反映这种延迟状态。避免在等待交易更新时阻止您的用户界面或游戏玩法。

沙盒环境,我们可以通过SKMutablePayment像测试延缓状态: -

let product = SKMutablePayment(product: productDetails) 
product.simulatesAskToBuyInSandbox = true //Enable to test deferred state. 
SKPaymentQueue.defaultQueue().addPayment(product) 

有关信息:

的iOS 8引入了询问购买,这让父母批准儿童发起的任何购买交易,包括App Store上的应用或应用内购买。当孩子要求购买时,Ask to Buy会通过发送Deferred状态表明该应用正在等待父母对该购买的批准。