跳至内容
WebViewGold 从 Vibe Coding 到 App Store
中文
获取 WebViewGold

支付

Stripe 还是应用内购买?上架商店的 Web 应用决策指南

您的 Lovable 或 Bolt 应用已经有了 Stripe 结账。进入 App Store 和 Google Play 之后,有些购买必须改用应用内购买,有些则可以原封不动。只要问对问题,规则其实比看起来简单:用户到底买的是什么?

每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。

  • 审核通过保证 – 否则 14 天内退款
  • 无需编程
  • 一次性付费,免费更新
  • 7×24 小时人工支持
  • 2014 年起德国出品 · ISO 27001

唯一的问题:买的是什么?

Apple 准则 3.1.1 和 Google 的支付政策用不同的措辞说了同一件事:如果用户购买的东西是在应用内使用的(功能、订阅、积分、高级内容),购买就必须通过商店的结算系统。如果用户购买的东西是在应用外使用的(实体商品、理发、保洁、外卖),就不得使用商店结算系统,这时 Stripe 才是合适的工具。

Apple 在 3.1.3 中列出了几个具名的例外:多平台服务可以让用户访问他们在您网站上购买的内容,前提是同样的项目也在应用内通过 IAP 出售;实时的人对人服务(辅导、咨询)可以使用其他支付方式;阅读器类应用有自己的规则。Google 豁免实体商品和服务,以及捐赠、点对点支付等少数特殊情况。凡是在应用内消费的数字内容,都属于 Play 结算的范围。

决策表

您销售的是…iOS 应用中Android 应用中您的网站上
应用功能订阅(SaaS 方案、高级版)必须使用 IAP(3.1.1、3.1.2)必须使用 Play 结算Stripe,照旧
AI 积分、token、生成次数IAP(消耗型)Play 结算(消耗型)Stripe
在应用内使用的课程、模板、下载内容IAPPlay 结算Stripe
实体商品(网店)必须使用 Stripe;不允许使用 IAPStripe;不允许使用 Play 结算Stripe
线下消费的服务(预约、保洁、维修)StripeStripeStripe
实时一对一服务(辅导通话、咨询)根据 3.1.3(d) 允许使用 Stripe;IAP 可选通常不在 Play 结算范围内;请查看适用于您细分领域的政策Stripe
向注册非营利组织的捐赠经批准的非营利组织可使用其他方式很多情况下可以豁免;请查看政策Stripe

识别应用并切换结账方式

同一个 Web 应用服务两个渠道;只有结账按钮会变。

  1. 给应用一个可识别的 user agent

    在 Config.swift 中设置 useragent_iphone 和 useragent_ipad,在 Config.java 中设置 USER_AGENT,让它包含一个唯一的标记,例如在默认 user agent 后面加上 WebViewGoldApp/1.0。保留 Google 登录辅助工具;它会在 OAuth 步骤中使用自己那个被认可的 user agent。

  2. 在 Web 应用中分支处理

    const inApp = navigator.userAgent.includes("WebViewGoldApp")。在应用中显示 IAP 按钮,在 Web 上显示 Stripe 按钮。不要隐藏价格;显示商店价格。

  3. 通过 RevenueCat 触发购买

    在应用中,按钮跳转到 revenuecat://purchase?external_id=USER_ID&product=PRODUCT_ID(如果使用 RevenueCat 付费墙,则跳转到 revenuecat://launchPaywall?external_id=USER_ID&offering=OFFERING)。WebViewGold 会打开原生购买面板。

  4. 在服务器上统一权益

    Stripe webhook 和 RevenueCat webhook 写入同一张 subscriptions 表。Web 应用只问“这个用户是否有效?”,从不关心是哪个商店收的钱。

  5. 应用内不要引导外部购买

    除地区性例外外,应用不得引导用户去网站购买、显示 Web 价格或链接到 Stripe 结账。现有的 Web 订阅用户只需登录就能直接使用,只要应用同时提供 IAP,3.1.3(b) 就允许这样做。

只要有一个优化良好的Web应用版本,几分钟内您就能拥有一个出色的移动应用。除此之外,客户服务非常友好且乐于助人!我只能说:推荐WebViewGold :-)

朱利安·科赫(Julian Koch) · 联合创始人 Dueldonkey · CodeCanyon

JavaScript 中的切换逻辑

一个最小化版本。在生产环境中,请从后端读取产品 ID,让它们与两个商店保持同步。

javascript
const inApp = /WebViewGoldApp/.test(navigator.userAgent);

function subscribe(userId) {
  if (inApp) {
    // 通过 WebViewGold + RevenueCat 打开原生购买面板(iOS 和 Android)
    window.location.href = "revenuecat://purchase?external_id=" + encodeURIComponent(userId) + "&product=premium_monthly";
  } else {
    // Web:您现有的 Stripe Checkout 会话
    window.location.href = "/api/stripe/checkout?plan=premium_monthly";
  }
}

// 原生面板关闭后,轮询您的后端,直到 webhook 到达
async function waitForEntitlement(userId, tries = 10) {
  for (let i = 0; i < tries; i++) {
    const r = await fetch("/api/me/subscription").then(x => x.json());
    if (r.active) return true;
    await new Promise(res => setTimeout(res, 1000));
  }
  return false;
}

双重定价的陷阱

  • Web 和商店的价格可以不同,但应用不得宣传更便宜的 Web 价格。让营销邮件和网站保持诚实,并与应用界面分开。
  • Apple 按固定的价格档位销售,两个商店都会在许多国家代收销售税或增值税。在确定商店价格之前,请比较净收益,而不是标价。
  • 免费试用和推介优惠属于商店产品(订阅优惠),而不是 Stripe 优惠券。应用内一个能解锁付费功能的优惠码输入框会绕过 IAP,并因此被拒。
  • 按渠道管理和取消:Web 订阅用 Stripe 客户门户,商店订阅用 cancelinapppurchase://(它会打开系统的订阅页面)。
  • IAP 的退款由 Apple 和 Google 处理,而不是您。请据此组织您的客服回复。
  • 不要让同一个用户同时使用两套系统;如果 Web 订阅用户又在应用内购买,您的 webhook 处理程序应检测出重复权益并通知客服。
  • 佣金不适用于 Web 上的 Stripe 销售,但适用于每一笔 IAP。在定价之前,请先阅读15% 计划指南。

RevenueCat 把两个商店连在一起

一个产品目录

来自 App Store Connect 和 Play Console 的产品映射到同一个权益(entitlement),因此您的后端永远不需要按平台分支。

内置于 WebViewGold

在 Config.swift 和 Config.java 中填好两个密钥,然后在 Web 应用中使用 revenuecat:// 链接。无需原生代码。应用内购买需要 WebViewGold Extended License。

Webhook

首次购买、续订、取消、扣款问题和过期等事件会送达您的 Supabase edge function 或 Cloud Function。RevenueCat 设置指南会带您一步步完成。

常见问题

我可以把结账从应用中去掉,然后告诉用户去网站订阅吗?

问题恰恰出在“告诉”上:在地区性例外之外,这根据 3.1.1 算作引导外部购买。一个没有任何购买途径、只能登录的应用有时会被接受,但审核人员往往会问新用户要怎样才能成为付费用户。提供 IAP 才是可靠的答案。

应用内有必须使用 Stripe 的情况吗?

有,实体商品和在应用外消费的服务。Apple 完全不允许这些使用 IAP。

Web 销售也要付商店佣金吗?

不用。佣金只适用于通过 Apple 或 Google 结算完成的购买。

通过我的应用给创作者打赏或销售辅导服务怎么算?

数字打赏和应用内的辅导内容属于 IAP。在 iOS 上,根据 3.1.3(d),两人之间的实时一对一服务可以使用其他支付方式。请在审核备注中说明您属于哪种情况。

WebViewGold 的 IAP 需要特殊许可证吗?

需要,即 Extended License。本指南中的其他内容使用标准许可证即可。

让您的应用上架商店的三种方式

结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。

自己动手

$109 每个平台,一次性付费

WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。

在主页查看方案

Cloud Builder

$349 每个许可证,一次性附加购买

无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。

Cloud Builder 如何运作 试用免费演示

Full Service

$698 每个平台 $798

把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。

Full Service 详情 服务提供方: WeSetupYourWebViewApp

冬季特惠价格有效期至 2026年12月31日。

准备好发布您的应用了吗?

App Store & Google Play 审核通过保证 – 否则 14 天内退款

想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。

退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。