如何修复在生产中失败的应用内购买?

Posted

技术标签:

【中文标题】如何修复在生产中失败的应用内购买?【英文标题】:How to fix failing In-App purchase on production? 【发布时间】:2019-06-19 02:07:38 【问题描述】:

我已经与活跃的应用内购买(订阅)的活跃用户一起启动了应用。

最近我添加了 2 个新的应用内购买(自动更新订阅),它们与现有的 2 个重复但价格不同,并且所有内容都得到了 Apple 的批准并发布。但不幸的是,由于以下错误,这 4 个应用内购买现在都无法购买:

“无法连接到 iTunes Store”

但是在那个消息框之前,我收到“你都准备好了”,所以这是同时出现的 2 条相反的消息。 + 所有现有订阅也受到影响 - 它们未激活并且“恢复购买”选项不起作用......因此,由于来自已执行购买但已停用它们的现有用户的消息,我的支持聊天正在爆炸。购买仍在 iPhone 设置的“订阅”列表中。

我已经在 Sandbox 上测试了所有应用内购买 - 效果非常好。我所有的付费应用程序协议、银行等都正常 - 在我添加这 2 个新订阅之前它工作得很好。 该版本于 24 小时前上线。 所有订阅都处于“已批准”状态和“可出售”。

有人遇到过同样的问题吗?有什么办法可以解决吗?

对我来说,问题似乎出在 Apple 方面:需要修复一些损坏/卡住的东西,因为除了这 2 个新产品 ID 之外,我方面没有代码更改。

【问题讨论】:

你在生产中检查过这个吗?你能重现这个问题吗?你有验证服务器,你重新检查这个服务器吗? @Aisner 是的,问题出在生产上。沙盒工作正常。我已恢复 2 个新订阅,现在效​​果很好。 【参考方案1】:

当 SKProductsRequest 传递了错误的 NSSet 时,也会发生此错误:

错误:

let products = NSSet(objects: ["id1", "id2"])

正确:

let products = NSSet(objects: "id1", "id2")

所以请确保不是这种情况!但无论如何,如果是这种情况,它也不会在 Sandbox 上工作。

您可以查看此文档, https://developer.apple.com/library/archive/technotes/tn2413/_index.html#//apple_ref/doc/uid/DTS40016228-CH1-ACCTINFO

我相信你也已经经历过这个,但如果能帮助你,

https://forums.developer.apple.com/thread/98763

【讨论】:

感谢您的回答!不幸的是,产品列表的创建没有任何问题,产品甚至从 Apple 服务器成功返回,并且之前相同的代码运行良好。沙盒也可以正常工作。 我想那你需要联系苹果人来解决这个问题!

以上是关于如何修复在生产中失败的应用内购买?的主要内容,如果未能解决你的问题,请参考以下文章

iOS App购买在生产中不起作用

Active Merchant 和 Authorize.net 在生产中返回失败

表条目在开发中工作正常,但在生产中没有

如何修复应用内购买错误“交易错误:无法连接到 iTunes Store 代码 0”? [复制]

如何修复 Android 应用的应用购买问题?

使用InAppBillingPlugin恢复购买