You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在React Native(Expo)中用Superwall获取已购订阅详情

获取Superwall SDK中已购订阅的详细方案信息(React Native/Expo)

getSubscriptionStatus()仅返回订阅的活跃/非活跃状态,要获取具体的套餐类型(月度/年度)、名称、时长等信息,你可以通过以下两种方式实现:

方法一:通过最新交易记录匹配套餐

Superwall的getLatestTransaction()方法会返回用户最近的订阅交易详情,其中包含产品ID,你可以通过该ID与你预先配置的套餐(如com.yourapp.monthly、com.yourapp.yearly)做关联判断:

Superwall.shared
  .getLatestTransaction()
  .then((transaction) => {
    if (!transaction) {
      console.log("无有效订阅交易记录");
      return;
    }

    const { productId, purchaseDate, expirationDate } = transaction;
    // 根据产品ID判断套餐类型
    let planInfo = {};
    if (productId.includes("monthly")) {
      planInfo = { type: "月度套餐", duration: "30天" };
    } else if (productId.includes("yearly")) {
      planInfo = { type: "年度套餐", duration: "365天" };
    } else {
      planInfo = { type: "未知套餐" };
    }

    console.log("当前订阅详情:", {
      ...planInfo,
      购买时间: purchaseDate,
      过期时间: expirationDate
    });
  })
  .catch((err) => console.error("获取交易记录失败:", err));

方法二:结合Paywall产品列表与订阅状态获取详情

先通过getPaywallProducts()获取所有在Superwall后台配置的订阅产品,再结合订阅状态匹配用户当前的订阅产品,拿到本地化的名称、价格等信息:

// 同时获取产品列表与订阅状态
Promise.all([
  Superwall.shared.getPaywallProducts(),
  Superwall.shared.getSubscriptionStatus()
])
.then(([products, status]) => {
  if (status !== "active") {
    console.log("当前无活跃订阅");
    return;
  }

  // 结合交易记录的productId匹配对应产品
  return Superwall.shared.getLatestTransaction().then((transaction) => {
    if (!transaction) return;
    const activeProduct = products.find(p => p.productId === transaction.productId);
    if (activeProduct) {
      console.log("订阅套餐详情:", {
        名称: activeProduct.localizedTitle,
        描述: activeProduct.localizedDescription,
        价格: activeProduct.localizedPrice,
        产品ID: activeProduct.productId
      });
    }
  });
})
.catch((err) => console.error("获取订阅详情失败:", err));

注意事项

  • getUserAttributes()仅用于获取你主动设置的用户自定义属性(如用户昵称、等级),不会返回订阅产品相关数据,因此无法通过该方法获取套餐信息。
  • 确保你在Superwall Dashboard、App Store Connect(iOS)、Google Play Console(Android)中配置的产品ID保持一致,否则会出现匹配失败的情况。

内容的提问来源于stack exchange,提问作者Komeil Mehranfar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 18:32:18