在 React Native SDK 中为自定义付费墙启用购买功能

本指南介绍如何将 Adapty 集成到您的自定义付费墙中。您可以完全掌控付费墙的实现方式,同时由 Adapty SDK 负责获取产品、处理新购买以及恢复历史购买记录。

本指南适用于自行实现自定义付费墙的开发者。 如果您希望以最简便的方式开启购买功能,请使用 Adapty Flow Builder。使用 Flow Builder,您可以在无代码可视化编辑器中创建流程,Adapty 自动处理所有购买逻辑,无需重新发布应用即可测试不同设计方案。

开始之前

配置产品

要启用应用内购买,你需要了解三个核心概念:

  • 产品 – 用户可以购买的任何内容(订阅、消耗型商品、永久授权)
  • 付费墙 – 定义向用户展示哪些产品的配置。在 Adapty 中,付费墙是获取产品的唯一方式,这种设计让你无需改动应用代码就能修改产品、价格和优惠。
  • 版位 – 应用中展示付费墙的位置和时机(如 mainonboardingsettings)。你在看板中为版位配置付费墙,然后在代码中通过版位 ID 请求。这让你能轻松运行 A/B 测试,并向不同用户展示不同的付费墙。 即使使用自定义付费墙,也请务必理解这些概念——它们本质上是管理应用内销售产品的方式。

要实现自定义付费墙,你需要创建一个付费墙并将其添加到版位中。这样才能获取你的产品信息。如需了解在看板中的具体操作步骤,请参阅快速入门指南

管理用户

您可以选择使用或不使用后端身份验证。

但是,Adapty SDK 对匿名用户和已识别用户的处理方式不同。请阅读身份识别快速入门指南,了解其中的差异,确保正确处理用户数据。

第一步:获取产品

要为自定义付费墙获取产品,你需要:

  1. 通过将版位 ID 传入 getFlow 方法来获取 flow 对象。
  2. 使用 getPaywallProducts 方法获取该流程的产品数组。

async function loadPaywall() {
  try {
    const flow: AdaptyFlow = await adapty.getFlow('YOUR_PLACEMENT_ID');
    const products: AdaptyPaywallProduct[] = await adapty.getPaywallProducts(flow);
    
    // Use products to build your custom paywall UI
  } catch (error) {
    // Handle the error
  }
}

第二步:处理购买

当用户在自定义付费墙中点击某个产品时,调用 makePurchase 方法并传入所选产品。该方法会处理购买流程并返回更新后的用户画像。


async function purchaseProduct(product: AdaptyPaywallProduct) {
  try {
    const purchaseResult: AdaptyPurchaseResult = await adapty.makePurchase(product);
    
    switch (purchaseResult.type) {
      case 'success':
        // Purchase successful, profile updated
        break;
      case 'user_cancelled':
        // User canceled the purchase
        break;
      case 'pending':
        // Purchase is pending (e.g., user will pay offline with cash)
        break;
    }
  } catch (error) {
    // Handle the error
  }
}

第三步:恢复购买

应用商店要求所有包含订阅功能的应用提供恢复购买的入口。

当用户点击恢复购买按钮时,调用 restorePurchases 方法。该方法会将用户的购买历史与 Adapty 同步,并返回最新的用户画像。


async function restorePurchases() {
  try {
    const profile: AdaptyProfile = await adapty.restorePurchases();
    // Restore successful, profile updated
  } catch (error) {
    // Handle the error
  }
}

后续步骤

有疑问或遇到问题?请访问我们的支持论坛,您可以在那里找到常见问题的解答,或者提出您自己的问题。我们的团队和社区随时为您提供帮助!

您的付费墙已准备好在应用中展示。在 App Store 沙盒Google Play Store 中测试购买流程,确保您可以从付费墙完成测试购买。如需查看生产就绪实现的示例,请参考我们示例应用中的 CustomPurchaseScreen.tsx,其中演示了包含完善错误处理、加载状态和 UI 状态管理的购买处理流程。 接下来,检查用户是否已完成购买,以确定是否应显示付费墙或授予付费功能访问权限。