更新 Payment Handler API 的 CanMakePayment 事件行為

Payment Handler API 可讓付款服務供應商為商家提供自訂付款體驗,並搭配Payment Request API。當Payment Request API 透過 new PaymentRequest() 建構函式初始化時,系統會靜默觸發 canmakepayment 事件,並將商家來源和任意資料傳送至為 Payment Handler API 註冊的服務工作者。這類跨來源通訊不需要使用者手勢,也不會顯示任何使用者介面。

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

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

異動內容

當商家呼叫 new PaymentRequest() 時,已註冊的服務工作者會收到 canmakepayment 事件 (CanMakePaymentEvent),其中包含以下資訊:

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

這些項目將會移除,服務工作者只會收到 canmakepayment 事件,而不會收到任何其他資訊。

特徵偵測

如要偵測服務工作程式程式碼中是否變更 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 Intent) 會清空。

在實際工作環境中啟用變更

您也可以在正式版中啟用變更,以便在實際在 Chrome 中推出前進行測試。這種機制稱為「原點測試」。

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

如要註冊來源試用,請按照下列步驟操作:

  1. 為來源索取權杖
  2. 使用 Origin-Trial HTTP 標頭,將權杖新增至服務工作者 JavaScript 檔案。設定 HTTP 標頭時,您必須具備設定伺服器的權限。產生的回應標頭應如下所示:
Origin-Trial: Auw/tjTQ2eJQ911wiMHi1Bb7i71...

如要在服務工作者檔案中查看來源試用權杖,請使用 DevToolscurl 指令,如下所示:

$ 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 版預設啟用。您可以立即開始測試,為啟用時間變更做好準備。