# Guideline 3.1.2：App 因訂閱被拒怎麼辦

> 實際扣款金額必須是付費牆最顯眼的價格，並標明期間、續訂與條款連結。附兩次真實被拒與修正。

原始頁面：[Guideline 3.1.2：App 因訂閱被拒怎麼辦](https://devoria.fr/zh-hant/blog/guideline-3-1-2-app-subscription-rejected)
作者：[Mehdi Azizi](https://devoria.fr/zh-hant/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-hant/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，會讓你的社群 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 是我的交易模擬器。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-hant/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 歐元／年」，每週價格灰色小字      | 已修正並重新送審          |

第一列最重要。**這次審查通過，不代表下次你的付費牆也沒問題。**每個版本都會重新交給審查人員，而他可能比上一位更嚴格地解讀規則。唯一安全的顯示方式，就是符合規則原文的那一種。

> 只有扣款金額能放大。任何換算價格，不論每週、每月或每天，都是更小、更淡的說明文字，絕不能取代它的位置。

## 符合 3.1.2 的付費牆檢查清單

這是我現在每次送審前，對每個 App 的每個付費牆逐項檢查的清單：

- 每張卡片上，扣款金額都是字最大、對比最強、位置最好的價格。
- 所有換算價格（每週、每月、每天）都是扣款金額下方的說明文字，更小也更淡。
- 換算價格不會出現在其他方案顯示真實價格的那一欄。
- 期間寫得清清楚楚：「每年」、「每週」。
- 免費試用要寫出試用期長度，以及試用結束時扣款的金額。
- 有一句話說明訂閱會自動續訂，並可在 Apple 帳號設定中取消。
- 購買按鈕之前就寫出訂閱能解鎖哪些功能。
- 付費牆上看得到「Restore Purchases」（恢復購買）按鈕。
- 付費牆上有使用條款和隱私權政策的連結，而且點得開。
- 如果有多種方案，照 Apple 的建議放在同一個訂閱群組裡。
- 用最小的 iPhone 和最長的價格字串檢查畫面。在 TradaZen 上，我會測越南盾的價格：金額一換行，層級就亂掉了。

如果你用 RevenueCat 的付費牆，[RevenueCat 的文件](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/app-review)也有同樣的提醒：如果其他地方沒有出現扣款金額和計費週期，只放一個每月價格變數是不夠的。完整串接請看 [RevenueCat：設定 App 內訂閱](https://devoria.fr/zh-hant/blog/revenuecat-ios-in-app-subscription-setup)，設計上的錯誤請看[iOS 付費牆：新手常犯的 7 個錯誤](https://devoria.fr/zh-hant/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
```

貼上之前先把兩個連結都打開看看：找不到的頁面等於沒放連結。隱私權政策該寫哪些內容，請看[App 的隱私權政策](https://devoria.fr/zh-hant/blog/ios-app-privacy-policy-guide)，商品頁的其他部分請看 [ASO App Store](https://devoria.fr/zh-hant/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-hant/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-hant/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-hant/kits/review-apple) 能幫你找出被引用的規則、它的要求，以及修正和回覆的範例。它的 Claude Code skills 也會在送審前幫你檢查付費牆和商品頁。如果想要真人幫你看，[跟我預約一小時](https://devoria.fr/zh-hant/coaching)：我們一起讀 Apple 的訊息，在你的螢幕上重新調整付費牆。完整流程請看 [App 被 Apple 拒絕](https://devoria.fr/zh-hant/expertise/app-rejected-by-apple)頁面，訂閱的設定請看 [iOS App 內訂閱](https://devoria.fr/zh-hant/expertise/ios-in-app-subscription)頁面。

如果你正在準備第一次上架，[做一次免費診斷](https://devoria.fr/zh-hant/diagnostic)：它會幫你把步驟排好順序，並寄給你我的 Apple 防退件檢查清單。想要[開發一個手機 App](https://devoria.fr/zh-hant)，一上架就開始賺錢，[iOS Kit](https://devoria.fr/zh-hant/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-hant/kits/review-apple)：我使用的 App Store 審核檢查清單、我被 Apple 退件後的修正、給審核人員的備註，以及兩個審閱你 App 的 Claude Code skills。29 €。

[iOS Kit](https://devoria.fr/zh-hant/kits/ios)：用 Claude Code 打造你的 iPhone App：我的 App 所用的 Starter Code、檢查成果的 skills，以及 Apple Review Kit、App Store Screenshots Kit 與 ASO Kit。129.99 €。
