# Guideline 3.1.2 订阅被拒：付费墙价格怎么改

> 3.1.2：实际扣款金额必须是付费墙上最醒目的价格，并写明周期、自动续订和条款链接。附两次真实被拒与修改方法。

原始页面：[Guideline 3.1.2 订阅被拒：付费墙价格怎么改](https://devoria.fr/zh-hans/blog/guideline-3-1-2-subscription-rejection-paywall)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-10-17
内容最后修订：2026-10-17


Guideline 3.1.2 管的是自动续期订阅。如果 Apple 引用了这一条，先查两件事：**实际扣款的金额必须是付费墙上最醒目的价格**；另外，app 和商品页都要写明订阅周期、价格，并提供能打开的使用条款和隐私政策链接。

2026 年 10 月，我有两个 app 被这条拒了：Solys 在 10 日，TradaZen 在 12 日。问题出在同一种展示方式上：每周价格写得很大，真正扣款的金额写得很小。下面先看规则原文，再讲这两个案例，最后给出我现在用的检查清单。其他被拒原因可以看[Apple 为什么拒绝你的 app](https://devoria.fr/zh-hans/blog/apple-app-rejection-reasons-real-cases)。

## Guideline 3.1.2 说了什么？

3.1.2「Subscriptions」位于 [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#3.1.2) 第 3 部分「Business」的 3.1「Payments」下。所以邮件标题才是「Guideline 3.1.2 - Business - Payments - Subscriptions」。它分三款，**括号里的字母告诉你该去哪里找问题**。

| 条款                              | Apple 的要求                | 典型被拒原因               |
| --------------------------------- | --------------------------- | -------------------------- |
| 3.1.2(a) Permissible uses         | 持续提供价值，周期至少 7 天 | 订阅没有持续更新的内容     |
| 3.1.2(b) Upgrades and Downgrades  | 切换方案时不能重复扣费      | 同时为两个方案付费         |
| 3.1.2(c) Subscription Information | 用户花这个价能得到什么      | 折算价格比实际扣款金额更大 |

[3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2c) 的原文很短。在让用户订阅之前，你必须「clearly describe what the user will get for the price」：清楚说明用户花这个价能得到什么。接着它指向[开发者计划许可协议](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#S2)的附件 2（Schedule 2）。这个附件列出了你必须「clearly and conspicuously」（清楚且醒目地）展示的内容：

- 订阅的名称；
- 订阅周期；
- 价格，如有必要还要写单位价格；
- 在 app 内可以访问的隐私政策和使用条款链接。

关于价格字号的规则在 [Apple 的订阅说明页](https://developer.apple.com/app-store/subscriptions/)上。在购买流程中，「the amount that will be billed must be the most prominent pricing element in the layout」：将要扣款的金额必须是布局中最醒目的价格元素。可以展示每月折算价或优惠幅度，但要放在次要位置，而且字号更小。同一页面还要求：如果有免费试用，必须写明试用时长以及试用结束后扣款的价格。

## 我收到的两次 3.1.2(c) 拒绝

### Solys：0.38 欧元写得大，19.99 欧元写得小

Solys 是我做的闹钟 app，会让你的社交软件进入休眠。引导流程里的付费墙上，「年度」卡片用 21 号粗体显示「0.38 欧元/周」。下面用 15 号字写着「即 19.99 欧元/年」。可实际扣的是 19.99 欧元，不是 0.38 欧元。

2026 年 10 月 10 日，Apple 引用 3.1.2(c) 拒了这个版本。邮件要求扣款金额必须是最清晰、最醒目的价格元素，免费试用、首发价和折算价格都只能处于从属地位。Apple 列出了判断标准：字体、字号、颜色和位置。

这种展示是我明知故犯：TradaZen 之前有个版本用的是同样的思路，审核通过了。这是一次赌博，代价是多走了一轮审核。

**修改方法**：「19.99 欧元/年」用大字，「即 0.38 欧元/周」作为灰色小字说明放在下面，app 的 30 种语言全部改掉。付费墙写在代码里，所以重新提交版本前得先打一个新 build。

![一架天平称着 Solys 付费墙上的两个价格，它们被熔成了铅块。修改前，21 号的「0.38 欧元/周」压过 15 号的「即 19.99 欧元/年」，指针指向被拒；修改后，21 号的「19.99 欧元/年」更重，指针指向合规。](https://devoria.fr/ios/figures/balance-3-1-2c.svg)

### TradaZen：同样的原因，两天后

TradaZen 是我的模拟交易 app。2026 年 10 月 12 日，1.5.1 版本因为同一条规则被拒。邮件里说「weekly calculated」价格显示得「more clearly and conspicuously than the billed amount」：每周折算价比扣款金额更醒目。

我的第一次修改还不够，好在提交前自己发现了。我把「0.92 欧元/周」改小了，但还留在右侧的价格那一行。而周订阅卡片在同一列显示的是它的真实价格：「8.99 欧元/周」。两个金额看起来处于同一层级。**折算价格只要放在真实价格那一列，就会被当成扣款价格**，字再小也一样。

**最终的修改**：每张卡片右侧用大字显示扣款金额，每周价格改为下方的灰色小字，左侧只放方案名称。下一次审核，Apple 没再提 3.1.2(c)。

这个 app 的其他经验教训在 [TradaZen 案例分析](https://devoria.fr/zh-hans/blog/tradazen-case-study-launch-iphone-app)里。

## Apple 拒了什么，放过了什么

下面按时间顺序列出真实的展示方式和结果。

| 价格展示方式                                       | 结果                      |
| -------------------------------------------------- | ------------------------- |
| TradaZen 早期版本：突出每周价格                    | 之前一次审核通过          |
| Solys：粗体「0.38 欧元/周」，下方「19.99 欧元/年」 | 2026/10/10 被拒，3.1.2(c) |
| TradaZen 1.5.1：每周价格比扣款金额更醒目           | 2026/10/12 被拒，3.1.2(c) |
| TradaZen：每周价格改小，但仍在价格列               | 提交前被我自己否掉        |
| TradaZen：右侧大字扣款金额，每周价格作说明         | 下一次审核不再被提及      |
| Solys：大字「19.99 欧元/年」，每周价格作灰色说明   | 已修改并重新提交给 Apple  |

第一行最关键。**一次审核通过，不代表你的付费墙下次也能过。** 每个版本都要重新给审核员看，而新的审核员可能比上一个更严格。唯一安全的展示，是严格遵守规则原文的展示。

> 扣款金额是唯一用大字显示的价格。任何折算价格，不管按周、按月还是按天，都只是更小、更淡的说明文字，绝不能占它的位置。

## 符合 3.1.2 的付费墙检查清单

现在每次提交前，我都会对每个 app 的每个付费墙过一遍这份清单：

- 每张卡片上，扣款金额是字号最大、对比度最高、位置最好的价格。
- 所有折算价格（按周、按月、按天）都作为说明文字，更小、更淡，放在扣款金额下面。
- 折算价格不出现在另一个方案显示真实价格的那一列。
- 周期写得明明白白：「每年」「每周」。
- 免费试用写明时长，以及试用结束后扣款的金额。
- 有一句话说明订阅会自动续订，并且可以在 Apple 账户设置中取消。
- 购买按钮之前写清楚订阅能解锁什么。
- 付费墙上有可见的「Restore Purchases」（恢复购买）按钮。
- 付费墙上有使用条款和隐私政策链接，而且能打开。
- 如果提供多个方案，按 Apple 的建议把它们放在同一个订阅组里。
- 在最小尺寸的 iPhone 上、用最长的价格检查显示效果。TradaZen 我会用越南盾价格测试：金额一换行，层级就乱了。

如果你用 RevenueCat 的付费墙，[RevenueCat 的文档](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/app-review)也有同样的提醒：如果别处没有显示扣款金额和扣款周期，只放一个月度价格变量是不够的。完整的接入流程见 [RevenueCat：搭建 iOS 应用内订阅](https://devoria.fr/zh-hans/blog/revenuecat-ios-in-app-subscription-setup)，设计上的坑见 [iOS 付费墙：新手常犯的 7 个错误](https://devoria.fr/zh-hans/blog/ios-paywall-beginner-mistakes)。

## 使用条款和隐私政策链接：app 里和商品页上都要有

另一种 3.1.2 拒绝针对的不是付费墙，而是元数据。开发者在 [Apple 论坛](https://developer.apple.com/forums/thread/807082)上贴出的审核消息说明了 Apple 期望的位置：隐私政策链接放在 App Store Connect 的对应字段里，使用条款（EULA）链接放在描述中或 EULA 字段里。

坑出在标准协议上。根据 [App Store Connect 帮助文档](https://developer.apple.com/help/app-store-connect/manage-app-information/provide-a-custom-license-agreement)，如果你不添加自定义协议，就适用 Apple 的标准协议，而且「the license agreement link isn't shown on your App Store product page」：商品页上不会出现任何链接。**如果你用的是标准协议，就得自己把链接写进描述里**，指向你的条款页面，或者指向 [Apple 标准许可协议](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/)。

我的订阅类 app，描述的结尾都有两行，商品页的每种语言都写。下面是模板，按你的方案和域名修改：

```text
免费试用 7 天，之后按年或按周订阅，
可随时取消。
使用条款：https://your-domain.com/terms
隐私政策：https://your-domain.com/privacy
```

粘贴之前先把两个链接都打开看看：打不开的页面等于没有链接。隐私政策要写哪些内容，详见[应用的隐私政策](https://devoria.fr/zh-hans/blog/ios-app-privacy-policy-guide)；商品页的其他部分见 [App Store ASO](https://devoria.fr/zh-hans/expertise/app-store-aso) 页面。

**这一点不用打新 build 就能改**：描述和 App Store Connect 的各个字段都属于元数据。

## 3.1.2(a)：订阅必须持续提供价值

另一款常导致被拒的条款针对的是商业模式，而不是界面。[3.1.2(a)](https://developer.apple.com/app-store/review/guidelines/#3.1.2a) 要求「ongoing value」：持续一段时间的价值。订阅周期至少七天，并且要能在用户的所有设备上使用。订阅者付了钱就该得到相应内容，不需要额外完成任务，比如发社交平台动态。

如果你的 app 提供的是一次性服务，买断可能更合适。两种模式的对比见[订阅还是买断](https://devoria.fr/zh-hans/blog/ios-app-subscription-vs-one-time-purchase)。

## 被 3.1.2 拒绝后怎么回复 Apple

沟通在你 app 的 App Review 部分进行。[回复 App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) 的流程和其他条款一样。分两种情况：

- **问题在 app 里**（价格字号、付费墙上的说明）：需要新 build，Solys 和 TradaZen 都是这样。审核员测试的是打包进去的代码，我在 [guideline 2.1](https://devoria.fr/zh-hans/blog/app-store-guideline-2-1-rejection-fix) 的指南里解释过。
- **问题在商品页上**（链接缺失或打不开）：改元数据，回复消息，同一个提交会重新进入审核。

用英文写，简洁就好：哪里有问题，改了什么，怎么验证。这是我用的模板（把 build 号、价格和操作路径换成你自己的）：

```text
Hello,

Thank you for your review.

Issue: on the paywall, the weekly equivalent price was displayed
more prominently than the billed amount.

Fix in build X:
- Each plan now shows its billed amount (e.g. "€19.99/year")
  as the largest price on the card.
- The weekly equivalent is a smaller grey caption below it.
- The paywall states the duration, the auto-renewal, and links
  to our Terms of Use and Privacy Policy.

How to verify: launch the app and complete the onboarding.
The paywall appears at the end.

Best regards,
```

## 下次提交前改好你的付费墙

如果你的 app 刚因为 3.1.2 被拒，[Apple Review Kit](https://devoria.fr/zh-hans/kits/review-apple) 能帮你找到被引用的规则、它的要求，以及修改和回复的示例。它的 Claude Code skills 还会在提交前检查你的付费墙和商品页。想要真人帮你看，可以[预约我一小时](https://devoria.fr/zh-hans/coaching)：我们一起读 Apple 的消息，在你的屏幕上重新调整付费墙。完整流程见 [app 被 Apple 拒绝](https://devoria.fr/zh-hans/expertise/app-rejected-by-apple)页面，订阅的搭建见 [iOS 应用内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)页面。

如果你在准备第一次上架，[做一下免费诊断](https://devoria.fr/zh-hans/diagnostic)：它会帮你理清步骤顺序，并把我的 Apple 防拒清单发给你。想[开发一款手机 app](https://devoria.fr/zh-hans) 并从上线第一天就开始赚钱，[iOS Kit](https://devoria.fr/zh-hans/kits/ios) 的第三步「接入收款」专门讲订阅和付费墙。

没人能保证 Apple 一定会通过你的 app。我能做的，是让你避开我交过两次学费的 3.1.2(c) 拒绝。

## 常见问题

### 「Guideline 3.1.2 - Business - Payments - Subscriptions」是什么意思？

这是订阅规则的完整标题。它表示价格层级不对、付费墙缺少信息、商品页缺少链接，或者订阅没有持续价值。括号里的字母，比如 3.1.2(c)，指的是具体条款。

### 还能显示每周或每月价格吗？

能。Apple 允许显示每周或每月折算价，或者优惠幅度，前提是它们比实际扣款金额更小、更不显眼。在我的 app 里，折算价是扣款价格下方的灰色说明文字，从不放在真实价格那一列。

### 被 3.1.2 拒绝后需要新 build 吗？

如果问题在付费墙上，需要，因为审核员测试的是打包进去的代码。如果问题在商品页上，比如描述里缺链接，就不需要：改好元数据，同一个提交会重新进入审核。

### 使用条款（EULA）链接该放在哪里？

app 里放在付费墙上。商品页这边，放在描述中；如果你有自定义协议，也可以放在 App Store Connect 的 EULA 字段里。用 Apple 标准协议的话，商品页上不会显示任何链接：自己在描述里加上，每种语言都要加。

### 我的付费墙以前通过了，为什么现在被拒？

因为每个版本都要重新审核，有时换了审核员。突出每周价格的做法在 TradaZen 上通过过，到了 2026 年 10 月却在 Solys 和 TradaZen 上都被拒了。只有规则原文靠得住。


## 你的项目

[Apple Review Kit](https://devoria.fr/zh-hans/kits/review-apple)：我在用的 App Store 审核检查清单、我被 Apple 拒绝后的修改、给审核员的备注，以及两个审查你 App 的 Claude Code skills。29 €。

[iOS Kit](https://devoria.fr/zh-hans/kits/ios)：用 Claude Code 做你的 iPhone App：我自己 App 的起步代码、检查其工作的 skills，以及 Apple Review Kit、App Store Screenshots Kit 和 ASO Kit。129,99 €。
