in-app-purchase - 如何验证有效订阅的用户是否成功兑换了苹果订阅优惠

标签 in-app-purchase storekit

我们正在实现subscription offers在我们的应用程序中,一切进展顺利。但是,如果用户在兑换优惠时有有效订阅,我们会从支付队列中收到失败的交易,尽管系统弹出窗口显示“您已全部设置完毕”。

我不知道它是否在任何地方都有记录,但我认为在这种情况下失败的交易表明该用户尚未被收费。然而,这是令人困惑的根源 - 我们到底如何知道用户是否成功兑换了优惠?

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

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

更新:看起来 transaction.errortransaction. payment. paymentDiscount 在 Mac 上nil,但在 iPad 上存在(对于相同的测试帐户)现有订阅者,尽管在后一种情况下错误消息仍然模糊:

Error Domain=SKErrorDomain Code=0 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store}

最佳答案

所以这只是沙箱的一个怪癖。有效订阅的跨级从未在 Sandbox 上正常运行,而且实际上仍然无法提供优惠。尽管如此,它们在生产中工作得很好。

但是,您应该仍然能够在订阅失效的情况下测试优惠。因此,一旦该帐户在该产品中完成了一个周期,它就应该起作用。

您可能想查看this关于此的博客文章。

用户的收费方式取决于多种因素。

关于in-app-purchase - 如何验证有效订阅的用户是否成功兑换了苹果订阅优惠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55801554/

相关文章:

iOS。应用内购买神秘错误

ios - 无法恢复非续订订阅的已完成交易

ios - 如何正确处理自动续订订阅的续订(iOS)

objective-c - 自动更新 IAP : latest_receipt field

objective-c - 应用内购买错误代码 0

iphone - 自动续订订阅 – 与非续订订阅的区别

ios - 我应该在应用内购买期间对失败的交易调用 finishTransation 吗?

java - 应用内简单教程

ios - 应用内购买返回 0

objective-c - 已在 StoreKit 中购买订阅