智慧感應功能通訊流程

感應式刷卡機與 Google 錢包應用程式之間的通訊

終端機具有對應至兌換核發機構 ID 的收集器 ID 來識別本身。智慧感應功能發生時,終端機會將收集器 ID 傳輸至使用者的裝置。接著,Google 錢包應用程式會檢查每張已儲存票證的類別 ID 和收集器 ID。找到一或多筆相符項目時,Google 錢包應用程式會將相符的票證傳送至終端機。如需設定詳細資料,請參閱商家設定一文。

示例 1:一個兌換核發機構

下圖說明此圖所示設定。

上圖中有兩個不同的核發者:

  • 核發者 2018 是票證開發人員 (也稱為匯總器)
  • 核發者 1990 是商家 fooPizza (也稱為兌換核發機構)

兌換核發機構 fooPizza 想為票證啟用智慧感應功能 (由匯總器管理)。匯總器和兌換核發者必須完成下列步驟,才能啟用商家終端機的智慧感應功能。

步驟 角色 說明
1 集結網站 建立票證類別和物件 (分別在圖中為 abc123)。
2 集結網站 在票證類別的 redemptionIssuers 屬性中加入兌換核發機構 ID。這會讓 Google 錢包瞭解核發者 ID 1990 可兌換參照這個類別的票證物件。
3 兌換核發機構 取得收集器 ID (圖中的 12345678)。
4 兌換 核發機構 在要使用的每個智慧感應功能終端機上設定收集器 ID 12345678。任何具有類別 ID abc 且收集器 ID 為 12345678 的物件都會傳送給讀取者。

範例 2:多個兌換核發機構

單一票證類別可以有多個兌換核發者。如要兌換特定票證類別,您必須在類別的 redemptionIssuers 屬性中加入兌換核發者的 ID。每個兌換核發機構都會有自己的收集器 ID,這組 ID 已在支援智慧感應功能的終端機上設定。

下圖說明此圖所示設定。

上圖中有三個不同的發行者:

  • 核發者 8088 是票證開發人員 (集結機構)
  • 核發者 1990 是商家 fooPizza (兌換核發機構)
  • 核發者 2018 是商家 yumPie (兌換核發機構)

匯總器和兌換核發者必須完成下列步驟,為商家感應式刷卡機啟用智慧感應功能。

步驟 角色 說明
1 集結網站 建立票證類別和物件 (分別在圖中為 abc123)。
2 集結網站 請在票證類別的 redemptionIssuers 屬性中加入兌換核發者的 ID。這會讓 Google 錢包瞭解核發者 ID 19902018 可兌換參照這個類別的票證物件。
3 兌換 核發機構 取得收集器 ID (在圖表中,是 fooPizza 的 12345678,以及 yumPie 的 18802001)。
4 兌換 核發機構 在支援智慧感應功能的每個終端機上設定對應的收集器 ID。只要物件具有類別 ID abc 且有相符的收集器 ID,系統就會將該物件傳達給讀取者。

範例 3:無匯總器

您可以使用同一個核發機構帳戶開發及核發票證類別。在這種情況下,沒有集結網站可管理多個兌換核發者的票證類別。如要兌換特定票證類別,票證開發人員必須在類別的 redemptionIssuers 屬性中加入核發者 ID。接著,票證開發人員必須取得收集器 ID,並在支援智慧感應功能的終端機上設定該 ID。

下圖說明此圖所示設定。

票證開發人員必須完成下列步驟,為商家感應式刷卡機啟用智慧感應功能。

步驟 角色 說明
1 傳單 開發人員 建立票證類別和物件 (分別在圖中為 abc123)。
2 傳單 開發人員 在票證類別的 redemptionIssuers 屬性中加入他們的核發機構 ID。這會讓 Google 錢包瞭解核發者 ID 2018 已獲準兌換參照這個類別的票證物件。
3 傳單 開發人員 取得收集器 ID (圖中的 12345678)。
4 傳單 開發人員 在支援智慧感應功能的每個終端機上設定對應的收集器 ID。只要物件具有類別 ID abc 且有相符的收集器 ID,系統就會將該物件傳達給讀取者。

使用者體驗和行為

終端機和 Google 錢包應用程式之間傳輸的內容行為,視使用者和他們當下與 Google 錢包應用程式互動的方式而定。

情境 1:使用者開啟特定票證

步驟 角色 說明
1 使用者 在 Google 錢包應用程式中選取特定票證。
2 使用者 輕觸支援智慧感應功能的感應式刷卡機。
3 航站 (比對器 ID 相符) 票證會傳送至終端機。
(賣家 ID 不相符) 票證不會傳送至終端機。

情境 2:Google 錢包首頁分頁或解鎖的螢幕檢視畫面

步驟 角色 說明
1 使用者 在 Google 錢包應用程式中開啟「首頁」分頁,或解鎖裝置的螢幕。
2 使用者 輕觸支援智慧感應功能的感應式刷卡機。
3 終端機 (單一有效的收集器 ID 相符) 票證會傳送至終端機。
(多個有效的收集器 ID 相符) 顯示有效票證的輪轉介面,並傳送使用者選取的項目。

請注意,票證的效力取決於票證物件的設定。請務必檢查下列傳遞物件屬性:

  • state
  • validTimeInterval

智慧感應功能收集範例

下表說明這個範例中使用的 Issuer 和票證:

商家名稱 ILuvCoffee 咖啡料理 摩卡車
核發機構 ID 123 456 789
賣家 ID 11111111 44444444 77777777
會員方案等級R 基本 我的獎勵金
黃金級

ILuvCoffee 提供兩種會員等級:「R-Basic」和「R-Gold」。與此同時,Coffee-Foo 提供了一個單一層級的會員方案「My Rewards」,而 Mocha-R-Us 則沒有任何會員方案。

在交叉宣傳廣告活動中,商家希望客戶能選擇以下選項:

  • 如果是「R-Basic」層級,客戶可使用智慧感應功能在 Coffee-Foo 和 Mocha-R-U 兌換會員會員資格
  • 黃金級級客戶不需要使用智慧感應功能進行兌換
  • 我的會員獎勵客戶可以使用智慧感應功能兌換 Coffee-Foo 的會員方案。

為確保這個廣告活動能正常運作,每個會員類別都必須在類別定義的 redemptionIssuers 屬性中設定下列值。

會員類別 兌換核發機構 ID
R 基本 ["456", "789"]
黃金級 []
我的獎勵金 ["456"]

採用這項設定後,參照這些類別的票證物件都會具備下列收集器 ID:

  • R-Basic: 4444444477777777
  • R-Gold:不會包含收集器 ID
  • 我的獎勵: 44444444

在輕觸時進行收集器驗證

核發者設定中,核發者帳戶可能有多個相關聯的公開金鑰。這些公開金鑰會儲存在 Google 錢包應用程式中,當使用者將裝置貼近支援智慧感應功能的感應式刷卡機時,該金鑰就會用於驗證。應用程式找到向使用者核發的票證物件之後,該物件的收集器 ID 與終端機公告的值相符,系統就會執行這個驗證步驟。

延續上一節中的範例,下表說明與各個核發者相關聯的公開金鑰。

商家名稱 ILuvCoffee 咖啡料理 摩卡車
核發機構 ID 123 456 789
賣家 ID 11111111 44444444 77777777
會員方案等級R 基本 我的獎勵金
黃金級
公開金鑰 aaa bbb

範例客戶已在 Google 錢包應用程式中儲存的會員卡如下:

  • ILuvCoffee: R-Basic
  • Coffee-Foo: 我的獎勵

和之前一樣,您可以在每個會員類別的 redemptionIssuers 屬性中設定下列值。

  • R-Basic: ["456", "789"]
  • 我的獎勵: ["456"]

如果使用者在各個商家的感應式刷卡機輕觸裝置,可能會產生以下三種結果:

商家終端機 結果
ILuvCoffee 由於 ILuvCoffee (兌換核發機構 ID 123) 目前未設定用來兌換自己的會員類別,因此 R-Basic,系統不會傳輸任何內容。
咖啡 Google 錢包應用程式使用 bbb 公開金鑰驗證 Coffee-Foo 終端機。視使用者在裝置上查看的目前畫面而定,「使用者體驗」一節中列出的情境會有所不同。
摩卡瑞歐斯 此例子沒有 Mocha-R-Us 的公開金鑰。即使 R-Basic 方案可透過商家兌換,但無法通過感應式刷卡機驗證,因此系統不會傳送任何內容。

驗證限制

將票證同步處理至使用者的 Google 錢包應用程式後,系統會從 Google 錢包後端查詢該票證的所有兌換核發機構。每個兌換核發機構的收集器 ID、公開金鑰和金鑰版本都會儲存在本機的 Google 錢包應用程式中。

一張票證可以有多個兌換核發機構 ID。然後每個都會對應到特定商家的特定收集器 ID。此外,同一個收集器 ID 可以有許多公開金鑰和金鑰版本。

如果感應式刷卡機沒有任何可兌換的票證,Google 錢包應用程式就不會嘗試進行身分驗證。這是以收集器 ID 和公開金鑰版本為基礎。如要更新票證的公開金鑰,感應式刷卡機必須連上網際網路,這樣系統才能從 Google 錢包後端擷取新的公開金鑰。

一張票證可以一次與多組公開金鑰建立關聯。如要瞭解如何為同一張票證設定多個公開金鑰,請參閱「商家設定」一文。

輕觸時的值傳輸

如要在輕觸期間傳送票證的資料,必須設定票證物件的 smartTapRedemptionValue。與物件對應的類別啟用智慧感應功能後,系統就會將這個值傳送至終端機。

根據您的整合和用途,這個值將用於識別使用者的票證,並執行任何必要的交易邏輯,例如:

  1. 更新使用者的餘額或狀態
  2. 根據交易更新您自己的後端
  3. 使用 Google Wallet API 發布票證物件更新,使其能反映使用者裝置狀態的任何變動

感應式刷卡機和 Google 錢包應用程式會替透過 NFC 傳輸的所有資料進行加密,智慧感應功能發生後,終端機會負責將資料解密。資料中會有服務物件 NDEF 記錄,代表各個傳輸的資料。服務物件的 Service number NDEF Record 具有一個酬載,其中包含在傳遞物件的 smartTapRedemptionValue 屬性中設定的值。這表示傳遞開發人員不必處理傳輸資料的加密作業。

如要增添一層安全防護,您可以設定 smartTapRedemptionValue 屬性,只讓接收已傳輸資料的系統 (例如銷售點) 進行解密。不過,傳遞開發人員和 POS 管理員會負責加密/解密程序。