我正在我的应用程序中实现非续订订阅IAP,我将使服务器实现到期订阅 . 当我点击我已经购买的订阅时,我被卡住了,它显示一个对话框, "This In-App purchase has already been bought. It will be restored for free." 和OK按钮 . 我这里有两个问题:
-
有时它会显示上面的对话框,但有时会显示 "Tap buy to renew or extend it." 对话框 . 谁能告诉我这背后的原因是什么?或者它只是一个沙盒问题 . (This screenshot from another thread.)
-
当我收到 "This In-App purchase has already been bought. It will be restored for free." 警报时,我如何停止活动指示?是否有委托方法来跟踪这个?
我找不到但是 iOS 8 有什么新东西?
谢谢
2 回答
对于不可更新的订阅,正确的对话框是 "Tap buy to renew or extend it." . 这样做的原因是,一旦拥有非消费品,它就永久拥有;因此"renew or extend"语言 .
您正在获取此对话框,因为您在应用程序端完成交易之前尝试再次购买同一产品 . App Store已批准该交易并向您发送了一个交易ID,但您尚未确认已交付承诺的内容/访问权限 . 因此,事务处于
approved
状态 . 在完成交易之前,交易仍与应用程序绑定 .见"Finishing the Transaction" in Apple's (confusing, convoluted) documentation .
我在耗材IAP中遇到了这个问题,我调用了函数
[[SKPaymentQueue defaultQueue] finishTransaction:transaction]
. 然后我发现在调用之前函数中发生了异常,然后我交换了两个函数的位置,现在问题解决了 .