|
@@ -1,9 +1,12 @@
|
|
|
package wechat
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"eta/eta_mini_api/models"
|
|
|
"eta/eta_mini_api/utils"
|
|
|
"fmt"
|
|
|
+ "io"
|
|
|
+ "net/http"
|
|
|
"time"
|
|
|
|
|
|
"github.com/silenceper/wechat/v2"
|
|
@@ -83,6 +86,14 @@ func GetUserInfo(openid string) (userInfo *user.Info, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// GetSession 获取用户详情
|
|
|
+// func GetSession(code string) (userInfo auth.ResCode2Session, err error) {
|
|
|
+// wechatClient := GetWxChat()
|
|
|
+// userClient := wechatClient.GetUser()
|
|
|
+// userInfo, err = authClient.Code2Session(code)
|
|
|
+// return
|
|
|
+// }
|
|
|
+
|
|
|
// GetJsConfig 获取公众号jsConfig
|
|
|
func GetJsConfig(signUrl string) (jsConf *js.Config, err error) {
|
|
|
wechatClient := GetWxChat()
|
|
@@ -90,3 +101,38 @@ func GetJsConfig(signUrl string) (jsConf *js.Config, err error) {
|
|
|
jsConf, err = j.GetConfig(signUrl)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+type WxUserToken struct {
|
|
|
+ OpenId string
|
|
|
+ UnionId string
|
|
|
+ AccessToken string
|
|
|
+ ExpiresIn string
|
|
|
+ RefreshToken string
|
|
|
+ Scope string
|
|
|
+}
|
|
|
+
|
|
|
+func GetOpenId(code string) (info *WxUserToken, err error) {
|
|
|
+
|
|
|
+ httpUrl := `https://api.weixin.qq.com/sns/oauth2/access_token?
|
|
|
+ appid=%s&secret=%s&code=%s&grant_type=authorization_code`
|
|
|
+ httpUrl = fmt.Sprintf(httpUrl, utils.WX_APPID, utils.WX_APP_SECRET, code)
|
|
|
+
|
|
|
+ client := http.Client{}
|
|
|
+ wxReq, err := http.NewRequest("GET", httpUrl, nil)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response, err := client.Do(wxReq)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer response.Body.Close()
|
|
|
+ body, err := io.ReadAll(response.Body)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if err = json.Unmarshal(body, &info); err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|