更新 Payment Handler API 的 CanMakePayment 事件行為

Payment Handler API 可讓付款服務供應商搭配 Payment Request API 為商家提供自訂付款體驗。透過 new PaymentRequest() 建構函式初始化 Payment Request API 時,會以商家的來源和任意資料,向已註冊 Payment Handler API 的 Service Worker 觸發 canmakepayment 事件,而不顯示任何通知。這項跨來源通訊不需要使用者手勢,也不會顯示任何使用者介面。

Chrome 將移除 canmakepayment 事件的識別欄位,並從 Chrome 108 版開始來源試用。

本頁資訊僅適用於使用 Payment Handler API 的付款應用程式供應商。如果您不使用,可以略過這些操作說明。

異動內容

商家呼叫 new PaymentRequest() 時,已註冊的 Service Worker 會收到 canmakepayment 事件 (CanMakePaymentEvent),其中包含下列資訊:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

這些項目將移除,服務工作站只會收到 canmakepayment 事件,而不含任何額外資訊。

功能偵測

如要偵測 Service Worker 程式碼中的 canmakepayment 事件是否已變更,請檢查個別屬性,如下所示:

self.addEventListener(e => {
  if (e.paymentRequestOrigin) {...}
  if (e.topOrigin) {...}
  if (e.methodData && e.methodData.length > 0) {...}
  if (e.modifiers && e.modifiers.length > 0) {...}
  ...
});

在本機試用變更

如要基於開發目的在本機啟用變更,請按照下列步驟操作:

  1. 請使用 Chrome 108、109 或 110。
  2. 在網址列中輸入「chrome://flags/#clear-identity-in-can-make-payment」。
  3. 啟用旗標。
  4. 重新啟動 Chrome。

啟用這個標記後,系統會清除 canmakepayment 事件中的身分欄位 (以及 Android IS_READY_TO_PAY 意圖)。

在正式環境中啟用變更

您也可以先為正式版啟用變更,待變更實際儲存至 Chrome 中。這項機制稱為「來源試用」。

來源試用可讓您試用新功能,並向網路標準社群的可用性、實用性和成效提供意見回饋。詳情請參閱網頁程式開發人員的來源試用指南。如要申請試用這項方案或其他來源試用服務,請前往註冊頁面

如何註冊來源試用:

  1. 為來源要求權杖
  2. 使用 Origin-Trial HTTP 標頭,將憑證新增至 Service Worker JavaScript 檔案。設定 HTTP 標頭需要有存取權才能設定伺服器。產生的回應標頭應如下所示:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

如要查看 Service Worker 檔案中的來源試用權杖,請使用開發人員工具curl 指令,如下所示:

$ curl --head <Service Worker JS file URL> | grep -i origin-trial
origin-trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

在 Chrome 111 版本後在本機重新啟用身分欄位

如果您使用的是 Chrome 111 以上版本,canmakepayment 事件中的身分欄位會留空。如要在本機重新啟用欄位,您可以執行下列操作:

  1. 請使用 Chrome 111 以上版本。
  2. 在網址列中輸入「chrome://flags/#add-identity-in-can-make-payment」。
  3. 啟用旗標。
  4. 重新啟動 Chrome。

後續步驟

Chrome 111 預計將預設啟用這項變更。您可以立即開始測試,為日後推出的變更做好萬全準備。