I am implementing Non-renewing subscription IAP in my app where I am making server implementation to expire a subscription. I am stuck when I click on a subscription I already have bought, It shows a dialog, "This In-App purchase has already been bought. It will be restored for free." with OK button. I have two questions here:
我正在我的应用程序中实现非更新订阅IAP,我正在使服务器实现过期订阅。当我点击我已经购买的订阅时,它会显示一个对话框,“这个应用内购买已经被购买了。”它将被免费恢复。我有两个问题:
- Sometime it shows the above dialog but sometimes it shows "Tap buy to renew or extend it." dialog. Can anyone tell me whats reason behind this? Or it is just a Sandbox issue. (This screenshot from another thread.)
- 有时它会显示上面的对话框,但有时它会显示“点击购买来更新或扩展它”对话框。谁能告诉我这背后的原因吗?或者这只是一个沙箱问题。(这个截图来自另一个线程。)
- When I get "This In-App purchase has already been bought. It will be restored for free." alert, how i can stop activity indicator? Is there a delegate method to track this?
- 当我得到“这个应用内购买已经被购买。“警告,我怎样才能停止活动指示器?”是否有一个委托方法来跟踪它?
I could not found but is there anything new came in iOS 8?
我找不到,但是iOS 8有什么新东西吗?
Thank you
谢谢你!
2 个解决方案
#1
12
-
For a non-renewable subscription, the correct dialog is "Tap buy to renew or extend it.". The reason for this is that once a non-consumable product is owned, it is owned permanently; hence the "renew or extend" language.
对于不可更新的订阅,正确的对话框是“点击购买来更新或扩展它”。原因是,一旦非消耗品被拥有,它就被永久拥有;因此有了“更新或扩展”的语言。
-
You are getting this dialog because you are attempting to purchase the same product again before completing the transaction on the app's side. The App Store has approved the transaction and sent you a transaction ID, but you have not confirmed that you have delivered the promised content/access. Thus, the transaction is left in the
approved
state. The transaction remains tied to the app until you finish it.您会得到这个对话框,因为您正在尝试在完成应用端的事务之前再次购买相同的产品。App Store已经批准了交易,并给你发送了一个交易ID,但是你还没有确认你已经交付了承诺的内容/访问。因此,事务保持在已批准的状态。在你完成交易之前,交易仍然绑定在应用程序上。
See "Finishing the Transaction" in Apple's (confusing, convoluted) documentation.
参见苹果(Apple)(令人困惑、费解)文档中的“完成交易”。
#2
0
I met this problem in consumable IAP, and I have called the function [[SKPaymentQueue defaultQueue] finishTransaction:transaction]
. Then I found that there is a exception occurred in a function before the call, then I exchange the position of two function, the problem is solved now.
我在消耗性IAP中遇到了这个问题,并调用了函数[[SKPaymentQueue defaultQueue] finishTransaction:transaction]。然后我发现一个函数在调用前发生了异常,然后我交换了两个函数的位置,现在问题解决了。
#1
12
-
For a non-renewable subscription, the correct dialog is "Tap buy to renew or extend it.". The reason for this is that once a non-consumable product is owned, it is owned permanently; hence the "renew or extend" language.
对于不可更新的订阅,正确的对话框是“点击购买来更新或扩展它”。原因是,一旦非消耗品被拥有,它就被永久拥有;因此有了“更新或扩展”的语言。
-
You are getting this dialog because you are attempting to purchase the same product again before completing the transaction on the app's side. The App Store has approved the transaction and sent you a transaction ID, but you have not confirmed that you have delivered the promised content/access. Thus, the transaction is left in the
approved
state. The transaction remains tied to the app until you finish it.您会得到这个对话框,因为您正在尝试在完成应用端的事务之前再次购买相同的产品。App Store已经批准了交易,并给你发送了一个交易ID,但是你还没有确认你已经交付了承诺的内容/访问。因此,事务保持在已批准的状态。在你完成交易之前,交易仍然绑定在应用程序上。
See "Finishing the Transaction" in Apple's (confusing, convoluted) documentation.
参见苹果(Apple)(令人困惑、费解)文档中的“完成交易”。
#2
0
I met this problem in consumable IAP, and I have called the function [[SKPaymentQueue defaultQueue] finishTransaction:transaction]
. Then I found that there is a exception occurred in a function before the call, then I exchange the position of two function, the problem is solved now.
我在消耗性IAP中遇到了这个问题,并调用了函数[[SKPaymentQueue defaultQueue] finishTransaction:transaction]。然后我发现一个函数在调用前发生了异常,然后我交换了两个函数的位置,现在问题解决了。