package wechat import ( "github.com/silenceper/wechat/v2" "github.com/silenceper/wechat/v2/cache" "github.com/silenceper/wechat/v2/officialaccount" h5config "github.com/silenceper/wechat/v2/officialaccount/config" "github.com/silenceper/wechat/v2/officialaccount/js" "github.com/silenceper/wechat/v2/officialaccount/oauth" ) //基于此文档开发 //https://github.com/silenceper/wechat/blob/v2/doc/api/officialaccount.md type h5Program struct { Memory *cache.Memory Config *h5config.Config *officialaccount.OfficialAccount weixin *wechat.Wechat //微信登录实例 } var H5Program = h5Program{} // Init 初始化 func (that *h5Program) Init(appid string, appsecret string) { that.weixin = wechat.NewWechat() that.Memory = cache.NewMemory() that.Config = &h5config.Config{ AppID: appid, AppSecret: appsecret, //Token: "xxx", //EncodingAESKey: "xxxx", Cache: that.Memory, } that.OfficialAccount = that.weixin.GetOfficialAccount(that.Config) } // GetUserInfo 获取用户信息 func (that *h5Program) GetUserInfo(code string) (appid string, resToken oauth.ResAccessToken, userInfo oauth.UserInfo, err error) { auth := that.GetOauth() //weixin.GetOpenPlatform() resToken, err = auth.GetUserAccessToken(code) if err != nil { return auth.AppID, resToken, userInfo, err } //getUserInfo userInfo, err = auth.GetUserInfo(resToken.AccessToken, resToken.OpenID, "") if err != nil { return auth.AppID, resToken, userInfo, err } return auth.AppID, resToken, userInfo, err } // GetSignUrl js url签名 func (that *h5Program) GetSignUrl(signUrl string) (*js.Config, error) { js := that.OfficialAccount.GetJs() cfg1, e := js.GetConfig(signUrl) if e != nil { return nil, e } return cfg1, nil }