gpt4 book ai didi

ios - iOS 中的自动续订应用内购买

转载 作者:行者123 更新时间:2023-11-29 02:41:13 40 4
gpt4 key购买 nike

我目前无法为我的应用实现 IAP。这是有关其工作原理的基本信息

  • 我提供为期一年的自动续订服务订阅。用户将支付 IAP,他们将有权访问该服务。
  • 用户应该可以购买多个订阅。用户有可能(尽管不太可能)想要连接到两种不同的服务,因此他应该能够同时支付两种订阅费用

这是基本的想法,听起来很简单。因此,我按照 Apple 的说明取得了巨大成功,直到 paymentQueue:updatedTransactions 被调用为 SKPaymentTransactionStatePurchased 状态。这里出现了几个问题。

  1. > Apple's documentation表明您应该将 transaction.transactionReceipt 存储在 NSUserDefaults 中。所以我存储了一个数组(因为我想支持多个同时订阅)。问题是这在 iOS7 中已被弃用,所以我不知道该用什么代替。
  2. 下一个问题是我不知道如何处理这些数据。一旦我的应用程序被终止并重新启动,我所知道的就是我在 NSUserDefaults 中的数组的大小(例如,有两张收据,所以已经购买了两个订阅)。但是,如何在自己的服务器上读取收据号码中的数据来做一些验证呢?如何获取订阅有效的日期范围? (一旦订阅不再有效,我需要阻止访问,假设停止自动续订并且它过期)。我只有 NSData 对象,我不知道如何处理。

感谢您的帮助!

最佳答案

你还有很长的路要走。保存 transaction.transactionReceipt 的目的是在将来某个时候将其提交到 Apple 服务器。 Apple 服务器通过发送该订阅的最新收据来响应收据。现在 transaction.transactionReceipt 已被弃用,您可以从板载收据中获取收据:

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];

然后对其进行解码(使用 OpenSSL 和其他 C++ 内容),或者再次将其发送到 Apple 服务器进行解码和响应。

一种更简单的方法,或许也是“服务”的应用程序审核更容易接受的方法是使用非续订订阅。非续订订阅可以重叠,因此应用程序可以轻松处理 2 项服务的问题。

关于ios - iOS 中的自动续订应用内购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25776386/

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