QR 配對在瀏覽器端實際發生什麼事
當你在 web.whatsapp.com 打開頁面,瀏覽器會先透過 WebSocket 建立一條與 WhatsApp 伺服器的長連線,並在本地生成一組短效的配對憑證。這組憑證會以 QR Code 的形式渲染在畫布上,預設有效期約為 20 秒,過期後頁面會自動刷新一組新的 QR。手機端掃碼的動作本質上是把這組憑證透過已加密的通道回傳給伺服器,伺服器再通知瀏覽器端「配對成功」,此時瀏覽器才會取得一組裝置金鑰並開始同步訊息。
整個過程不需要手機與電腦處於同一個 Wi-Fi 網路,因為憑證交換是經由 WhatsApp 的中繼伺服器完成,而非區域網路直連。這也是為什麼你在公司電腦掃家裡手機的 QR 也能成功。但要注意,部分企業防火牆會封鎖 WebSocket 的 443 埠升級請求,導致 QR 一直停留在「正在連線」的狀態。
手機端入口的版本差異與常見誤區
不同作業系統與 App 版本,掃碼入口的位置並不一致,這是開發者協助使用者排查時最常遇到的問題之一。以下整理目前多數版本的路徑:
- Android:WhatsApp → 右上角三點選單 → 已連結的裝置 → 連結裝置。
- iOS:WhatsApp → 設定(右下角)→ 已連結的裝置 → 連結裝置。
- WhatsApp Business:路徑與一般版相同,但部分舊版(2.22 以前)選單名稱是「WhatsApp Web」而非「已連結的裝置」。
常見誤區是使用者在手機上找不到「已連結的裝置」,通常有兩個原因:一是 App 版本過舊,二是企業裝置管理(MDM)政策停用了多裝置功能。此時即使 QR 正確也無法完成配對,需要先更新 App 或請 IT 管理員確認政策設定。
逾時、距離與網路條件的實測邊界
QR Code 的有效期短,實務上建議手機與電腦螢幕保持 15 至 30 公分 的距離,太遠會導致相機無法辨識,太近則容易失焦。若掃碼後畫面停滯超過 60 秒,多數情況下是瀏覽器端的 WebSocket 已斷線,重新整理頁面即可取得新的 QR。
以下是幾個實測條件下的行為邊界,供排查時參考:
| 條件 | 預期行為 | 建議處理 |
|---|---|---|
| QR 停留超過 20 秒未掃 | 自動刷新,舊碼失效 | 直接掃新碼,無需重新整理 |
| 掃碼後 60 秒內未完成 | 連線逾時,顯示重試按鈕 | 重新整理頁面,檢查網路 |
| 瀏覽器封鎖 WebSocket | QR 持續顯示「正在連線」 | 更換網路或關閉防火牆測試 |
| 手機端已連結 4 台裝置 | 無法新增,提示裝置數量上限 | 先移除不用的舊裝置 |
多數情況下,WhatsApp 允許一個帳號同時連結最多 4 台 已連結裝置(不含手機本身)。超過上限時,手機端會直接拒絕新的配對請求,而不是在瀏覽器端顯示錯誤,因此排查時要兩端都看。
配對成功後的權限與同步範圍
配對完成後,瀏覽器端取得的是一組與手機獨立的裝置金鑰,這意味著網頁版可以收發訊息、讀取對話記錄,但無法使用需要手機硬體的功能,例如語音通話、動態更新發布、以及部分需要簡訊驗證的操作。開發者若在網頁版整合自動化流程,需注意以下限制:
- 網頁版無法變更帳號的兩步驟驗證設定,該操作僅限手機端。
- 已連結裝置的清單只能在手機端管理,網頁版無法自行登出其他裝置。
- 訊息同步是增量式的,初次配對時會拉取近期對話,但不會下載完整的歷史備份。
- 若手機端超過 14 天 未連網,已連結的網頁版裝置通常會被強制登出,需要重新配對。
這些限制在設計任何依賴網頁版的自動化腳本時都必須納入考量,尤其是長時間執行的服務,應該實作斷線重連與重新配對的邏輯,而不是假設連線會一直保持。
五個常見卡點的技術成因
根據實際排查經驗,配對失敗多半集中在以下五種情況,每一種都有明確的技術成因:
- QR 顯示但無法掃描:瀏覽器縮放比例不是 100%,導致 QR 模組被重新取樣而模糊。將縮放重設為 100% 通常可解決。
- 掃碼後一直轉圈:瀏覽器的第三方 Cookie 或本機儲存被完全封鎖,配對憑證無法寫入。需允許 web.whatsapp.com 的儲存權限。
- 手機顯示「無法連結」:手機時間與網路時間偏差超過 5 分鐘,憑證簽章驗證失敗。開啟自動校時即可。
- 配對成功但訊息不同步:企業 Proxy 攔截了 WebSocket 的後續帧,或瀏覽器擴充功能(如廣告阻擋器)干擾。用無痕模式測試可快速定位。
- 反覆被登出:手機端處於省電模式,背景連線被系統中斷超過閾值。將 WhatsApp 加入電池優化白名單可降低發生頻率。
以上五點涵蓋了多數回報案例,排查時建議按順序檢查:瀏覽器縮放與儲存權限、手機時間、網路環境、擴充功能、手機省電設定。這個順序是從成本最低的檢查開始,通常在前兩步就能解決大半問題。