一、項目分析:
很多客戶想實現ECstore移動端微信登錄,其實系統本身已經實現了基本的微信登錄功能,只是功能被開發人員隱藏起來了。
在ecstore\app\trustlogin\services.xml這個文件中找到下圖紅圈中的代碼,去掉注釋,然后再后臺【應用中心】維護一下,在信任登錄功能中,就可以看到和開啟微信登錄了。
起初以為這樣就可以在移動端正常使用微信登錄功能,實在是我太天真了。功能開啟后,PC端掃碼登錄功能可以正常使用了,但是移動端竟然也是使用的掃碼登錄方式,試問你可以用你自己的手機掃自己手機瀏覽器里的二維碼嗎?
原來官方把這個隱藏起來是有原因的,這個功能其實并不完整,屬于一個半成品。但基本方法既然實現了,要實現真正的微信自動登錄(免登)應該不難。清風君分析了一下代碼,發現只要幾個簡單的修改就可以實現微信瀏覽器內訪問wap端自動登錄了。
二、移動端微信免登改造方法:
在wap\lib\trustlogin\weixin.php這個文件中,新增一個微信授權登錄接口
說明一下,其實微信H5端使用的登錄接口不是掃碼登錄,而微信網頁授權登錄。它的接口地址為:https://open.weixin.qq.com/connect/oauth2/authorize。只有通過這個接口,可以獲取到微信返回的unionid。pc端和移動端通過unionid才能實現互通(即使用同一個賬號登錄會員中心)。
還需要改造幾個地方,如下圖:
最后,在獲取微信用戶信息的方法里,把opendid的取值改為獲取unionid,大功告成。