38 lines
980 B
Go
38 lines
980 B
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"github.com/silenceper/wechat/v2"
|
||
|
offConfig "github.com/silenceper/wechat/v2/officialaccount/config"
|
||
|
"github.com/silenceper/wechat/v2/officialaccount/oauth"
|
||
|
"kefu/lib"
|
||
|
)
|
||
|
|
||
|
// 微信公众号网页授权
|
||
|
func GetWechatUserInfo(weixinCode, entId string) (oauth.UserInfo, error) {
|
||
|
var userinfo oauth.UserInfo
|
||
|
wechatConfig, err := lib.NewWechatLib(entId)
|
||
|
if wechatConfig.AppId == "" {
|
||
|
return userinfo, err
|
||
|
}
|
||
|
|
||
|
cfg := &offConfig.Config{
|
||
|
AppID: wechatConfig.AppId,
|
||
|
AppSecret: wechatConfig.AppSecret,
|
||
|
Token: wechatConfig.Token,
|
||
|
//EncodingAESKey: "xxxx",
|
||
|
Cache: memory,
|
||
|
}
|
||
|
wc := wechat.NewWechat()
|
||
|
officialAccount := wc.GetOfficialAccount(cfg)
|
||
|
oauth := officialAccount.GetOauth()
|
||
|
accessToken, err := oauth.GetUserAccessToken(weixinCode)
|
||
|
if err != nil {
|
||
|
return userinfo, err
|
||
|
}
|
||
|
userinfo, err = oauth.GetUserInfo(accessToken.AccessToken, accessToken.OpenID, "")
|
||
|
if err != nil {
|
||
|
return userinfo, err
|
||
|
}
|
||
|
return userinfo, nil
|
||
|
}
|