iT邦幫忙

2026 iThome 鐵人賽

DAY 28
0
Vibe Coding

《我與 AI 的奇幻漂流:30 天,把「能跑」變成「能上線」》系列 第 28 篇

【Day 28|口糧】成本、金流與廣告:Vibe Coding 專案的商業模式與變現

  • 分享至 

  • xImage
  •  

在 Vibe Coding 的過程中,每多接一個服務,就很有可能多一份帳單。

網站做到這裡,已經用了十幾個服務:網域、部署、資料庫、寄信、監控、分析……仔細一看,其中大部分都是免費的。

但天下沒有白吃的午餐。這些免費方案,有不少是「先讓你用,用多了再收費」:自己玩玩的時候綽綽有餘,一旦流量起來,很容易就超出額度,帳單也跟著出現。

身為一個精打細算的客家人,今天就來清點這趟旅程目前已經ㄒ消耗的口糧:現在每個月花多少、哪些地方未來可能變貴,又有哪些方法能夠讓自己的網站撐得更久。


一、目前花了多少錢

把第一天到現在用過的服務列出來:

服務 用途 目前方案 每月花費 什麼時候會開始變貴
Cloudflare Registrar 網域 按年付費 約 US $10/年 續約價格依網域後綴而定
Cloudflare DNS、DMARC 報告 免費 0 幾乎不會,Cloudflare 很佛心
Vercel 部署、防火牆 Pro US$20(含 US$20 的用量額度) 用量超過額度後,依使用量計費
Supabase 資料庫、登入 免費 0 資料量、流量超過免費額度
Resend 寄送驗證信 免費 0 每月超過免費寄送量
Zoho Mail 收信 免費 0 需要更多帳號或進階功能
GitHub 程式碼、CI 免費 0 私人 repo 的 Actions 執行時間超過額度
GA4、Search Console 分析、SEO 免費 0 —
Speed Insights 效能 免費 0 事件超過免費額度會暫停收集,不會收費
Sentry 錯誤監控 免費 0 錯誤量超過免費額度
AI 工具 寫程式、開發、腦力激盪 ChatGPT Plus、Claude Pro US$20 + US$20 想做的東西變多,Token 不夠時

這張表裡有兩種不同的花費:

  • 固定成本:每個月不管有沒有人來,都要付。例如 Vercel Pro、AI 工具的訂閱。
  • 按用量計費:用多少付多少,或是超過免費額度才開始收費。例如流量、寄信數量、錯誤數量。

固定成本好預估,難的是按用量計費。網站突然爆紅、被爬蟲大量造訪,或是程式出錯一直重試,帳單都可能暴增。有些平台可以設定用量通知,避免收到帳單時才嚇一跳。


二、網站可以怎麼賺錢

方式 怎麼運作 適合 要注意
廣告 在頁面放廣告,依瀏覽或點擊分潤 流量大、內容公開的網站 流量小時收入很少;廣告會影響體驗與速度
會員訂閱 每月付費,換取進階功能 有持續價值的工具或內容 需要金流、定期扣款與會員權限
單次付款(商品) 買一次,永久使用 數位商品、課程、實體商品 需要金流與訂單管理
贊助 使用者自由贊助 個人專案、開源作品 收入不穩定

文章中實作的專案目前是一個公開的查詢網站,最簡單直接的方式是廣告,未來再加上付費會員可以去掉廣告,或是推出真的很實用的進階功能,吸引使用者付費。

廣告設定起來不麻煩,但收入相對少,除非網站的流量真的很高。很多訂閱制服務都把「去廣告」當成會員福利之一,但老實說,只靠去廣告很難讓人掏錢,通常還要搭配更進階的功能,或是直接賣實體商品。

今天的文章會先以用得到的概念為主,依照我在其他專案的開發經驗,分別說明金流和廣告各自要準備什麼,有些範例會用我在其他專案中的經驗來提及。


三、金流

3.1 為什麼要用第三方金流

如果自己直接處理、傳輸或儲存信用卡資料,就要符合非常嚴格的安全規範(PCI DSS),責任與安全負擔都會大幅增加。一旦外洩,後果非常嚴重。

另一種看似簡單的做法,是直接讓使用者轉帳到自己的銀行帳戶。但短時間內大量、小額、跟平常使用習慣不同的轉帳,可能被銀行視為異常交易,要求說明,甚至限制部分功能。

所以比較常見的做法,是交給第三方金流:使用者在金流公司的頁面輸入卡號,你的網站只會收到「這筆付款成功了」的通知,從頭到尾碰不到卡號。

用餐廳來想,餐廳不會自己發行信用卡、也不會保管客人的卡號,而是跟銀行租一台刷卡機。

3.2 常見的第三方金流服務

綠界 藍新 統一金流 Stripe
個人可以申請嗎 可以 可以 可以 台灣目前不是 Stripe 正式支援的地區
定期定額(訂閱需要) 有 有 有 有
電子發票 有自家服務 可串接電子發票服務 透過合作的電子發票加值服務中心開立 不處理台灣發票
物流整合 有 有 有 無
沙盒(測試環境) 公開共用的測試帳號 有 可個人申請 有 可個人申請 每個帳號都有測試模式
適合 一站整合金流、物流、發票 台灣網站常見選擇 台灣網站常見選擇 已有支援地區的公司、主攻海外市場

幾個選擇時的重點:

  • 個人 vs 公司:這次比較的幾家台灣金流都提供個人申請方式,但個人會員的收款額度通常比較低,部分付款方式也只開放給公司。隨著交易量或功能需求增加,可能需要轉成企業會員。
  • 電子發票:要不要開發票、開哪一種,取決於你的營業登記與稅籍身分,這是很容易被忽略的一環。如果需要開發票,能和金流一起串接會省很多事。
  • Stripe:串接體驗是業界公認的好,但對台灣開發者來說,最大的門檻不是串接,而是公司設立在哪裡:台灣目前不是 Stripe 正式支援的地區。如果本來就有美國等支援地區的公司,才比較適合考慮。

3.3 申請與審核

金流公司的審核,不只看身分文件,也會看你的網站。常見的要求:

  • 有實際的商品或服務頁面,而且標示價格
  • 退換貨政策
  • 聯絡方式、客服資訊
  • 隱私權政策
  • 販售實體商品的話,還要有出貨說明

也就是說,送審前網站要先「看起來像一個真的在做生意的網站」,才比較容易過審。個人申請不需要公司名稱與統編,但需要身分證明和收款帳戶。

我自己的申請經驗

  • 綠界:審核比較快(2~3天),但要附的資料相對比較多。除了網站內容,還要求提供實體商品的庫存照片、辦公室照片等證明。
  • 統一金流:審核沒那麼嚴格,但最近審核時間變得很久(數十天~數月),要提早申請。

審核標準會隨時間調整,以上是我申請時的經驗,僅供參考。

此外,針對虛擬商品,我個人體感綠界應該更嚴格,他們官網也有提到如果商品與生成式 AI 、點數、票卷相關,會需要申請特約賣家,資格會更嚴格。

3.4 一筆付款是怎麼完成的

https://ithelp.ithome.com.tw/upload/images/20261012/20178017OqVadN6MBT.png
【圖 1|一筆付款的完整流程(以付費會員開通進階權益為例)】

這張圖裡有幾個概念:

概念 白話 為什麼重要
以驗證過的結果為準 第 9 步導回來的網址,使用者可以自己改 不能因為使用者回到「付款成功」頁,就認定他付了錢;交易狀態要以驗證過的背景通知,或主動向金流查詢的結果為準
簽章 vs 加密 簽章確認「內容沒被改,而且對方持有正確的金鑰」;加密是讓別人看不懂內容 綠界主要靠簽章(CheckMacValue);藍新、統一會把交易內容加密,再加上簽章。用來簽章和加密的金鑰,只能放在伺服器
原子性 第 7 步的「改成已付款」和「開通權益」,要嘛一起成功,要嘛一起失敗 不然可能出現錢收了、權益沒開通。都在同一個資料庫時,用交易(transaction)保證;如果牽涉外部服務,要另外設計重試
冪等性 同一則通知收到兩次,結果要跟收到一次一樣 金流公司沒收到第 8 步的回應,就會重送;不能因此重複開通或重複出貨

冪等性跟 Day 26 的競態條件有點像,都是「同一件事可能不只發生一次」時會出問題;不同的是,競態條件在意的是「同時發生」,冪等性在意的是「重複發生」。

導回的頁面是給使用者看的;真正改變訂單狀態,要靠後端驗證過的付款結果。

這整個流程,背後還需要透過後端、資料庫去驗證、確認、記住幾件事:

要記錄的 例如
訂單 訂單編號、金額、狀態(待付款、已付款、已退款)
付款紀錄 金流的交易編號、收到的通知內容,方便日後對帳與查問題
會員權益 會員等級、開始與到期日期
物流(賣實體商品時) 取貨門市、寄件編號、物流狀態

金流公司只負責「收錢」,訂單、權益這些狀態,都要自己的網站記錄和管理。

如果通知一直沒來呢?各家金流通常都有「查詢交易」的 API,可以主動去問某筆訂單的狀態。定期主動核對,就是「對帳」。

金鑰的處理跟 Day 26 一樣:不能加 NEXT_PUBLIC_、不能 commit、不能貼給 AI,只放在伺服器的環境變數。

3.5 串接與沙盒測試

金流的串接細節很多:參數格式、簽章演算法、各種狀態碼。這正是 AI 擅長的地方。我自己的做法有兩種:

  • 把官方文件交給 AI:把金流的 API 文件丟給 AI,請它依文件串接。
  • 使用現成的 skill:綠界在 GitHub 上提供了官方的 API skill;也有人整理了涵蓋綠界、藍新、統一的 paid-tw 這組 skill。套用之後,AI 就知道參數格式和簽章怎麼算,開發會快很多。延續 Day 26 的原則:裝之前先讀過內容。

交給 AI 串接時,有幾件事一定要守住:

交給 AI 自己處理
依文件產生參數、簽章驗證的程式 金流的金鑰(HashKey、HashIV 等),只放在伺服器的環境變數,不貼給 AI
寫 webhook 的處理流程 確認簽章驗證失敗時,一定會拒絕
寫冪等與原子性的處理 用沙盒實際跑一次,確認重送通知不會重複開通

AI 有可能會寫出 「在使用者導回成功頁時更新訂單」 這種直覺的流程,因為那是測試時最容易看到的地方。但真正可靠的,是背景通知。

串接完,就用沙盒測試。每家金流都有測試環境,可以用測試卡號跑完整個付款流程,不會真的扣款:

綠界 統一金流
測試帳號 官方提供公開共用的測試帳號 申請自己的測試帳號
測試方式 用測試卡號付款 可以在後台模擬付款結果
要注意 測試帳號是官方公開的共用帳號,不要填真實的姓名、email 等資料 資料只有自己看得到

測試時有一個很常見的坑:本機的 localhost 收不到 webhook。 圖1中的第 5 步是金流公司從外面連進你的伺服器,它連不到你電腦裡的 localhost。所以這方面的測試需要部署到 Vercel 的 Preview,或是用之前提過的 ngrok,開一個外面連得到的網址。

跟設定 Supabase Redirect URL 道理一樣:用 ngrok 測試時,網址可能每次啟動都不同,金流的通知網址也要跟著換。

金流的部分先寫到這裡。想實際串接的讀者,可以從申請沙盒帳號開始,照著上面的流程,用 Preview 環境跑一次付款,確認 webhook 收得到、簽章驗得過、訂單狀態有更新。

測試時用的是測試環境的金鑰和網址;上線前,要記得換成正式環境的。這時候 Vercel 區分 Production、Preview 環境變數的功能就很實用:Preview 放測試金鑰,Production 放正式金鑰。

3.6 物流

賣實體商品的話,還要考慮出貨:

方式 說明 適合
超商取貨 寄到超商,買家自取;可搭配取貨付款 小件商品、台灣最普遍的方式
宅配 直接送到買家地址 大件或需要送到府的商品

部分金流公司本身就整合了物流。以超商取貨為例,流程大概是這樣:

https://ithelp.ithome.com.tw/upload/images/20261012/20178017BP8Cw1AtSQ.png
【圖 2|成立超商取貨訂單的流程】

跟金流一樣,物流狀態的變化通常也是靠背景通知(webhook)或查詢 API 取得,同樣要驗證、要能承受重複通知。

門市選擇通常不用自己手刻,物流服務會提供電子地圖,網站要做的是「跳過去、把選好的門市收回來」。但訂單列表、狀態顯示、出貨管理這些介面,就要自己做了。

我自己串物流的經驗

我之前開發一個販售實體商品的網站時,申請並串接物流的小心得:

  • 綠界:申請金流時,可以同時送出物流的申請。
  • 統一:物流需要另外寄信申請開通,同時需要一個固定的伺服器 IP 來回傳資料。部署在 Vercel 要特別注意,Vercel 預設的對外 IP 不是固定的,要另外處理。

物流牽涉的狀態比金流多很多:寄件、到店、取貨、未取退回……如果只是賣數位商品或會員,可以先不用考慮。

另外,如果只是想賣商品,不一定要自己架網站:不少金流商也提供現成的開店服務,用起來很方便,只是客製化的彈性比較少。


四、Google AdSense

4.1 送審

AdSense 要先審核網站,通過後才能顯示廣告。審核會看:

  • 內容:原創、有價值,而且有一定的量。內容不足或整體價值不明確,是常見的被拒原因之一。
  • 政策頁面:隱私權政策、聯絡方式。
  • 網站驗證:證明網站是你的。方式是在網站放一段 AdSense 程式碼,或是放 ads.txt。

所以加完程式碼或是ads.txt之後,也需要重新部署,才會生效。(有一點類似昨天提到的GA4,但是GA4不需要審核,放上程式碼就自動追蹤流量;Google Adsense 則是會需要一段時間來審核。)

ads.txt 是放在網站根目錄的一個文字檔,公開宣告「誰有權在這個網站賣廣告」,防止別人冒用你的網站賣假廣告。它不是強制的,但 Google 強烈建議設定,也可以拿來驗證網站。在 Next.js 裡,放在 public/ads.txt 就好。

審核通常要幾天到幾週。

我個人的經驗大概是3~5天左右。

4.2 自動廣告 vs 手動放置

Google 的廣告可以分成自動或手動兩種:

自動廣告 手動放置廣告單元
怎麼做 放一段程式碼,Google 自己決定廣告放哪裡、放幾個 自己決定位置,放進指定的區塊
優點 設定最簡單 版面可控,不會破壞設計
缺點 可能插在奇怪的位置、數量太多 要自己規劃與測試

自動廣告也不會是強制全開或全關:可以在後台設定排除特定頁面或特定區塊,也可以先用實驗功能只對部分流量測試。

不管哪一種,都要注意 Day 27 的 CLS(畫面跳動):廣告通常比內容晚載入,突然出現時會把下面的內容往下推。手動放置時,要先預留廣告的空間,例如固定區塊的高度,讓廣告載入時不會推動其他內容。

4.3 Offerwall 與獎勵式廣告

AdSense 的 Offerwall 在 2026 年 4 月全面開放:訪客瀏覽一定數量的頁面後,會看到一個選擇,例如完整看完一段廣告後,換取繼續瀏覽的權限。設定在 AdSense 的「隱私權與訊息」裡。

也有另外一種是自訂的獎勵式廣告,可以自行透過程式碼去設定說看完廣告可以獲得網站內的某項福利(例如解鎖某一篇文章閱讀權限)通常是和訪客願意為了繼續看而付出一點時間代價的網站內容。相對於自動廣告來說,收益會比較高一點(因為使用者會看完。)

4.4 會員去廣告

付費會員不看廣告,是很常見的設計。實作上有兩個重點:

  • 會員連廣告的程式碼都不要載入,而不是載入後再用 CSS 藏起來。藏起來的廣告一樣會拖慢速度,也可能違反廣告政策。
  • 會員資格要由伺服器端確認,跟 Day 26 的原則一樣;前端再依確認過的會員狀態,決定要不要載入廣告。

這需要先有金流和會員權限,有興趣的可以自行去深入查詢。

4.5 隱私

加上廣告之後,隱私權政策要補上 AdSense:說明網站使用 Google 的廣告服務,可能會用 Cookie 顯示個人化廣告。

如果有歐洲等地區的訪客,Google 要求使用經過認證的 Cookie 同意工具,讓訪客選擇是否同意。這部分依網站的訪客來源決定。


換個領域

產品 常見的營收方式 金流的重點
電商 單次付款 物流整合、退貨退款
SaaS 會員訂閱 定期定額、扣款失敗時的處理
內容網站 廣告、會員 去廣告權益、Offerwall
線上課程 單次付款、分期 分期付款、開通課程權限

結語與明日預告

今天的新觀念:

觀念 一句話
固定成本 vs 按用量計費 一個好預估,一個可能突然暴增
第三方金流 卡號交給金流公司處理,網站只取得付款結果
webhook 金流公司從背景通知你的伺服器
簽章、加密 一個證明沒被改,一個讓別人看不懂
原子性、冪等性 一起成功或一起失敗;做兩次跟做一次一樣
ads.txt 宣告誰有權在網站上賣廣告

網站要長久,不只要做得出來,還要養得起(沒錢是我的問題)。今天清點完口糧,也知道有哪些方法能讓開發過程中撐得更久。

從 Day 1 到今天,Vibe Coding 出來的網站已經不只是「做得出來」,而是開始變成一個真的能被使用、被維護,也需要被經營的產品。

明天,我們把這一路做過的事整理起來,也會提及幾個有點可惜沒能展開的主題。

我們明天見。


上一篇
【Day 27|信號彈】SEO、GA4 與 Sentry:讓網站被看見,也看得見自己
系列文
《我與 AI 的奇幻漂流:30 天,把「能跑」變成「能上線」》 共 28 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言