获取"购买停止"在应用程序购买

时间:2014-04-03 05:50:01

标签: ios testing in-app-purchase sandbox storekit

我创建了一个测试用户,并在“设置”中从手机中退出。 当我尝试使用我的测试帐户在我的应用中尝试应用内购买时,我会“确认您的订阅”,这很好,但后来我“已停止购买”

我不知道我错过了哪一步。感谢任何能给我任何线索的人。

1 个答案:

答案 0 :(得分:0)

使用测试帐户调试应用程序。 App Store是一个交易环境,任何用户都可以在这种环境下购买应用程序,但如果要在开发过程中测试应用程序,我们就无法在真正的Apple商店中付费。 Apple为开发人员提供了一个用于调试购买行为的测试沙箱,它完全复制了应用程序商店的交易环境,但在沙盒环境中,我们不能使用通常的Apple帐户,而是需要使用测试帐户。 (只要有应用ID,您就可以添加其商品并进行测试。) 在iTunesConnect主页中可以单击“管理用户”进入用户管理页面,然后选择“测试用户”以创建测试帐户。根据最新Apple开发人员的感谢,创建一个测试帐户必须使用真实的电子邮件地址,并且密码必须符合要求,激活后需要在邮件中使用测试帐户。这里创建的可用于购买应用程序开发过程的高级帐户,必须记住,该帐户不能用于测试在生产环境中登陆真实应用程序商店和购买行为,或者您的iTunes帐户可能会被停止。 (测试帐号可以通过itnunes连接添加,只需在此处添加帐号信息即可注意此帐号只能用于我们的应用程序沙箱测试,不适用于正常购买的商品(例如,购买已经应用于搁置商品),否则Apple将禁用该帐户。) 当我们确认购买产品时,我们将在transactionReceipt中获取一个SKPaymentTransaction对象来验证信息(即一组json字符串),我们进行base64加密,然后按照Apple要求的格式(具体参考文件)被发送到它的验证地址。验证成功后,应用商店内返回的购买商品的信息包含可以使用的特定信息。

购买商品后,我们的本地事务队列中会有一个新对象,事务队列存储在本地硬盘上,除非我们调用finishTransaction,否则事务对象不会被删除。并且当程序打开时(这里我们必须注意,下面将详细解决这个问题)如果事务队列不为空,那么我们将通知ios事务队列状态更新,我们将根据事务状态进行处理宾语。 SKPaymentTransactionStatePurchased交易成功,然后钱被扣除完毕,我们要确保将产品发送给用户 SKPaymentTransactionStateFailed事务失败的原因有很多(您可以通过SKPaymentTransaction.error.code查看失败的具体原因),最常见的是SKErrorPaymentCancelled(用户取消事务),或者没有输入有效的itunes id SKPaymentTransactionStateRestored已经购买的非消耗性商品,那么我们必须根据交易成功来处理。

如果事务失败,我们可以从事务队列中删除事务。如果成功,他们必须启动身份验证,验证结果等待处理。因此,不超过三个,验证成功,验证非法,验证错误。我们要谈谈成功和非法交易事务对象是否从队列中删除,验证错误可能是认证服务器失败,我们不应该删除事务对象,再次回到程序上进行验证,直到成功或失败