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

如何在React Native内购库实现订阅?更新后无法获取基础订阅详情

React Native内购订阅功能实现:获取基础订阅详情及价格

你的问题核心是未正确提取返回结果中的基础订阅字段——多数RN内购库(如react-native-iap)更新后,基础订阅详情直接包含在返回的每个订阅对象中,subscriptionOfferDetails仅对应优惠套餐信息。以下是修复方案:

1. 明确返回数据结构

调用getSubscriptions后,每个订阅项通常包含这些基础字段(不同库字段名可能略有差异):

  • productId:订阅唯一ID
  • title:订阅名称
  • description:订阅描述
  • price:价格数值
  • formattedPrice:格式化后的显示价格(如"¥12.00")
  • subscriptionPeriod:订阅周期标识(如"P1M"代表每月)
  • subscriptionOfferDetails:优惠套餐数组(含折扣、免费试用等选项)

2. 修改代码提取完整详情

调整代码逻辑,遍历订阅列表提取基础信息和优惠套餐:

const fetchSubscriptions = async () => {
  try {
    const response = await getSubscriptions({ skus: myProducts });
    setSubscriptions(response);
    console.log('完整订阅响应:', response);

    // 过滤出有效订阅(含基础信息或优惠套餐)
    const validSubscriptions = response.filter(sub => 
      (sub.formattedPrice && sub.title) || (sub.subscriptionOfferDetails?.length > 0)
    );

    const isPageUnlocked = validSubscriptions.length > 0;
    if (isPageUnlocked) {
      Alert.alert('Success', 'Page unlocked!');
      setShowads(false);

      // 遍历提取订阅详情
      validSubscriptions.forEach(sub => {
        console.log('基础订阅ID:', sub.productId);
        console.log('基础订阅名称:', sub.title);
        console.log('基础订阅价格:', sub.formattedPrice);
        console.log('订阅周期:', sub.subscriptionPeriod);

        // 处理优惠套餐信息
        if (sub.subscriptionOfferDetails) {
          sub.subscriptionOfferDetails.forEach(offer => {
            console.log('优惠套餐ID:', offer.offerId);
            console.log('优惠价格:', offer.formattedPrice);
            console.log('优惠周期:', offer.subscriptionPeriod);
          });
        }
      });
    } else {
      setShowads(true);
      Alert.alert('Error', 'My dear, No available subscription to unlock the page.');
    }
  } catch (error) {
    console.log('Error fetching subscriptions: ', error);
  }
};

3. 排查注意事项

  • 若仍无法获取基础字段,检查内购库版本,确保升级到最新稳定版
  • 核对开发者后台(Apple App Store Connect/Google Play Console)中订阅产品的SKU与代码中myProducts完全一致
  • 部分库可能需要额外配置权限或参数才能返回完整字段,可查阅对应库的官方文档确认

内容的提问来源于stack exchange,提问作者Samuel Edeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:53:09