问题标签 [auto-renewable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Swift 如何处理自动更新订阅的接收和验证
我正在快速测试自动更新的应用内购买,我发现我的代码存在一些奇怪的问题。
我正在沙盒环境中测试这些功能
- 用户可以购买一个月、一年的自动续订订阅或永久许可
- 每次用户打开应用程序时,应用程序都应该检查订阅是否仍然有效,如果没有,则锁定所有高级功能
- 用户能够恢复购买的计划,应用程序应该获得以前购买的类型,即。一个月、一年或永久。
经过对教程的长期研究,我仍然对验证感到困惑
- 我看到有两种验证收据的方法,一种是在本地,另一种是在服务器上。但是我没有服务器,是不是只能在本地验证
- 每次自动续费订阅到期时,本地收据都不会更新,所以当我重新打开应用程序时,我收到了订阅过期警报(我自己定义的验证检查方法),当我点击恢复按钮时,应用程序成功恢复并更新收据
- 经过6次手动恢复并刷新收据(沙盒用户只能更新6次),当我点击恢复按钮时,部分交易== .purchased被调用,我的应用程序解锁了高级功能,但是当我重新打开我的应用程序,我的应用程序会提醒订阅已过期,这是应该的。
我的核心问题是每次打开应用程序时如何检查Apple的订阅验证,我没有服务器,我不知道为什么收据没有自动刷新
这是我的代码的一些部分,我在打开应用程序时调用 checkUserSubsriptionStatus(),我正在使用 TPInAppReceipt 库
ios - 在沙盒上测试 iOS 订阅升级/降级
目前,我们的直播应用有一个自动续订订阅,我们想再添加两个,唯一的区别是价格和订阅时间。为了做到这一点,我们创建了一个“订阅组”,一切都设置在苹果端:
并且该应用程序当前正在读取商店中的所有包并允许用户购买它们。
我们的问题是,当尝试在沙盒(iOS 14.5)上购买另一个订阅级别时,我们无法完全测试升级/降级功能。如果我们先购买最低套餐,然后尝试购买高级套餐,则会出现一个弹出窗口,提示我们要将当前订阅计划修改为另一个套餐,并且将从 XX/XX/2021 开始,如此处所示(图片来自教程):
这不是我们在应用程序(沙盒上)上看到的行为。当我们尝试购买高级计划时,应用程序会显示正常的购买弹出窗口:
它会继续正常购买该包,而不会显示我们正在更改当前计划的弹出警告。
这引起了一些担忧,因为这意味着用户购买了两个订阅。他们在同一个订阅组,所以这应该是不可能的,但仍然会带来担忧......有人遇到过同样的问题吗?这是沙盒中的正常行为吗?
flutter - 如何处理 in_app_purchase 抖动自动续订订阅
我缺少有关 in_app_purchase 行为的文档,例如:
- 如果订阅自动续订会发生什么 a) 我是否必须通过 PurchaseStatus.restored 恢复或新购买将通过 PurchaseStatus.purchased 到达
- 如果新购买将在订阅续订时通过 PurchaseStatus.restored 到达但应用程序已关闭?打开应用程序时会触发吗?
- 我是否应该在每次应用启动时运行验证所有现有订阅的到期日期?
ios - 在 iOS 中测试自动续订订阅的宽限期
我在我的应用程序中使用宽限期实现了自动续订订阅。我确实编写了在宽限期内提供订阅服务所需的所有逻辑,但我找不到任何方法来测试沙盒环境中的宽限期。有人可以帮助我在沙盒环境中测试宽限期功能。
ios - SKProductsRequest 不返回针对自动更新订阅的国家/地区特定价格
尽管我在 appstoreconnect 中为每个县配置了不同的价格,但我开始在所有国家/地区为我的自动更新订阅获得相同的价格。它返回创建主要开发帐户的国家/地区的价格似乎它是在应用新的税收类别后发生的,以前一切都完美无缺。还有其他人有同样的问题吗?
ios - Apple In App Purchase,沙盒中的中断购买
在使用沙盒用户测试可再生订阅购买时,我发现了一些奇怪的东西。在 AppStoreConnect 中,您可以选择一个复选框来中断给定沙盒用户的任何付款。如果您在付款过程中这样做
- 付款应该失败
- 应提示用户接受应用商店的新条款和条件
- 然后应该使用相同的产品将新交易添加到 PaymentQueue
我的问题是:委托方法在发生之后永远不会被触发。
当我启动交易时,它确实会被正确触发。似乎在用户接受 T&C 后创建的事务已添加到队列中,但它自身的方法仅在我任一时触发并开始处理事务:手动添加另一个事务或最小化并重新打开应用程序。
根据 Apple 文档,这似乎几乎是正确的:
当付款队列的内容在恢复或运行您的应用程序时发生变化时,StoreKit 可以自动通知您的 SKPaymentTransactionObserver 实例。
用于测试中断购买的 Apple 文档以供参考: https ://developer.apple.com/documentation/storekit/original_api_for_in-app_purchase/testing_in-app_purchases_with_sandbox/testing_an_interrupted_purchase
我的问题是如何处理这样的交易?对于这个中断的事务,它总是以“未知”的 SKErrorCode 失败,到目前为止我发现的唯一可行的解决方案是要求用户重新启动应用程序,这是不可接受的。
任何帮助,将不胜感激。谢谢!
in-app-purchase - 设置应用内购买试用期(30 天)
我想在用户第一次下载应用程序并选择免费试用选项时设置确切的 30 天免费试用,目前在 App Store 控制台中显示“1 个月”选项。这是否意味着 30 天或 31 天?
是否有任何可能的解决方案,我们可以将确切的 30 天作为我的应用内购买订阅的试用期?任何人都可以请尽快回复。
任何帮助表示赞赏提前感谢!
ios - 自动更新在swift中的应用程序购买中不起作用
我正在处理需要订阅的项目。因此,一旦我退出并订阅购买,我的应用程序就可以正常工作了。但有时当我订阅时,我会在订阅成功的控制台上收到消息,但实际上订阅不成功。这是我的 activePurchase 应用程序购买代码,该代码不起作用,并且在 paymentQueue 代码中仅在登录后第一次使用,但并非每次都有效