gpt4 book ai didi

ios - 如何了解我是否已经为应用内购买付款

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:21 25 4
gpt4 key购买 nike

我正在制作一个应用程序,其中有书籍,书籍有音频和视频服务。

客户想要应用程序内购买。

以下是应用内的运作方式。

如果用户想买这本书,用户会购买这本书,交易完成后,会自动下载 zip 文件(从我的服务器上为这本书添加图像、视频和音频)。

一旦我有了 zip,我就会在下载完成后解压缩它。

对我来说,问题是如何确定用户 xyz 之前是否购买过这本书。

例如今天用户 A 为 B 书付款。我如何获取用户 A 已购买书的信息?

如果我可以有用户注册系统,我可以通过我系统的用户 ID 来识别用户。

有人说,把书的id保存在NSUserDefaults中,但担心如果我删除应用程序并重新安装,我应该免费下载Book B。

我只想知道,我怎样才能跟踪哪个用户下载了哪本书。

我正在为 iOS 6 和 7 开发应用

最佳答案

编辑:

您的应用通过调用 SKPaymentQueue 的 restoreCompletedTransactions 方法启动流程。这会向 App Store 发送一个请求,以恢复您应用程序的所有已完成交易。如果您的应用为其支付请求的 applicationUsername 属性设置了一个值,如“检测不正常事件”中所述,请使用 restoreCompletedTransactionsWithApplicationUsername: 方法在恢复交易时提供相同的信息。App Store 为之前完成的每笔交易生成一个新的交易。恢复的交易有一个原始交易的引用:SKPaymentTransaction 的实例有一个 originalTransaction 属性,收据中的条目有一个原始交易标识符字段。您的交易队列观察器被调用,每个恢复的交易的状态为 SKPaymentTransactionStateRestored,如“等待 App Store 处理交易”中所述。此时您采取的操作取决于您应用的设计。

  • 如果您的应用使用应用收据并且没有 Apple 托管内容,不需要此代码,因为您的应用不会恢复完成的交易。立即完成所有恢复的交易。
  • 如果您的应用使用应用收据并且有 Apple 托管的内容,让用户在开始之前选择要恢复的产品恢复过程。恢复期间,重新下载用户选择的内容并立即完成任何其他交易

.

NSMutableArray *productIDsToRestore = <# From the user #>;
SKPaymentTransaction *transaction = <# Current transaction #>;

if ([productIDsToRestore containsObject:transaction.transactionIdentifier]) {
// Re-download the Apple-hosted content, then finish the transaction
// and remove the product identifier from the array of product IDs.
} else {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

Source

关于ios - 如何了解我是否已经为应用内购买付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730534/

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