在生产环境中,如果用户在应用内购买后更新了应用的较新版本,那么反映应用内购买的收据是否仍存在于包中?还是会被应用更新抹掉?
我有一个应用程序,最近更新了以支持应用内购买。之前的版本(付费但没有应用内购买)是1.0,当前的版本是1.1。 由于应用内购买本质上解锁了所有功能(这些功能包括在付费版本1.0中),我希望原来下载过版本1.0的用户,如果按下我的恢复购买按钮,可以升级到最新版本。 为了实现这一点,我首先尝试...
Apple文档中关于收据验证的说明指出,在启动后立即执行收据验证。这意味着检查[[NSBundle mainBundle] appStoreRecieptURL]返回的路径中是否有数据,如果没有,则通过SKReceiptRefreshRequest进行刷新,并进行验证。上述链接的文档涉及iOS...
我不确定在哪里找到验证常规应用内购买所需的共享密钥。 大约一年前,我创建了一个服务器脚本,从我的iOS应用程序调用它来使用苹果公司的 .../verifyReceipt 端点验证应用商店收据。 过去一年一切正常,现在我想扩展该脚本以对第二个应用执行相同操作。 问题:我不记得在哪里找到必须与收据...
我们在理解iOS中的收据验证流程方面存在问题。 以下是我们目前的做法(在开发中): 在applicationDidFinishLaunching和applicationWillEnterForeground中,我们在服务器端验证收据,如果没有收据或收据无效,我们尝试刷新收据并重新验证。 ...
我正在尝试在服务器端使用收据验证。一切都很好,但有时候出现奇怪的问题:验证10次都没问题,但第11次就会出现21002错误。我不知道该怎么办。有时候在启动应用程序后第一次验证收据时会出现21002错误。 应用程序端: func validateReceipt(productID: Stri...
我使用OpenSSL和asn1c编译器在设备上本地实现了收据验证,帮助我完成了苹果的“Receipt Validation Programming Guide”。我的应用只支持iOS 7及以上版本。 按照苹果的建议,我调用[[NSBundle mainBundle] appStoreRec...
我需要为验证苹果的应用内购买 receipt_data 实现后端,用于应用内点数购买(既不是订阅也不是需要在每次应用程序启动时“记住”和重新验证的物品)。 我并不精通 iOS。我只需开发后端,以便可以与客户端的移动应用集成。 我找到了进行验证的教程和示例代码,但我非常希望有一个实际的 re...
我有一个付费的iOS应用。 我需要从苹果AppStore收据中获取original_application_version号码(用户购买的第一个版本)。 为了获取收据,在我的应用程序加载时,我使用checkReceiptFromAppStore()函数: func checkReceip...
我正在设置从我的服务器验证 App Store 内购买收据的功能,一切似乎都正常,但我没有看到任何方法来为 Apple 的沙盒和生产环境创建单独的共享密钥。 我希望这些共享密钥是不同的,以便我可以安全地将沙盒密钥放在代码库中的配置文件中,例如用于单元测试。而我只会将生产共享密钥保留在我们生产...