2012-07-09 67 views
6

我正在使用应用程序购买时启用此应用程序。 快乐的道路全部覆盖,一切都很好,我试图找出不开心的路径。商店套件将保留未完成的交易多久?

简而言之,购买绑定到服务器端组件。 购买时,当交易处于“已购买”状态时,我应该出去到服务器,这将启用用户的帐户。 当请求回来时,我清理了一些东西,最后在SKPaymentQueue上调用了-finishTransaction:。

当服务器调用因任何原因失败时,非快乐路径非常多。网络不可用,网络超时,用户在购买之后立即关闭应用程序,并且在可以拨打服务器电话之前,将其命名。

我在5.1模拟器中使用沙箱帐户进行的测试显示,未完成的已购买交易将在下次启动时回到队列中,并且我的代理将被正确调用。 但是,过了一会儿,比如说5分钟,繁荣,消失了就是交易。 考虑到沙盒帐户的整体稳定性,我愿意在模拟器的实现中调用它,但很难说。

处理这个问题的适当方法是什么?

奖金问题:苹果何时实际收费?听起来应该是在应用程序名为-finishTransaction后:应该是,但我无法在任何地方找到任何证据。

谢谢, /KRA

更新:对物理设备 测试,几乎一个小时和交易仍然存在。看起来交易消失是模拟器的事情。

回答

0

当我实施应用内购买时,我放弃了在模拟器中进行测试。行为完全不同。在设备上测试它,看看它是否在那里工作。

我也对你关于收费的问题很感兴趣,因为我不完全确定它(我的应用还没有发布);)。

+0

感谢您的回答。这几乎是我所得到的结论,沙箱是完全不可靠的,而且你必须在进行刺激之前进行信心的飞跃。一些早期的设备测试告诉我,他们总是会回来(也有一些常识表明这一点)。在设备上进行测试也不完全可靠,我有我的份额卸载,重新启动,重新安装感谢商店套件与可怕的“无法到达appstore”错误吓坏了。 – kra 2012-07-09 01:04:12

+0

我不得不说,在设备上测试时我并没有真正陷入太多麻烦。我非常仔细地遵循了这个指南:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/。唯一让我有时感到困惑的是,它会在做一些重新编译之后返回无效的产品ID - 当发生这种情况时,我只需要删除并重新编译/运行。与产品ID的整个代码符号关系对我来说仍然很神奇 - 例如,我不明白为什么它在使用调试签名进行adhoc-testrollout时起作用。 – 2012-07-09 02:28:22

+0

是的,那部分几乎可以,我的问题更多地是在沙箱帐户之间切换。在某些时候,无论您做什么,StoreKit都会放弃,不断返回虚假错误,您几乎不得不卸载/重新启动手机/重新安装。我不记得代码签名有任何问题,你只需要小心使用特定的配置文件,而不是通配符。只要项目可用,它应该工作,不管证书。 – kra 2012-07-09 19:57:54