package app import ( "net/http" "github.com/gin-gonic/gin" "github.com/prometheus/common/log" "github.com/silenceper/wechat" "github.com/silenceper/wechat/cache" "github.com/silenceper/wechat/miniprogram" ) var wxa *miniprogram.MiniProgram func init() { mem := cache.NewMemory() appConfig := &wechat.Config{ AppID: "wx49cced01eec31847", AppSecret: "0090134e4a137554a271133d7f73e633", Cache: mem, } wx := wechat.NewWechat(appConfig) wxa = wx.GetMiniProgram() } //Code2SessionHandle 登录凭证校验,通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。 //GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code func Code2SessionHandler(c *gin.Context) { jscode := c.Param("jscode") result, err := wxa.Code2Session(jscode) if err != nil { log.Warn(err) c.AbortWithStatusJSON(http.StatusBadRequest, err.Error()) return } c.JSON(http.StatusOK, result) }