ios 应用内订阅 - original_transaction_id 何时更改?

标签 ios in-app-purchase in-app-billing

当有自动续订订阅时,考虑以下模型情况:

  • 用户购买了 1 个月的订阅,比如说在 1 月份
  • 取消续订
  • 然后等到 3 月(>1 个月)并再次购买相同的订阅

AppStore 是否会(在收据验证时)为新购买返回一个新的 original_transaction_id?或者换句话说,original_transaction_id 是否可以用于对收据进行分组以确定用户进行有效订阅的时间间隔?

因为在沙盒中,当出现这样的模拟情况时,它总是从给定订阅的第一次购买返回 original_transaction_id,无论是否存在用户没有事件订阅的时间间隔。当订阅有多次购买且间隔时间过期时,沙盒收据验证返回第一次购买的original_purchase_date,最后一次购买的expires_date

我的问题是,要在实时环境中测试它,我必须等待一个多月让订阅到期才能测试确切的行为。

最佳答案

多年来,我一直通过订阅维护一个生产应用。

据我所知,original_transaction_id 在您提到的那种情况下不会改变。

此外,original_transaction_id属于订阅组,而不是每个product_id。

因此在以下情况下它保持不变。

  • 用户开始订阅,停止自动续订和过期,然后重新开始订阅。
  • 用户开始订阅并取消订阅,但重新开始。
  • 用户开始订阅并升级或降级到同一组中的订阅。

但这不是保证的结果,因此您最好做好准备,以防 original_transaction_id 发生变化。

关于ios 应用内订阅 - original_transaction_id 何时更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19000758/

相关文章:

ios - 如何在不同的 iOS 设备上为 UINavigationBar 设置背景图片

ios - 内容安全策略框架祖先。 Iframe 不会在 iOS10 中加载内容

ios - 使用 Ionic Package Build 和 XCode 8 在 iOS 构建中出现重复符号错误

c# - 使用C#和PHP解压iOS应用收据

android - InappBilling 错误 - 需要身份验证。你需要登录你的谷歌账户

ios - 访问 Firebase IOS 数据更改并通知

android - Xamarin.InAppBilling (2.2.0) 调用了 Android BuyProduct() 但有时未调用回调 - 如何诊断/修复根本原因?

ios - 通过 Application Loader 添加新的应用内购买

android - 使用 Android 应用内结算购买商品时(可能)出现未记录的错误

android - 实现应用内结算