12得票1回答
iOS应用内购买收据和不同iTunes用户的处理方式

我正在本地设备上使用收据验证,并针对 iOS 7+ 进行测试。 我在沙盒环境中测试自动续订订阅的应用内购买,发现了以下情况: - 用户A在设备上登录iTunes账户,购买应用内的订阅,获取应用程序收据。 - 用户A注销了设备上的iTunes账户,用户B登录 - 用户B启动应用程序 - 用户...

10得票1回答
如何从iOS 11的收据中获取原始应用程序版本(即第一个购买的版本号)?

我有一个付费的iOS应用。 我需要从苹果AppStore收据中获取original_application_version号码(用户购买的第一个版本)。 为了获取收据,在我的应用程序加载时,我使用checkReceiptFromAppStore()函数: func checkReceip...

10得票6回答
IOS收据验证错误21002

我正在尝试在服务器端使用收据验证。一切都很好,但有时候出现奇怪的问题:验证10次都没问题,但第11次就会出现21002错误。我不知道该怎么办。有时候在启动应用程序后第一次验证收据时会出现21002错误。 应用程序端: func validateReceipt(productID: Stri...

9得票1回答
iOS应用收据验证 - 在模拟器和调试设备上,收据丢失

为什么我的应用在开发中会缺少收据? 我正在使用Xcode 7.3.1运行我的iOS(7、8、9)应用程序。该应用程序的收据似乎已经丢失了。此应用程序目前在App Store上发布,因此我拥有开发者凭据和“沙盒”用户登录。 模拟器 当运行以下代码时: NSURL* url = [[NSB...

9得票2回答
无法获取用户安装的原始应用程序版本(收据验证)?

我有一个应用程序,最近更新了以支持应用内购买。之前的版本(付费但没有应用内购买)是1.0,当前的版本是1.1。 由于应用内购买本质上解锁了所有功能(这些功能包括在付费版本1.0中),我希望原来下载过版本1.0的用户,如果按下我的恢复购买按钮,可以升级到最新版本。 为了实现这一点,我首先尝试...

8得票1回答
在应用程序更新后,[NSBundle appStoreReceiptURL]中的收据是否仍然存在?

在生产环境中,如果用户在应用内购买后更新了应用的较新版本,那么反映应用内购买的收据是否仍存在于包中?还是会被应用更新抹掉?

8得票4回答
为什么不应该直接调用收据验证端点

苹果提供了一个验证收据的端点:https://buy.itunes.apple.com/verifyReceipt,并警告不要从应用程序调用该端点。 直接在用户设备和应用商店之间建立可信连接是不可能的,因为您无法控制该连接的任何一端,因此可能会容易受到中间人攻击。 据称,安全的方式是首...

7得票1回答
如何确定应用程序(非应用内购买)的原始版本或购买日期

我的应用程序目前是一个付费应用程序。我想将应用程序转换为带有IAP的免费应用程序,并为所有购买过该应用程序的用户提供IAP功能。我认为我可以使用收据验证来确定原始应用程序的购买日期,但这似乎仅适用于IAP,或者使用原始应用程序版本(似乎是构建版本而不是应用程序版本)。然而,在我在testfli...

7得票1回答
在iOS应用内购买收据验证中返回多个交易

我的应用程序包含可消耗的IAP产品,当我使用以下代码调用验证收据时,会返回多个交易: [[NSBundle mainBundle] appStoreReceiptURL]; 有没有办法只返回最后一笔交易? 这与恢复购买有关吗? 我查看了这个Multiple receipt count...

7得票1回答
如何将OpenSSL添加到Swift项目中

我正在学习如何在我的iOS/OSX项目中添加应用内购买收据验证。 这里有一个很好的概述here,WWDC14也有关于这个主题的好视频。 有很多示例代码,但每个人都会跳过一步。如何导入openSSL头文件。Swift编译器会抱怨没有这样的模块。 import Foundation impo...