gpt4 book ai didi

iphone - 在应用程序购买中验证

转载 作者:行者123 更新时间:2023-12-03 21:12:41 26 4
gpt4 key购买 nike

我正在构建一个 iPhone 应用程序,该应用程序应该通过应用程序内购买处理订阅。当我在应用程序中从 Apple 收到收据时,我想将收据保存在我自己的服务器上,并且在我的服务器上我还想通过 Apple 服务器验证收据。与我的服务器建立连接非常重要,因为这可以保存稍后需要的有关用户的信息。

在我的 SKPaymentTransactionObserver 中,我现在尝试在 SKPaymentTransactionStatePurchased 上调用我的服务器。问题是,在 SKPaymentTransactionStatePurchased 上似乎有一个标准警报说“谢谢”并且购买已完成。由于应用程序需要一些时间才能联系我的服务器,因此在对我的服务器的调用完成之前会显示此标准警报,如果用户在此处退出应用程序,他认为购买已完成,会发生什么情况?我应该什么时候联系我的服务器?如果我想在对服务器的调用完成时向用户显示警报,我应该什么时候这样做?

这是我正在使用的代码:

//This is called on "SKPaymentTransactionStatePurchased"
- (void) completeTransaction: (SKPaymentTransaction *)transaction
{
[self saveAndVerifyOnServer:transaction];
[[SKPaymentQueue defaultQueue] finishTransaction: transaction];
}

最佳答案

这是 SKPaymentQueue 的文档中关于 finishTransaction 方法的说明:

Your application should call finishTransaction: only after it has successfully processed the transaction and unlocked the functionality purchased by the user.

据此,我认为您需要在服务器上保存并验证交易,并且只有在确认后才调用 finishTransaction 方法。正如 Dean 所指出的,您需要考虑到用户在成功验证之前就退出的情况。

好消息是 SKPaymentQueue 在 session 中持续存在,因此它会记住您还没有完成购买。这意味着下次添加事务观察者时,您的委托(delegate)可能会立即收到调用。您可能需要对服务器进程进行编码,以便它可以重新启动事务。

关于iphone - 在应用程序购买中验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2088755/

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