如何知道用户使用 RevenueCat 订阅了产品的哪个手机 os?

How to know which mobile os of a product a user has subscribed to using RevenueCat?

我无法找到用户订阅的项目的手机 OS。我想做的是只允许订阅升级/降级到相同 os。 (不允许将每月订阅从 ios 更改为每年订阅 android)

为了解释当前设置,我已将相同的 ID 映射到一个产品。

[offering: monthly]
ios: com.blah.products.monthly
android: com.blah.products.monthly

但是,这种方法似乎无法知道用户订阅了哪个 os 订阅项目。

响应数据:

{
    "allExpirationDates": {
      "com.blah.products.monthly": "2019-04-25T05:07:02Z",
      "com.blah.products.yearly": "2019-04-25T08:07:02Z"
    },
    "activeEntitlements": [
      "premium"
    ],
    "activeSubscriptions": [
      "com.blah.products.yearly"
    ],
    "expirationsForActiveEntitlements": {
      "premium": "2019-04-25T08:07:02Z"
    },
    "latestExpirationDate": "2019-04-25T08:07:02Z",
    "purchaseDatesForActiveEntitlements": {
      "premium": "2019-04-25T07:07:02Z"
    },
    "allPurchasedProductIdentifiers": [
      "com.blah.products.monthly",
      "com.blah.products.yearly"
    ]
  }

为了实现我的目标,我是否必须更改策略以将不同的身份映射到像这样的一个产品?

[offering: monthly]
ios: com.something.ios.monthly
android: com.something.android.monthly

OS 未在 API 或 SDK 中返回(目前)。解决方法可能是更改 App Store Connect 与 Play Billing 中的产品 ID,这样您就可以通过查看产品 ID 来判断用户是从哪里收费的。

真正的修复是在 public 路线图的 "Planned" 阶段,它将在 GET /subscribers 端点中包含更多信息:https://trello.com/c/ialNFe86/50-add-additional-subscription-details-to-api