感應式刷卡機與 Google 錢包應用程式之間的通訊
終端機具有對應至兌換核發機構 ID 的收集器 ID 來識別本身。智慧感應功能發生時,終端機會將收集器 ID 傳輸至使用者的裝置。接著,Google 錢包應用程式會檢查每張已儲存票證的類別 ID 和收集器 ID。找到一或多筆相符項目時,Google 錢包應用程式會將相符的票證傳送至終端機。如需設定詳細資料,請參閱商家設定一文。
示例 1:一個兌換核發機構
上圖中有兩個不同的核發者:
- 核發者
2018
是票證開發人員 (也稱為匯總器) - 核發者
1990
是商家 fooPizza (也稱為兌換核發機構)
兌換核發機構 fooPizza 想為票證啟用智慧感應功能 (由匯總器管理)。匯總器和兌換核發者必須完成下列步驟,才能啟用商家終端機的智慧感應功能。
步驟 | 角色 | 說明 |
---|---|---|
1 | 集結網站 | 建立票證類別和物件 (分別在圖中為 abc 和 123 )。 |
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 | 集結網站 | 建立票證類別和物件 (分別在圖中為 abc 和 123 )。 |
2 | 集結網站 | 請在票證類別的 redemptionIssuers 屬性中加入兌換核發者的 ID。這會讓 Google 錢包瞭解核發者 ID 1990 和 2018 可兌換參照這個類別的票證物件。 |
3 | 兌換 核發機構 | 取得收集器 ID (在圖表中,是 fooPizza 的 12345678 ,以及 yumPie 的 18802001 )。 |
4 | 兌換 核發機構 | 在支援智慧感應功能的每個終端機上設定對應的收集器 ID。只要物件具有類別 ID abc 且有相符的收集器 ID,系統就會將該物件傳達給讀取者。 |
範例 3:無匯總器
您可以使用同一個核發機構帳戶開發及核發票證類別。在這種情況下,沒有集結網站可管理多個兌換核發者的票證類別。如要兌換特定票證類別,票證開發人員必須在類別的 redemptionIssuers
屬性中加入核發者 ID。接著,票證開發人員必須取得收集器 ID,並在支援智慧感應功能的終端機上設定該 ID。
票證開發人員必須完成下列步驟,為商家感應式刷卡機啟用智慧感應功能。
步驟 | 角色 | 說明 |
---|---|---|
1 | 傳單 開發人員 | 建立票證類別和物件 (分別在圖中為 abc 和 123 )。 |
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:
44444444
、77777777
- 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
。與物件對應的類別啟用智慧感應功能後,系統就會將這個值傳送至終端機。
根據您的整合和用途,這個值將用於識別使用者的票證,並執行任何必要的交易邏輯,例如:
- 更新使用者的餘額或狀態
- 根據交易更新您自己的後端
- 使用 Google Wallet API 發布票證物件更新,使其能反映使用者裝置狀態的任何變動
感應式刷卡機和 Google 錢包應用程式會替透過 NFC 傳輸的所有資料進行加密,智慧感應功能發生後,終端機會負責將資料解密。資料中會有服務物件 NDEF 記錄,代表各個傳輸的資料。服務物件的 Service number NDEF Record
具有一個酬載,其中包含在傳遞物件的 smartTapRedemptionValue
屬性中設定的值。這表示傳遞開發人員不必處理傳輸資料的加密作業。
如要增添一層安全防護,您可以設定 smartTapRedemptionValue
屬性,只讓接收已傳輸資料的系統 (例如銷售點) 進行解密。不過,傳遞開發人員和 POS 管理員會負責加密/解密程序。