色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Golang通過小程序獲取微信openid的方法示例

瀏覽:77日期:2022-07-13 11:34:05

為什么要獲取小程序的 openid

在開發微信小程序的過程中,小程序可以通過微信官方提供的登錄能力方便地獲取微信提供的用戶身份標識,快速建立小程序內的用戶體系。那么這個用戶身份標識就是 openid。

小程序獲取 openid 的流程

那么小程序獲取 openid 的流程具體如下,這里我簡化了一下,因為我們只需要獲取到 openid 即可,具體可以參考 這里

Golang通過小程序獲取微信openid的方法示例

我們需要在小程序中調用 wx.login() 獲取 code 碼,然后將這個 code 碼發送給后端,后端帶著這個 code 碼和 appid,appsecret 向微信接口發起 http 請求獲取 openid。

注意事項

在開發的小程序中的 AppID 一定要和后端使用的 AppID 保持一致,否則會獲取 openid 失敗

Golang通過小程序獲取微信openid的方法示例

我們請求的微信 API 為 auth.code2Session ,

請求地址為:

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

所需的四個參數為:

屬性 類型 默認值 必填 說明 appid string 是 小程序 appId secret string 是 小程序 appSecret js_code string 是 登錄時獲取的 code grant_type string 是 授權類型,此處只需填寫 authorization_code

js_code 就是我們通過 wx.login 得到的 code,grant_type 為 authorization_code,只剩下 appid 和 secret 需要我們登錄微信公總平臺 里面找

Golang通過小程序獲取微信openid的方法示例

小程序代碼演示

為了方便操作,我們在 index 頁面編寫了一個 button,通過 button 觸發事件

<!--index.wxml--><view class='container'> <button bindtap='onGetOpenId'>點擊獲取openid</button></view>

然后編寫事件函數:

//index.jsPage({ onGetOpenId() { wx.login({ success: res => { if (res.code) { wx.request({ url: 'http://localhost:2020/openid', method: 'POST', data: { code: res.code }, success: res => { console.log(res); } }); } } }); }});

那么,在小程序中發送 http 請求強制要求地址必須為 https,由于我們在開發中,我們可以把強制 https 的設置關閉

Golang通過小程序獲取微信openid的方法示例

Go 語言后端代碼演示

小程序發過來的數據和去微信 API 獲取的數據都是放在 http body 里,所以我們要從 body 獲取

package mainimport ( 'encoding/json' 'fmt' 'net/http')func main() { http.HandleFunc('/openid', getOpenID) http.ListenAndServe(':2020', nil)}func getOpenID(writer http.ResponseWriter, request *http.Request) { if request.Method != http.MethodPost { return } var codeMap map[string]string err := json.NewDecoder(request.Body).Decode(&codeMap) if err != nil { return } defer request.Body.Close() code := codeMap['code'] openid, err := sendWxAuthAPI(code) if err != nil { return } fmt.Println('my openid', openid)}const ( code2sessionURL = 'https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code' appID = '你的AppID' appSecret = '你的AppSecret')func sendWxAuthAPI(code string) (string, error) { url := fmt.Sprintf(code2sessionURL, appID, appSecret, code) resp, err := http.DefaultClient.Get(url) if err != nil { return '', err } var wxMap map[string]string err = json.NewDecoder(resp.Body).Decode(&wxMap) if err != nil { return '', err } defer resp.Body.Close() return wxMap['openid'], nil}

運行結果

運行代碼,在小程序中點擊:

Golang通過小程序獲取微信openid的方法示例

結果:

Golang通過小程序獲取微信openid的方法示例

到此這篇關于Golang通過小程序獲取微信openid的方法示例的文章就介紹到這了,更多相關Golang獲取openid內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微信
相關文章:
主站蜘蛛池模板: 亚洲国产精品线观看不卡 | 在线成人天天鲁夜啪视频 | www.成年人| 天天夜夜久久 | 91视频一区 | 欧美成人高清性色生活 | 精品亚洲一区二区 | 国产三级国产精品国产国在线观看 | 成人午夜视频一区二区国语 | www.久久综合| 亚洲精品一区二区在线观看 | 欧美人交性视频在线香蕉 | 色拍拍噜噜噜aⅴ在线观看 色青青草原桃花久久综合 色婷婷91 | 大片国产片日本观看免费视频 | 插美女网站 | 国产精品毛片天天看片 | 欧美精品亚洲一区二区在线播放 | 久草在现视频 | 成年女人毛片免费观看中文w | 99久免费精品视频在线观看2 | 波多野结衣一区二区三区在线观看 | 国产激情一区二区三区 | 久久久久久久久久久观看 | 韩国美女一区二区 | 日韩精品一区二区三区在线观看 | 午夜精品一区二区三区在线观看 | 免费看黄色的网址 | 国产美女做爰免费视频网址 | 国产亚洲欧洲一区二区三区 | 日本一区二区免费在线观看 | 五月激激激综合网色播免费 | 久草播放 | 91精品久久久久亚洲国产 | 亚洲国产成人91精品 | 亚洲成人黄色片 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美在线 | 中文字幕 日韩在线 | 真实的国产乱xxxx | 呦女精品视频 | 精品老司机在线视频香蕉 | 香港全黄一级毛片在线播放 |