婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Golang通過小程序獲取微信openid的方法示例

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

熱門標簽:福州鐵通自動外呼系統 長沙ai機器人電銷 地圖標注測試 賺地圖標注的錢犯法嗎 烏魯木齊人工電銷機器人系統 智能電銷機器人營銷 澳門防封電銷卡 濮陽自動外呼系統代理 廣東語音外呼系統供應商

為什么要獲取小程序的 openid

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

小程序獲取 openid 的流程

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

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

注意事項

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

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

請求地址為:

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPIDsecret=SECRETjs_code=JSCODEgrant_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 需要我們登錄微信公總平臺 里面找

 

小程序代碼演示

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

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

然后編寫事件函數:

//index.js
Page({
 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 的設置關閉

 

Go 語言后端代碼演示

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

package main

import (
  "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=%ssecret=%sjs_code=%sgrant_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內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 微信公眾平臺實現獲取用戶OpenID的方法
  • 微信小程序授權獲取用戶詳細信息openid的實例詳解
  • 微信公眾號支付(一)如何獲取用戶openId
  • 微信小程序 獲取微信OpenId詳解及實例代碼
  • .NET微信公眾號獲取OpenID和用戶信息
  • 微信小程序開發一鍵登錄 獲取session_key和openid實例
  • 微信小程序如何獲取openid及用戶信息
  • 微信小程序獲取用戶openid的實現
  • 微信小程序 獲取session_key和openid的實例
  • 微信小程序獲取用戶openId的實現方法
  • ASP.NET Core2靜默獲取微信公眾號的用戶OpenId實例代碼

標簽:調研邀請 太原 貴陽 阿克蘇 廣西 西雙版納 慶陽 德州

巨人網絡通訊聲明:本文標題《Golang通過小程序獲取微信openid的方法示例》,本文關鍵詞  Golang,通,過小,程序,獲取,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang通過小程序獲取微信openid的方法示例》相關的同類信息!
  • 本頁收集關于Golang通過小程序獲取微信openid的方法示例的相關信息資訊供網民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    主站蜘蛛池模板: 安仁县| 页游| 克什克腾旗| 广宁县| 调兵山市| 张家口市| 阳朔县| 祥云县| 台江县| 鹿泉市| 无为县| 左云县| 周口市| 海林市| 奎屯市| 砀山县| 黎川县| 深泽县| 阜宁县| 泸定县| 扎兰屯市| 西乌| 阳高县| 舒城县| 安西县| 两当县| 卢龙县| 台北县| 梧州市| 上虞市| 萝北县| 名山县| 望谟县| 沽源县| 洛隆县| 贵定县| 平昌县| 江津市| 衡阳市| 南澳县| 平昌县|