我今天特别密集吗?我正在开发一个应用程序,它需要为旧的iOS版本提供旧版订阅,并自动续订新版iOS的订阅.
通常情况下,我会使用respondsToSelector测试检查我想要使用的类中的适当的东西,但是我看不到storekit中有任何改变的东西可以让我进行测试.
那么我应该如何检查设备是否支持自动更新子设备?我知道我可以查看明确的iOS版本号,但我真的不想这样做.
我可以做一个更明智的检查吗?
我正在实施一个不续订的iOS应用程序.网上没有太多相关信息; 所以我寻求你的指导.
最让我担心的用例是用户购买订阅一次,然后再次购买后立即延长服务期限(请参见此处的情况).如果该用户退还第一次购买,第二次购买完好无损怎么办?这在实践中甚至是可能的,还是我太偏执了?
假设上述情况可能,我的应用程序将遇到问题,因为据我所知,verifyReceipt只返回最新的好收据(Managing Subscriptions with In-App Purchase在WWDC'12中观看).
我发现Apple无处提供有关退款政策的相关信息.
(自动更新订阅似乎排除了这种情况,因为iTunes自动处理更新操作,并且在iTunes允许之前似乎无法扩展此类订阅.)
我有一个iPhone应用程序,还具有自动更新产品作为应用程序内购买.这些产品是我们服务的订阅,最长可达1年.我们希望在下一版本中从我们的应用中删除整个应用内购买和自动更新产品.
为此,我们删除了应用内的注册选项,因此没有新用户应该能够注册.现在我们要禁用所有现有用户的自动续订.
我怎么能做到这一点?是否足以在iTunes Connect中删除我们应用的应用内商品?用户是否收到有关此消息的通知?
按照 Apple 指南,自动续订订阅是可恢复的 -> 设备可以发送restoreCompletedTransactions到 Apple 服务器,Apple 将回复所有已完成交易的列表。
我的问题是,Apple 是否会发送所有已完成的交易?(仅与购买非消耗品和自动更新订阅相关,ofc)
例如:我的应用程序中有每月自动更新订阅。用户在 2012 年 1 月安装了我的应用。在 2012 年 5 月,他禁用了订阅自动续订。一年后,2013年1月,他再次订阅。2013 年 3 月,他再次禁用订阅自动续订。最后,在 2013 年 6 月,他再次订阅。2013年7月他尝试使用“恢复购买”功能,苹果会发送什么信息?
Apple 将向该设备发送哪些信息?Apple 会发送有关所有订阅的信息,甚至是那些过期的订阅吗?
PS 问题的意义在于获得使用自动更新订阅和恢复有关它们的信息的真实体验。在沙箱中测试有时会返回非常奇怪的结果。
编辑:好的,所以我有足够的测试可以说,是的,Apple 会发送所有已完成的交易,包括与过期订阅相关的交易,即使之后还有另一个订阅。
我有一个使用应用内购买(IAP)的应用程序,特别是可自动更新的订阅.
有时似乎,当订阅自动续订时,本地收据不会自动更新.因此,在本地检查活动订阅是否可用会导致错误.远程执行相同的验证(使用Apple服务器)返回true.
如何以及何时更新本地存储的收据,或者这是否只能手动触发?如果是这样,是否需要使用SKReceiptRefreshRequest或SKPaymentQueue的restoreCompletedTransactions进行此操作?基于Apple的文档,前者似乎是要走的路:
刷新收据的请求,表示用户与您的应用程序的交易.
不幸的是,这失败了,也许是因为它认为有更新?但是有:因为本地收据已过时,因为它不包含续订的订阅状态.
我想确保我正确地做事并且这种行为(偶尔会再次发生)并不是Apple的结果.
感谢您的任何反馈.
Apple 为订阅引入了宽限期。
https://developer.apple.com/app-store-connect/whats-new/?id=billinggraceperiod
我仍然不知道是否需要设置服务器端来支持此功能,或者只是检查服务器上的收据只是一种推荐的方式,我可以在没有服务器端的情况下使用 Grace Period?
例如,您可以在设备中查看收据,以便在没有服务器端的 iOS 上使用自动续订订阅,但是通过服务器查看收据是一种避免人渣的推荐方法。
宽限期说明说您需要检查收据和服务器通知,我想您只能在需要时检查设备上的收据,但不确定服务器通知部分。
任何帮助表示赞赏!
我有一个 5 美元的应用程序。我想对此进行更改,以便该应用程序免费,并且用户必须购买自动续订订阅才能使用它。我知道如何实现自动续订订阅,但问题是处理已经以 5 美元购买该应用程序的用户;我想继续让这些用户无需订阅即可使用我的应用。
问题在于,出于隐私原因,我无法在我的服务器上存储任何识别信息,这些信息将我的应用程序的帐户链接到特定的人(甚至不是 UIDID)。我可以做的是保持其链接到UIDIDs订阅购买收据,这将让我知道如果用户已订阅一个单独的数据库表。
所以我的问题是,当我的应用程序价格为 5 美元时,我如何识别获得我的应用程序的用户?我知道有一种方法可以恢复应用程序内购买的收据,但是有没有办法检索我可以存储在我的服务器上的 5 美元应用程序的初始购买收据?
穷人的解决方案只是将我服务器中的所有当前 UIDID(即已支付 5 美元的人的 UIDID)标记为已付费,但是如果他们想从不同的设备使用我的应用程序,他们将不得不购买订阅。
假设我想从销售中删除我的应用程序,但仍希望现有用户继续自动续订他们的应用程序内订阅 - 这行得通吗?
我正在开发IAP Auto Renewable Subscription应用程序,该应用程序会在订阅到期后自动续订。
如果订阅已经过期,我给了一个续订按钮来续订。(如果用户从他的 iTunes 帐户中取消了自动续订订阅可能会过期。)所以这里有几种情况:
谢谢你。
我一直致力于实现自动续订订阅应用程序。我实际购买的订阅工作正常......我选择了 1 个月的订阅,它应该持续 3 分钟,在它到期之前......最初的购买实际上工作正常......但是 3 分钟后它过期了,我再也看不到了自动更新发生或获得新的收据或任何东西,所以应用程序正确地只是说..走开..
文档说它应该在取消之前自动续订 5 次,但我似乎从未在初次购买后收到新收据或任何东西。
有什么/其他地方我应该查看或检查吗?我错过了什么吗?
auto-renewing ×10
ios ×9
subscription ×5
iphone ×3
cocoa ×1
macos ×1
objective-c ×1
receipt ×1
restore ×1
storekit ×1