我正在尝试使用测试帐户测试我的应用内购买。我第一次尝试购买应用内自动续订订阅,一切顺利,没有错误,交易完成如预期,交易状态更新为“SKPaymentTransactionStatePurchased”。但是,当我测试用户尝试再次购买订阅的情况时,我不断收到上述错误。即使商店工具包框架显示一个说明用户已订阅的对话框,我的观察者也会将该事务视为状态失败(SKPaymentTransactionStateFailed)。
storekit文档明确指出 “如果用户试图购买他们已购买的非消费产品或可续订订阅,则您的应用程序将收到该项目的常规交易,而不是恢复交易。但是,该产品不会再次向用户收取费用。您的应用程序应该对待这些交易与原始交易的交易相同“。 就我而言,当我再次购买时,我一直将交易状态变为“失败”。
有什么想法吗?这是在沙箱测试环境中。
答案 0 :(得分:4)
这是预期的行为。您仍然收到一个交易,它只是将其标记为失败状态,因为它不代表新的成功购买。重新购买他们已经订阅的订阅(可能是在全新安装后恢复购买)不是您应该鼓励用户采取的旅程,他们应该被指向恢复购买功能。
可以说你可能想要每次查询失败的购买情况,看看这是否是用户试图做的事情,但是你必须做一些相当多的麻烦来试图区分哪些是真正的失败哪一个是错误的恢复。但是我会说有一个大的“恢复”按钮并指导人们更容易。
答案 1 :(得分:3)
如果您从应用商店应用程序注销,则在您再次购买时似乎正常工作。但如果您的用户尝试两次购买相同的产品,问题仍然存在。
答案 2 :(得分:1)
当Sandbox服务器出现故障和/或损坏时,我得到了这个。查看Apple的开发人员论坛,看看是否还有其他人在做同样的事情。
[需要开发人员登录] http://devforums.apple.com/community/ios/integration/storekit