更新 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

這些即將移除,Service Worker 只會收到 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 意圖)。

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

您也可以先在實際工作環境中啟用變更,在變更發布至 Chrome 之前進行測試。這項機制稱為「來源試用」。

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

如何註冊來源試用:

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

如要在服務工作者檔案中查看來源試用權杖,請使用「開發人員工具」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 版中預設為啟用。您可以立即開始測試,為產品發布後的異動及時做好準備。