首页 > 解决方案 > 如何验证 Apple 订阅优惠是否已成功兑换给活跃订阅的用户

问题描述

我们正在我们的应用程序中实施订阅优惠,一切进展顺利。但是,如果用户在兑换优惠时拥有有效订阅,我们会从支付队列中获得失败的交易,尽管系统弹出窗口显示“您已准备就绪”。

我不知道它是否记录在任何地方,但我认为在这种情况下失败的交易表明,该用户没有被收费。然而,这令人困惑——毕竟,我们怎么知道用户是否成功兑换了优惠?

更重要的是,失败事务的错误属性,预期用于“确定发生了什么”实际上是nil。我想将没有错误视为间接证据,表明交易实际上是成功的,但我还没有看到任何支持这一假设的文件。

我意识到订阅优惠是最近才推出的,但也许我们在这里遗漏了一些东西?

更新:在 Mac上看起来transaction.errorand为零,但在 iPad 上(对于相同的测试帐户)为现有订阅者提供,尽管在后一种情况下错误消息仍然含糊不清:transaction.payment.paymentDiscount

错误域=SKErrorDomain 代码=0 "无法连接到 iTunes Store" UserInfo={NSLocalizedDescription=无法连接到 iTunes Store}

标签: in-app-purchasestorekit

解决方案


所以这只是沙盒的一个怪癖。活跃订阅的跨级从未在 Sandbox 上正常工作,而且他们实际上仍然没有提供优惠。虽然,他们在生产上工作得很好。

但是,您仍然应该能够测试过期订阅的优惠。因此,一旦帐户在该产品中完成了一个周期,它应该可以工作。

您可能想查看博客文章。

如何向用户收费取决于一系列因素。


推荐阅读