一次看懂 Apple Pay 惱人的啟用設定和專有名詞

Apple Pay 在商業應用場景上是極為便利的,拿出手機刷臉然後「逼!」一下就完成付款了。但 Apple Pay 在開發前的設定上卻是複雜的(沒錯!還沒到開發,開發反而很簡單)。本篇將用營業用計程車的方式來做譬喻,帶大家認識 Apple Pay 啟用設定會用到的各種東西。

Michael Revlis
5 min readMar 31, 2022

這邊只講一個粗淺的觀念,設定的操作、畫面等請參 Apple Pay 申請流程手把手教學

先假設讀者是有自行上架經驗的 iOS 工程師,對 Apple Developer Account 和 app bundle ID 都不陌生。今天就要用開車來譬喻我們的 app:你新建了一個 app 專案,並跟 Apple 註冊了獨一無二的 app bundle ID,我們把它想成是你購買了一輛汽車。你可以在自家院子裡隨意開車,但如果要上路(上架到 AppStore)就需要考駕照,不過 Apple 的駕照不用考🎉,只要繳 100 鎂就可以拿到 Apple Developer Membership,只是這個東西要年繳…💸💸💸

有一天看到那麼多多元計程車在街上跑,心血來潮也想拿自己的車來營業,也就是讓 app 搭載 Apple Pay 功能並在上面做支付。看了一下 Apple 官方的說明,在啟用 Apple Pay 前還要去申請一個 merchant ID,我們可以把它想像成是營業用的車牌,要先申請到營業用車牌才可以在街上載人營業,不然就是白牌計程車,是違法的。

另外這個車牌除了要官方認證外,也是有效期的。所以我們要幫 merchant ID 申請 payment certificate,擁有了這個 certificate 就代表是 Apple 官方認可過的。而 certificate 的申請方式就是使用 CSR。

但可不是拿到一張新的營業用車牌,自己鎖到汽車上就可以到處趴趴走。還是要跟官方登記說你的某一台車要使用這個營業用車牌,這個動作就是在我們 app ID 的 capabilities 中啟用 Apple Pay,並且指定是使用哪一個(或多個)merchant ID。

做完了上述的設定,那相關的文件也會要跟著更新,這樣未來臨檢的時候才有最新的資料可以核對。這也是每次我們異動 app 的 capabilities 時,provisioning profile 都需要更新,且要用新的 provisioning profile 打包 app 並送審,這樣新的 app 上才可以使用 Apple Pay 了。

上面用汽車、營業用車牌等譬喻來讓大家認識 Apple Pay 整個申請與設定的概念,以下把流程上會遇到的專有名詞一一作解釋:

merchant ID:被譬喻成營業用車牌。實際上它用來辨識 Apple Pay 的收款對象是誰。最簡單的設定方式就是一個 app 對應一個 merchant ID,merchant ID 的取名上更可以用 merchant. + bundle ID這樣的規則,容易分辨。但也可根據不同的商業面用途而有多種組合:

每個 app 綁定多組 merchant ID:例如你的 app 是一個商城,上面有 A, B, C 三個賣家,因各自的收款對象、可接受的國際信用卡組織不同等商業面需要,故有必要分開來設定。則可以申請三個不同的 merchant IDs,並在專案的程式碼中針對不同的 merchant ID 指定不同的國際信用卡組織 supportedNetworks(ex. .visa, .masterCard),或是可接收的收單類型merchantCapabilities(ex. .capability3DS, .capabilityDebit

每個 merchant ID 被綁定在多個 app 上:例如你的公司針對不同客群的使用習慣,共出了兩個 app,此時就可以只申請一組 merchant ID,並讓這兩個 app 都綁定同一組 merchant ID。又或者你也在網頁上實作了 Apple Pay,則網頁跟 app 的 merchant ID 也可以使用同一個。

payment certificate:被譬喻成營業用車牌的認證有效期限。實際上也的確是類似的功能,這個 payment certificate 是開發者向 Apple 申請的,每張 certificate 的有效期限是 25 個月(兩年要更新一次,並給你一個月的緩衝期)。官方也為了避免一個月緩衝不夠,允許一張 merchant ID 底下同時存在兩張 payment certificates,但只有一張會是 active 的狀態,讓有效期間互相重疊,當第一張 active 的 certificate 過期時,就會自動啟用第二張 certificate。喜歡做自動化的朋友,也可以定時就產一張 payment certificate 並把較舊的那一張換掉。(流程細節:revoke 舊的 certificate,第二張 certificate 自動變成 active,再把新的 certificate 加到 merchant ID 中,保持仍有兩張 certificates)。

CSR:要跟 Apple 申請 payment certificate 的 CSR,跟申請 app distribution/development certificate 的 CSR 是不一樣的!申請 Apple Pay payment certificate 的 CSR 要特別指定是 ECC 演算法、256 bit 密鑰。官方說明也有特別強調這個差異。

--

--