gpt4 book ai didi

objective-c - 在 macOS 沙盒环境中购买自动续订订阅后收据未更新

转载 作者:行者123 更新时间:2023-12-05 07:46:21 28 4
gpt4 key购买 nike

我正在尝试在我的 macOS 应用程序中实现 StoreKit 的自动续订订阅功能。

在阅读了数十页并检查了示例之后,我了解了所有内容是如何组合在一起的,但未能使其正常工作。

我正在尝试做的事情:

  1. 应用启动后,立即通过评估本地收据检查是否有可用订阅。我专门检查了任何 In-App Purchase field entries 中取消日期的不可用性。收据的类型以及订阅到期日是否在未来。
  2. 如果没有(事件的)订阅可用,我将使用 StoreKit 的 API 购买订阅。

这两种情况都运行良好,因为此流程在首次购买订阅时运行良好。但是,收据不会在订阅到期日期结束后自动更新。我希望这张收据能定期更新,如 Auto-renewing subscription and app receipt 所示。 .结果,上述第一步失败了,因为某个时间点的过期日期在历史记录中,因此被认为已过期。

我觉得奇怪的两件事:

  • 我的 SKPaymentTransactionObserver 实例仅在购买订阅后(在用户明确购买后)被调用。它永远不会在订阅到期时被调用并且应该自动续订(如上面的博客文章所示);
    • 通过调用它的 request:didFailWithError: 委托(delegate)方法,使用 SKReceiptRefreshRequest API 明确要求更新我的收据(包含 IAP 的到期日期)失败。错误对象为 nil,所以我看不出更新失败的原因。

我可以共享代码,但我感觉这与代码无关,而是某种我没有完全理解的项目/环境设置和/或行为。

你有什么尝试的建议吗?

最佳答案

经过几天的试验,我更改了机制以使用记录在 https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html#//apple_ref/doc/uid/TP40010573-CH104-SW1 上的服务器端验证.显然,这需要在某处运行 Web 服务并使您的环境更加复杂,但至少事情以更稳定(和安全)的方式工作。

关于objective-c - 在 macOS 沙盒环境中购买自动续订订阅后收据未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40845041/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com