如何确认应用内购买是不是真的对测试 iTunes Connect 用户有效?

Posted

技术标签:

【中文标题】如何确认应用内购买是不是真的对测试 iTunes Connect 用户有效?【英文标题】:How can I confirm whether the in-app purchase actually worked on a Test iTunes Connect user?如何确认应用内购买是否真的对测试 iTunes Connect 用户有效? 【发布时间】:2013-10-27 02:58:20 【问题描述】:

我已经设置了一个 iTunes Connect 测试用户并且能够执行应用内购买,部分是通过本指南:http://www.raywenderlich.com/21081/

根据代码,交易已完成。但我想确定一下,所以我想也许我的测试帐户的电子邮件地址收到了确认交易的消息。没有这样的消息,可能是因为它是沙盒模式购买。

如果我的代码出现错误并给我错误的信号,我是否有其他方法可以确认测试购买实际上是由 Apple 的测试服务器处理的?我查看了我的 iTunes Connect 页面,但似乎没有包含该信息的视图。

【问题讨论】:

【参考方案1】:

您在这里的主要信息来源来自 SKPaymentTransactionObserver 协议:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 

当您收到以 transaction.transactionState == SKPaymentTransactionStatePurchased 回复的交易时,您就知道 Apple 与您的客户之间的一切都很顺利。

您的代码不会直接调用此方法,除非您对私有 API 进行了一些认真的(并且未经 Apple 批准)修补,否则您可以相信您在此处收到的消息来自 Apple,并且是合法的。通过 appStore 推动了数十亿美元,你可以打赌他们也已经从他们的角度解决了这段代码中的错误。

您不会收到沙盒测试帐户的任何电子邮件确认。您所能做的就是适当地处理委托方法并继续前进。

【讨论】:

【参考方案2】:

当您收到 SKPaymentTransactionStatePurchased 状态时,表示交易已成功完成。

在沙盒模式下,Apple 不会向任何人发送任何电子邮件,但是当您在 Live(生产)环境中执行此操作时,Apple 会发送一封包含已购买产品详细信息的电子邮件。

【讨论】:

以上是关于如何确认应用内购买是不是真的对测试 iTunes Connect 用户有效?的主要内容,如果未能解决你的问题,请参考以下文章

应用内购买测试是不是需要真实产品?

iTunes 连接“测试用户”不适用于应用内购买

应用内购买确认对话框的本地化

在 iTunes Connect 中添加新的应用内购买时保存按钮消失

iTunes Connect 应用内购买多个应用

应用内购买实施