更新 Payment Handler API 的 CanMakePayment 事件行為

Payment Handler API 付款服務供應商 可以為付款服務供應商提供自訂付款服務 商家以及 Payment Request API。當 Payment Request API透過 new PaymentRequest() 建構函式後,系統會無訊息地觸發 canmakepayment 事件,例如: 商家的來源和任意資料 已註冊給 Payment Handler API 的 Service Worker。 這項跨來源通訊不需要使用者手勢,也不需要 不會顯示任何使用者介面

Chrome 即將移除「canmakepayment」事件的識別欄位 使用 Chrome 108 開始來源試用。

本頁資訊僅適用於採用 Payment Handler API。如果您沒有使用,可以略過這些操作說明。

異動內容

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

  • topOrigin
  • paymentRequestOrigin
  • methodData
  • modifiers

即將移除,Service Worker 只會收到 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 將權杖新增至 Service Worker JavaScript 檔案 HTTP 標頭。設定 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 版中預設為啟用。您可以立即開始測試,以做好準備 做出調整