Эх сурвалжийг харах

微信用户详情获取方式修改

xingzai 3 жил өмнө
parent
commit
67501c93b5

+ 12 - 1
controllers/wechat.go

@@ -52,7 +52,18 @@ func (this *WechatCommonController) WechatLoginByxzs() {
 		return
 	}
 	resp := new(models.UserDetailByUserLogin)
-	wxUserInfo, err := services.WxGetUserInfo(openId, item.AccessToken)
+	accessToken, err := services.GetWxAccessTokenByXzs()
+	if err != nil {
+		br.Msg = "获取用户信息失败"
+		br.ErrMsg = "获取access_token失败,err:" + err.Error()
+		return
+	}
+	if accessToken == "" {
+		br.Msg = "获取用户信息失败"
+		br.ErrMsg = "access_token 为空,"
+		return
+	}
+	wxUserInfo, err := services.WxGetUserInfo(openId, accessToken)
 	if err != nil {
 		br.Msg = "获取用户信息失败"
 		br.ErrMsg = "获取微信用户信息失败,Err:" + err.Error()

+ 4 - 4
services/wechat.go

@@ -98,13 +98,13 @@ type WxUserInfo struct {
 }
 
 func WxGetUserInfo(openId, accessToken string) (item *WxUserInfo, err error) {
-	requestUrl := `https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN`
+	requestUrl := `https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s`
 	requestUrl = fmt.Sprintf(requestUrl, accessToken, openId)
 	result, err := http.Get(requestUrl)
-	fmt.Println(requestUrl)
 	if err != nil {
 		return
 	}
+	//fmt.Println("result:", string(result))
 	utils.FileLog.Info("WxGetUserInfo:%s openId:%s,accessToken:%s ", string(result), openId, accessToken)
 	utils.FileLog.Info("WxGetUserInfo Result:%s ", string(result))
 	err = json.Unmarshal(result, &item)
@@ -130,8 +130,8 @@ type WxUserDetail struct {
 func GetWxAccessTokenByXzs() (accessTokenStr string, err error) {
 	//缓存校验
 	cacheKey := "xygxxzs_wxtoken"
-	accessTokenStr, err = utils.Rc.RedisString(cacheKey)
-	if accessTokenStr != "" && err == nil {
+	accessTokenStr, _ = utils.Rc.RedisString(cacheKey)
+	if accessTokenStr != "" {
 		return
 	} else {
 		WxAccessToken, errWx := WxGetToken()