亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

為什么要獲取小程序的 openid

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

小程序獲取 openid 的流程

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

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

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

注意事項

在開發(fā)的小程序中的 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

所需的四個參數(shù)為:

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

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

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

小程序代碼演示

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

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

然后編寫事件函數(shù):

//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); } }); } } }); }});

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

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

Go 語言后端代碼演示

小程序發(fā)過來的數(shù)據(jù)和去微信 API 獲取的數(shù)據(jù)都是放在 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}

運行結(jié)果

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

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

結(jié)果:

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

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

標簽: 微信
相關(guān)文章:
主站蜘蛛池模板: 高清性色生活片97 | 亚洲狠狠ady亚洲精品大秀 | 麻豆视频免费观看 | 国产视频网| 一级毛片视频播放 | 91久久香蕉国产线看 | 国产精品国产三级国产爱网 | 一区二区播放 | 天堂素人搭讪系列嫩模在线观看 | 国产小视频在线观看www | 久草加勒比 | 国产欧美日韩视频在线观看 | 欧美黄色毛片 | 成人欧美一区二区三区在线 | 黄色网址哪里有 | 亚洲精品午夜一区二区 | 国产中文字幕在线视频 | 国产在线精品福利91香蕉 | 亚洲日本在线观看视频 | 善良的翁熄日本中文字幕1 上海麻豆文化传媒网站入口 | 岛国视频在线观看免费播放 | 天天鲁一鲁 | 国产精品黄在线观看免费软件 | 精品一区二区三区高清免费不卡 | 成人最新午夜免费视频 | 国产免费黄 | 一级h片 | 自拍偷拍欧美亚洲 | 国产精品视频免费的 | 美女三级在线 | 国产成人十八黄网片 | 亚洲不卡视频在线 | 黄色大片网站 | 女人被男人狂躁下面在线观看 | 亚洲人成在线观看男人自拍 | 无人区二区三区地址 | 桃花综合 | 午夜久久久精品 | 亚洲福利小视频 | 在线视频综合视频免费观看 | 做爰成人五级在线视频 |