如何确认应用内购买是不是真的对测试 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 用户有效?的主要内容,如果未能解决你的问题,请参考以下文章