獲取微信昵稱、頭像、OpenID
微信公眾號服務號的網頁授權功能開發,主要是通過js跳轉到一個微信提供的url
然后微信會彈出獲取昵稱頭像的按鈕
允許獲取后,會回跳到我們的網址上,并且帶著一個code引數
我們拿到code引數,呼叫介面獲取到獲取到昵稱頭像、以及openid,這樣就拿到了微信客戶的主要資訊
系結自有系統
我們資料庫會建立一張表,存盤一個對應關系
微信openid對應的我們用戶的唯一標識,拿到OpenID查詢出唯一標識,就能獲取到我們自己的用戶資訊
這樣就能直接登錄到系統了
實際案例
比如我的唯一在線客服系統(gofly.v1kf.com),客服人員點擊模板訊息的時候,就是訪問以下網址
http://127.0.0.1:8081/wechatTransfer?ent_id=xxxxxx
這個頁面什么也沒干,就是組裝了一下微信的URL,跳轉到微信的URL
var redirect="自己的網址"; var url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+自己的APPID +"&redirect_uri="+redirect +"&response_type=code&scope=snsapi_userinfo#wechat_redirect" document.location.href=url;
用戶點擊允許獲取資訊后,會帶著code回跳到
自己的網址/?code=xxxxxxx
在頁面中通過code獲取微信openid和頭像昵稱
主要的邏輯代碼如下,這里面的appId appSecret等資訊需要使用自己的
Golang獲取微信昵稱、頭像
引入一下包
"github.com/silenceper/wechat/v2" "github.com/silenceper/wechat/v2/cache" offConfig "github.com/silenceper/wechat/v2/officialaccount/config" "github.com/silenceper/wechat/v2/officialaccount/oauth"
/** 公眾號網頁授權封裝函式 所需引數解釋: appid,appsecret,token這三個是公眾號后臺設定的 code是網頁授權回跳鏈接帶回來的,code作為換取access_token的票據,每次用戶授權帶上的 code 將不一樣,code只能使用一次,5分鐘未被使用自動過期, cache是記憶體形式存盤access_token cache := cache2.NewMemory() */ func GetWechatOfficialNickname(appId, appSecret, token, code string, cache cache.Cache) (userinfo oauth.UserInfo, err error) { cfg := &offConfig.Config{ AppID: appId, AppSecret: appSecret, Token: token, //EncodingAESKey: "xxxx", Cache: cache, } wc := wechat.NewWechat() officialAccount := wc.GetOfficialAccount(cfg) oauth := officialAccount.GetOauth() accessToken, err := oauth.GetUserAccessToken(code) if err != nil { return } userinfo, err = oauth.GetUserInfo(accessToken.AccessToken, accessToken.OpenID, "") if err != nil { return } return }
測驗用例
func TestGetWechatOfficialNickname(t *testing.T) { cache := cache2.NewMemory() userInfo, err := GetWechatOfficialNickname("appid", "appsecret", "token", "code", cache) log.Println(userInfo, err) }
測驗效果可以掃碼以下二維碼

微信網頁授權能力調整公告
當開發者在網頁中在不規范使用發起 snsapi_userinfo 網頁授權時,微信將默認打開網頁快照頁模式進行基礎瀏覽,能力調整將于 2022 年 7 月 12 日 24 時生效,
網頁快照頁模式介紹
快照頁將會默認對用戶屏蔽網頁授權彈窗,用戶在快照頁中僅可進行滑動瀏覽操作,其他互動將被限制,并提示用戶 “該網頁需獲取個人資訊才可使用完整服務,當前僅可瀏覽部分內容”,用戶如需要使用完整網頁服務,可輕觸右下角 “使用完整服務” 按鈕觸發授權彈窗,用戶確認后進入原網頁,
- 開發者在快照頁內所獲取的頭像、昵稱、openId、unionId 均為虛擬賬號資料;
- 快照頁與正常頁面不共用快取,快照頁的快取會在用戶離開快照頁時被清理;
- 快照頁內也無法使用微信其它 JS-SDK 的能力,

十年開發經驗程式員,離職全心創業中,歷時三年開發出的產品《唯一客服系統》
一款基于Golang+Vue開發的在線客服系統,軟體著作權編號:2021SR1462600,一套可私有化部署的網站在線客服系統,編譯后的二進制檔案可直接使用無需搭開發環境,下載zip解壓即可,僅依賴MySQL資料庫,是一個開箱即用的全渠道在線客服系統,致力于幫助廣大開發者/公司快速部署整合私有化客服功能, 開源地址:唯一客服(開源學習版) 官網地址:唯一客服官網轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/534133.html
標籤:其他
上一篇:<一>函式模板
