常有人以為網店要開通 Apple Pay,得先去跟 Apple 申請一個商家資格。實際上,多數網店走的是金流服務商或電商平台,Apple 那一端的商家驗證,不少金流早就代辦好了。店家真正要處理的,只有 3 件事:金流支援不支援、網域有沒有通過驗證、結帳頁是不是全站 HTTPS。
麻煩的地方在於,這 3 件事只要有一件沒對上,結帳頁就不會出現那顆黑色按鈕,而且系統不會告訴你少了哪一項。常見的情況是主網域有按鈕、www 子網域卻沒有,或是設定都沒動過,某天按鈕突然消失,原因只是 SSL 憑證到期,連帶讓網域驗證一起失效。開通 Apple Pay 的工作,就是在金流、網域、顧客裝置之間把每一段接好。
弄清楚這顆按鈕背後的錢走哪條路,後面每一個設定才有道理。

Apple Pay 是什麼?
Apple Pay 是 Apple 的數位錢包,顧客把信用卡或簽帳金融卡存在 iPhone、iPad、Mac 或 Apple Watch 裡,結帳時按下按鈕,用 Face ID 或 Touch ID 授權,就能付款,不必再手動輸入卡號。Apple 的支援頁列出的國家和地區包含台灣,所以台灣的顧客本來就能用,網店開通後不需要另外教育市場。
對店家來說,比較容易誤會的是它的角色。Apple Pay 不是多了一個收款帳戶,也不是另一條金流。顧客授權之後,裝置會把付款資訊交給你原本使用的金流服務商處理,錢仍然走原本那條路。Shopify 的說明也寫得很明白,店家不會因為接受 Apple Pay 而多付費用,仍然依原金流服務商的處理費計算。所以開通 Apple Pay 的本質,是讓現有金流多出一個付款按鈕,而不是新增一套收款系統。
這顆按鈕在網店裡常見的出現位置有 2 種。一種是結帳頁的付款方式清單,顧客選了 Apple Pay 再付款;另一種是商品頁或購物車頁的快速結帳按鈕,顧客不必走完整的結帳表單,一按就直接進入付款視窗。這 2 種位置各有取捨,快速結帳省掉了填表步驟,也跳過了結帳頁才會收集的欄位。
金流服務商支援 Apple Pay,網店才接得上
網店不能自己直接對 Apple 收款。Apple 的實作說明指出,最主流的電商平台與金流服務商都已支援 Apple Pay,網站或 App 建議使用金流服務商提供的 Apple Pay SDK;至於經 Apple 核准的電商平台與金流服務商,則可以用 Apple Pay Web Merchant Registration API,搭配自己的 merchant ID,替旗下商家的網站註冊 Apple Pay。
這代表開通的第一道決定因素,不在 Apple,而在你用的金流。先查金流後台有沒有 Apple Pay 的選項,再談後面的設定。接著要弄清楚分工,也就是 Apple 那端的商家驗證與憑證由誰負責。有的金流把這一整段全包了,店家只要打開開關;有的則要店家自己去 Apple 開發者帳號備好憑證。這兩種情形,接下來要做的事完全不同。
Stripe 與 Adyen 的 Apple 憑證處理方式
Stripe 是完全代辦的典型。Stripe 的文件寫明,Stripe 會替你處理 Apple 商家驗證,包括建立 Apple Merchant ID 與 Certificate Signing Request,並且提醒不要照 Apple Pay 文件中的商家驗證流程再做一次。換句話說,用 Stripe 的店家不需要自己申請 Merchant ID,只需要把網域登記給 Stripe 就好。
Adyen 的做法則多了選擇。網頁的 Drop-in 與 Components 整合,可以選用 Adyen 提供的憑證,也可以用自己的憑證;iOS 原生整合一定要自備憑證;只用 API 串接的網頁可以二選一,手機端則一定要自備。也可以混搭,原生 App 用自備憑證、網頁用 Adyen 的憑證。兩家的差別,在於店家要不要自己碰 Apple 開發者帳號。
金流帳戶能不能在台灣開出來,是另一道門檻。以 Stripe 為例,它在官網公布的支援國家和地區目前沒有台灣,台灣商家要先確認自己開得出對應的帳戶,後面的 Apple Pay 設定才有意義。
國內金流服務商開通前要先確認的 3 件事
台灣店家多半使用國內的金流服務商,每家的串接方式與後台都不一樣,開通前先把下面 3 件事問清楚,比較不會白費工夫。向金流客服詢問,或翻技術文件時,可以直接拿這份清單對照:
- 你使用的串接方式支援 Apple Pay 嗎?站內付款、跳轉到金流頁結帳、外掛,這 3 種方式的支援度可能不同,要看自己實際用的是哪一種。最直接的判斷方法,是看金流後台有沒有 Apple Pay 的開關。
- 網域驗證是金流後台代辦,還是要自己把驗證檔放上網站?可以翻技術文件,看裡面有沒有網域驗證的段落。
- Apple 憑證與 Merchant ID 是金流端提供,還是要自己去 Apple 開發者帳號建立?金流若要求你上傳憑證,就屬於後者。
問完以後,答案大致分成 3 種情形。金流代辦憑證、只要店家登記網域的,要處理的只剩 HTTPS 與網域驗證;金流要求自備憑證的,還得先在 Apple 開發者帳號備齊 Merchant ID 與憑證;若你使用的串接方式根本不支援,就得先在金流端解決,例如詢問有沒有其他串接方式可以選,而不是在網站這邊反覆調整設定。

HTTPS 與網域驗證是各種做法共通的門檻
不管走哪家金流、哪個平台,Apple 這端對網站的要求是一樣的。所有含 Apple Pay 的頁面都必須走 HTTPS,網域要有有效的 SSL 憑證,伺服器要支援 TLS 1.2 或更新版本、開放 HTTPS 的 443 連接埠,並且能回應 SNI。如果網域限制公開存取,還需要放行 Apple 在註冊與驗證網域時使用的 IP 範圍。
其次,顯示 Apple Pay 按鈕的網域必須通過驗證,而這個驗證是會過期的,這件事最容易被忽略。Apple 的說明指出,網域驗證會在該網域的 SSL 憑證到期當天一併失效,Apple 會在到期前 30 天、15 天、7 天檢查憑證是否已更新;已經更新就維持驗證,不需要再做任何事。反過來,憑證過期沒換,就得回開發者帳號重做網域驗證。所以憑證到期日要有人盯,網店平常自動續約的 SSL,也要確認真的續成功了。
Apple Pay 網域驗證檔的存放位置和常見失敗原因
驗證檔的路徑固定在網域底下的 /.well-known/apple-developer-merchantid-domain-association。放好以後,用瀏覽器直接打開這個網址,應該能看到檔案內容,而且網址不能被轉址到別處。Apple 的文件明確寫到,網域不能放在 proxy 或轉址後面,Apple 的伺服器必須能直接連到這個網址。
實務上,驗證失敗多半出在幾種情形:網站沒有全站走 HTTPS、驗證檔網址被轉址、CDN 或防火牆把請求擋掉,或是伺服器設定不讓以點開頭的隱藏資料夾公開讀取。遇到這類情形,處理方向是回頭檢查防火牆、快取或安全外掛的規則,讓 .well-known 這個路徑可以被外部直接讀取。
好消息是,很多情況根本不用手動放檔。WooCommerce 搭配 Stripe 外掛時,外掛會自動建立這個網域關聯檔;Shopify 搭配 Stripe 時,也不用自己放 Stripe 的驗證檔,Shopify 會自動管理網域驗證。只有金流要求店家自行驗證時,才需要從 Apple 開發者帳號下載檔案,放到指定位置,再按下 Verify。

顯示 Apple Pay 按鈕的主網域、子網域都要各自登記
很多人只登記主網域,結果 www 或 shop 這類子網域不出現按鈕。原因是每一個會顯示 Apple Pay 按鈕的網域,都要各自登記。Stripe 的文件舉例,stripe.com、www.stripe.com、shop.stripe.com 都屬於要登記的範圍,測試時也需要登記網域,不過在正式模式登記的網域會自動同步到沙箱。

登記的位置,在 Stripe 是 Dashboard 的 Payment method domains 頁面,可以在那裡新增網域,也可以停用或重新啟用。停用以後,該網域上就不再顯示這些付款方式。要留意的是,同一個網域在同一個 Stripe 帳戶不要重複登記。
在 Apple 那一端也有一條對應的規則。Apple Pay 會把網域與開發者的 Team ID 綁在一起,同一個網域可以登記在同一個 Team 的多個 Merchant ID 底下,但不能登記在不同的 Team ID 之下。如果網域曾經被別的 Apple 開發者團隊登記過,就會在這裡遇到阻礙,需要先回頭處理舊的登記。
自備憑證時,Apple 開發者帳號要完成的 4 項設定
只有金流端要求店家自備 Apple 憑證時,才需要自己處理 Apple 開發者帳號;使用 Stripe 這類代辦型金流的店家,大多不會碰到這些設定。
需要自備時,要先有 Apple 開發者帳號,而且操作的人要是 Account Holder 或 Admin 角色。設定的順序是固定的,每一項負責的事情不同:
- Merchant ID:識別你的店家身分,永遠不會過期,可以跨多個網站與 App 共用。多數商家一個 Merchant ID 就夠用。
- 付款處理憑證:用來保護交易資料。Apple Pay 的伺服器用它的公鑰加密付款資料,店家或金流服務商再用私鑰解密。這張憑證約每 25 個月到期,可以撤銷,到期後重新建立即可。
- 商家身分憑證:這是一張 TLS 憑證,用來向 Apple Pay 伺服器驗證連線,只有網頁需要,App 不需要,同樣約每 25 個月到期。
- 網域登記與驗證:在 Merchant ID 底下的 Merchant Domains 新增網域,下載驗證檔,放到網站上指定的位置,再按下 Verify。
這幾張憑證各自只對應它所屬的 Merchant ID,混用會失效。另外,憑證與網域驗證到期前,Apple 會寄提醒信給開發者帳號的 Admin 與 Account Holder,所以這兩個角色的收件信箱要有人固定查看,否則憑證靜靜到期,Apple Pay 的按鈕就會直接消失,而店家完全沒有收到警告。
WooCommerce 透過 Stripe 外掛的快速結帳區開通 Apple Pay
WordPress 網站最常見的路徑,是用 WooCommerce 搭配 Stripe 外掛。Stripe 外掛連好帳戶之後,Apple Pay 的開關在快速結帳區,而按鈕會不會出現,還受到幾項條件影響。
開通前先確認幾項前提。網站要有有效的 SSL 憑證並且全站走 HTTPS,伺服器開放 443 連接埠、支援 TLS 1.2 以上,網域也要在 Stripe 帳戶的 Payment method domains 頁面啟用。還有一個容易漏看的條件,就是信用卡付款必須同時啟用,因為快速結帳是依附在信用卡付款之上的。此外,Apple Pay 與 Google Pay 綁在同一個開關上,不能只開其中一個。
用的若是別家的 WooCommerce 金流外掛,就拿前面那 3 個開通前要問的問題,去對照那支外掛的文件。
Stripe 外掛開通步驟及按鈕擺放頁面的取捨
後台的路徑是 WooCommerce > Settings > Payments > Stripe > Payment Methods(繁體中文後台的選單名稱以實際畫面為準),捲到 Express checkouts 區塊,勾選要啟用的方式,再儲存。儲存之後,每一組按鈕旁會出現 Customize 連結,可以調整細節。

Apple Pay 與 Google Pay 可以選擇顯示在結帳頁、商品頁、購物車頁,以及變更付款方式頁(需要 Subscriptions 外掛),也能調整按鈕上的行動呼籲文字、尺寸與色彩主題。設定頁下方還會顯示按鈕預覽,並列出目前缺少哪些資格條件,以及按鈕會出現在哪些位置。按鈕沒出現時,先看這個區塊,通常能直接指出缺哪一項。
選擇按鈕出現的頁面時,有幾個取捨要想清楚。商品頁放按鈕,顧客可以跳過一般結帳欄位直接付款,轉換上很有吸引力。不過,商品頁若有加購選項或自訂欄位這類要顧客先填選的內容,就要先確認快速結帳會不會把這些選項與加價一起帶進訂單;確認不了的話,比較穩妥的做法是關掉商品頁的快速結帳,讓這類商品走完整的結帳流程。
自訂的結帳欄位也要留意。用區塊結帳頁新增的欄位,顧客從結帳頁用快速結帳時,欄位的值會被收集並存進訂單;但這些欄位不會出現在商品頁或購物車頁,所以從那兩個位置付款時會送出空值,若欄位是必填,付款就會被拒絕。用傳統結帳頁加上去的必填欄位,則會直接擋下付款,並告訴顧客回到結帳頁填寫。這項檢查發生在顧客授權之後,顧客事前不會收到任何提示,所以有必填自訂欄位的網站,要特別評估快速結帳放在哪些頁面。
快速結帳按鈕不會出現的商品類型和稅務設定
設定都做對了,有些商品頁卻還是沒有按鈕,常見原因是商品類型。WooCommerce 的文件列出的情形包括:非預設的商品類型、依上市日扣款的預購商品、組合商品、檔案上傳欄位、免費商品,以及任一款式缺貨的變動訂閱商品。文件只列出情形,沒有逐項解釋原因,但這些商品共同的特徵,多半是付款前還需要額外的商品選項或特殊處理,快速結帳這條捷徑沒有對應的步驟。
清單裡還有一項最容易被忽略,也就是不需要運送的商品,加上稅額依顧客帳單地址計算。快速結帳在顧客按下確認之前,拿不到帳單地址,沒辦法精準計稅,所以預設會把按鈕隱藏,避免訂單稅額算錯。這個設定的組合很常見,例如賣虛擬商品或下載型商品,稅額又設成依帳單地址計算的店家,就會發現按鈕怎麼樣都不出現。
這個預設行為從 Stripe for WooCommerce 9.5.0 版開始,可以由開發者覆寫。不過要不要覆寫,要先想清楚稅額會不會因此算得不準,這件事比讓按鈕出現更重要,需要時請工程師評估後再處理。
Shopify 在付款設定的錢包區啟用 Apple Pay
Shopify 的做法是平台層級的開關,邏輯比 WooCommerce 單純,但前提是先確認你的金流在支援名單內。啟用 Apple Pay 有 3 項要求,分別是金流服務商要支援 Apple Pay(可以用 Shopify Payments,或在 Settings > Payments 的第三方金流名單中搜尋 Apple Pay)、商店網域已啟用 SSL,以及店家要遵守 Apple 的可接受使用規範。
台灣店家在這裡要先確認 Shopify Payments 的適用範圍。這項服務只開放給特定國家和地區的商店,Shopify 公布的支援名單目前沒有台灣,營業地不在名單內的店家,就得改用第三方金流,並確認該金流在 Shopify 的名單裡標有 Apple Pay。
啟用的操作路徑是 Settings > Payments,在你的金流區塊點 Manage,找到 Wallets,勾選 Apple Pay,再儲存。使用 Stripe 當金流時,Shopify 會自動處理網域驗證,不用自己放驗證檔,不過要先在 Stripe 後台同意 Apple Pay 專屬的服務條款。若使用的是 Cybersource、Authorize.net 或 First Data Payeezy,後台卻沒看到 Apple Pay 的選項,則要請處理商開啟網路代碼化(network tokenization),選項才會出現。
啟用之後,還有幾個行為限制要先知道,才不會在顧客詢問時措手不及:
- 訂閱商品要用 Apple Pay,必須使用 Shopify Payments,而且顧客只能用 Visa 或 Mastercard。
- 透過 Buy Button 銷售通路付款的訂單,不提供 Apple Pay。
- 折扣碼必須在結帳頁先輸入,才能再按 Apple Pay 按鈕。如果只在購物車頁放按鈕,顧客就沒機會輸入折扣碼,所以按鈕應顯示在結帳頁。
- 有購物車抽屜或彈出視窗的商店,按鈕可能不會顯示,需要在佈景主題補上 JavaScript。
顧客端的條件,Shopify 的文件寫的是要用 Safari,搭配相容的 Apple 裝置。這個說法和 Apple 近年開放第三方瀏覽器以掃碼付款的做法略有出入,實際支援範圍仍以平台文件為準。
自建結帳頁的網域登記,取決於串接方式
用程式自行串接、或請工程師串接的網站,要不要登記網域,分水嶺在付款表單放在哪裡。使用金流託管的結帳頁,幾乎不用設定;把付款表單嵌在自己網站上,就要登記網域。
自行串接時,Apple 提供 2 套網頁 API,Apple Pay JS 與 Payment Request API,兩者在 Safari 呈現相同的付款視窗,前置設定與使用規範也一樣。Apple Pay JS 支援更細緻的錯誤處理與聯名卡整合,Payment Request API 則是 W3C 標準候選,可以跨瀏覽器。另外有一條共通的規則,Apple Pay 的付款視窗必須由使用者動作觸發,例如按下按鈕,不能在頁面載入時自動彈出。
Stripe 託管結帳免設定,內嵌表單要登記網域
依 Stripe 的文件,使用 Payment Links 或 Stripe 託管的 Checkout 頁面,Apple Pay 不需要額外設定;使用 Elements,或把 Checkout 嵌進自己網站的內嵌模式,則需要登記網域。差別在於付款表單是出現在 Stripe 的網域,還是出現在你的網域上,後者就屬於需要驗證的範圍。
使用內嵌 Checkout(ui_mode 為 embedded_page)時,有瀏覽器版本的限制,只支援 Safari 17 以上與 iOS 17 以上。如果把表單放在 iframe 裡,iframe 的來源(協定、主機、連接埠)必須與頂層頁面相同;Safari 17 以上可以在 iframe 加上 allow=”payment” 屬性作為例外。頂層網域與 iframe 網域不同時,兩個網域都要登記。
Adyen 整合要留意的 iframe 設定和 SDK 版本
Adyen 的網頁整合除了選擇憑證來源,還要留意 iframe 的設定。結帳表單放在 iframe 裡時,要讓 Safari 17 以上的顧客能付款,iframe 需要加上 allow=”payment” 屬性;Safari 16 以下則要求 iframe 的來源與頂層頁面一致。
另一個差別是瀏覽器支援範圍。Adyen 的 Drop-in 與 Components 從 v6.10.0 起,可以在各種第三方瀏覽器與平台提供 Apple Pay,包括 Windows 與 Chromebook,由顧客用 iPhone 或 iPad 掃碼完成付款。較早的版本,則只支援 Mac 上的 Safari,以及 iOS、iPadOS 上的各種瀏覽器,非 Apple 裝置不能使用。所以網站用的 SDK 版本,會直接影響哪些顧客看得到按鈕。

顧客端需要相容的裝置、瀏覽器與已綁卡的錢包
店家端設定全都正確,顧客仍然可能看不到按鈕。弄懂這些原因,向顧客解釋時比較有依據,也不會把顧客端的限制誤判成設定出錯。
Safari 在 iPhone、iPad 與 Mac 上都可以使用 Apple Pay。在 Windows、Chromebook 這類電腦上的第三方瀏覽器則有額外條件,顧客的 iPhone 或 iPad 要在 iOS 18 或 iPadOS 18 以上,在瀏覽器上看到代碼後,用手機掃描完成付款。Apple 也註明,這項功能僅限參與的商家,並非所有市場都支援,網站端也要使用金流端支援這項功能的新版 SDK。Mac 付款出錯時,Shopify 的說明則提醒要確認 iPhone 與 Mac 靠近、藍牙開啟,並登入同一個 iCloud 帳號。
另外,Apple 對按鈕怎麼呈現有建議。當偵測到顧客的錢包裡已有卡片時,Apple Pay 應該是主要的付款選項,但不必是唯一的付款方式;顧客的錢包裡若沒有卡,仍然要能用別的方式付款,或是自行綁卡。裝置完全不支援 Apple Pay 時,則不該顯示按鈕。Android 手機本身沒有 Apple Pay,多數情況下看不到按鈕是正常現象,所以結帳頁一定要保留其他付款方式,不能只留 Apple Pay。
宣傳 Apple Pay 時的標誌與名稱使用規範
開通後,店家常會在頁尾、活動頁或社群貼文宣傳「支援 Apple Pay」,這時候就要留意 Apple 對名稱與標誌的規定,以免自己做圖時用錯。
標誌只能使用 Apple 提供的圖檔,不可以自行重畫,也不可以調整寬度、長寬比或圓角,不能加陰影、光暈或反射,不能翻轉、旋轉或做成動畫。標誌的大小也不可以比同一排的其他付款標誌小。文案裡的 Apple Pay 永遠維持英文,不翻譯,寫成兩個英文單字,A 與 P 大寫。
使用時機同樣有規定,標誌只適合用在以 Apple Pay 為主要訊息的宣傳,或是和其他付款方式並列介紹時;以商品或品牌為主的一般宣傳,就不要放。若想在網站橫幅宣布上線,Apple 建議用簡短的句子,像是「Now Accepting Apple Pay」,並強調付款輕鬆又安全。
Apple Pay 上線測試與按鈕沒出現時的排查順序
Apple Pay 的測試和一般金流不太一樣。Stripe 的文件說明,測試 Apple Pay 必須使用真實的信用卡搭配測試 API 金鑰,Stripe 辨識為測試之後,會回傳一組成功的測試 token,所以真實卡片不會被扣款。Stripe 的測試卡與 Apple 的測試卡,都無法存進 Apple Wallet,因此不能用一般金流常用的測試卡號來替代。
要快速確認顧客的裝置與瀏覽器是否相容,可以使用 Stripe 提供的示範頁。如果按鈕在示範頁都不出現,問題就出在裝置、瀏覽器或錢包,而不是你的網站。
按鈕沒出現時,可以照由外到內的順序逐項排查:
- 裝置與瀏覽器:Apple Pay 只對相容的裝置與瀏覽器顯示,而且顧客的錢包裡要有卡。不相容時,Stripe 不會顯示 Apple Pay 作為付款選項。
- HTTPS 與 SSL:頁面沒有走 HTTPS,或憑證無效,Apple 端就不會接受這個網域。
- 網域登記狀態:網域沒登記、被停用,或是登記的是主網域而不是實際顯示按鈕的子網域,按鈕都不會出現。SSL 憑證到期造成驗證失效時,要回開發者帳號重做網域驗證。
- 平台或外掛的設定:WooCommerce 的結帳表單會快取已啟用的付款方式,約每 10 分鐘更新一次,剛改完設定沒看到變化,可以重新整理 Payment Methods 設定頁,清除快取;主題的結帳樣板過期,也可能讓付款方式無法顯示,可到系統狀態報告檢查;網站正式環境要有可用的 SSL,或啟用 Force SSL。Shopify 則要檢查購物車抽屜是否補了 JavaScript、折扣碼流程有沒有設計好。
- 日誌:前面都排除了,就到 Stripe 外掛的 Advanced Settings 開啟日誌,重現問題後再看錯誤訊息。Shopify 若在棄單的付款事件看到幣別錯誤,則要先確認國際市場與幣別設定正確,再請顧客確認 Apple Pay 帳戶支援跨境交易、資料沒有缺漏。

Apple Pay 按鈕有沒有出現,取決於金流、網域與顧客裝置三端同時對上,缺一端就看不到。上線後多留意憑證到期日,並找一台 iPhone 實際走過一次結帳流程,確認 Apple Pay 的付款視窗會跳出來、其他付款方式也還在,這才算是真的把 Apple Pay 開通完成。
