SKPaymentTransaction expires_date,似乎“自动续订”机制在沙箱中不起作用

时间:2012-03-31 01:45:08

标签: objective-c ios in-app-purchase sandbox storekit

我在我的应用程序中几乎管理了自动续订订阅,但发生了一件奇怪的事情 - 它不会自动续订。

我有一个按钮,它在我的产品上添加了一个SKPayment,它让我收到它的SKPaymentTransaction,这是非常活跃的。

比我保存该收据并尝试再次发送给Apple检查过期日期。它返回我第一次购买的日期,而不是最后一次,在expiredate中。当订阅时期间结束(在沙箱中五分钟),它只返回21002

但如果我再次手动续订,新的收据会给我更新的过期日期,我会再次保存,一切都顺利。

而且,是的,original_purchase_date在这两个收据中都是相同的。

MAybe我只是不明白,如何检查到期日期是否有效?

2 个答案:

答案 0 :(得分:4)

如果你想节省几个小时的生命,这是我花了几个小时(不是文学上)找出的关键:

在沙盒中使用一段时间后自动续订STOPS

有人说它发生了6次(montky订阅30分钟),然后你开始获得21006,你必须再次购买它,即使在回购后,它也不会再自动续订 - 你必须创建一个新的测试用户来再次测试应用程序中的那部分内容。

我自己也感受到了,苹果论坛上的人说他们遇到了同样的问题。

https://devforums.apple.com/thread/105350

实际上,我搜索了一下,并在Apples iTunes Connect开发者指南中找到了,但我之前没有读过它,所以它让我非常头疼。

答案 1 :(得分:1)

在我的情况下,自动更新工作两次,然后我开始看到21006.昨天,使用相同的用户,它根本不起作用(购买一次,在第一个到期日期过后过期)。 Apple说你不必创建一个新的测试用户,这可能是真的 - 至少在我的情况下,使用一个或另一个用户没有区别,这似乎是沙箱的决定。

我也听说过(至少在制作中)你应该在续订时实际收到一个新的交易(状态恢复),但是我从来没有在Sandbox中看到过这种情况,我在In-中找不到相应的信息。应用程序购买编程指南。