瀏覽代碼

新增获取unionid

rdluck 4 年之前
父節點
當前提交
599cc8ce0a
共有 2 個文件被更改,包括 38 次插入9 次删除
  1. 1 1
      models/wx_user.go
  2. 37 8
      services/wechat.go

+ 1 - 1
models/wx_user.go

@@ -451,7 +451,7 @@ type CheckLoginResp struct {
 }
 
 func GetOpenIdAll() (items []*WxUserItem, err error) {
-	sql := ` SELECT * FROM wx_user WHERE open_id='oNUl651tL_VgkyUu71crPkjOMzyM' `
+	sql := ` SELECT * FROM wx_user WHERE open_id<>'' AND union_id IS NULL `
 	o := orm.NewOrm()
 	_, err = o.Raw(sql).QueryRows(&items)
 	return

+ 37 - 8
services/wechat.go

@@ -133,7 +133,7 @@ func WxGetUserInfo(openId, accessToken string) (item *WxUserInfo, err error) {
 	if err != nil {
 		return
 	}
-	fmt.Println("result:",string(result))
+	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)
@@ -168,11 +168,40 @@ func GetWxSignature(ticket, url, noncestr string) (string, string, int64) {
 	return signature, noncestr, timestamp
 }
 
+type WxUserDetail struct {
+	Unionid    string
+	Headimgurl string
+	Nickname   string
+}
+
 func FixUnionId() {
-	accessToken:=`40_mCr4xm6LRrSN6yhvzUGRobVXcd1RI1nl5X1dzDo-f9MUn0uBpwkEYFUvLlfdrz8jkx9GPE-xat62M2AHbr0WNL0kMSj47MUVP6Mf8lLbIalH-KBkbtO_Rl04XR6nnVhbAU528i4F1qFN4VgQBOHeABAIVO`
-	openId:=`oW3Gtsz81Q8X278fyEVKMHNw2WR8`
-	userInfoUrl:=`https://api.weixin.qq.com/cgi-bin/user/info?access_token=`+accessToken+`&openid=`+openId+`&lang=zh_CN`
-	result,err:=http.Get(userInfoUrl)
-	fmt.Println("err:",err)
-	utils.FileLog.Info("%s",string(result))
-}
+	accessToken := `41_fMVI8r0fzoDjGOsKjMBhVN9b0j34TWTFNHIX1cQ4IOJ8SnJ2Cjz6MhvHvtH9gU_ztKo-rRQopCgSjNSZB5z25KgB5o61822LDH1sR5ow_Rfoa_Ro6KwcdP2Gp_naNM0AwMGZaF5OMifMny-FFEXfAJAXWP`
+
+	users, err := models.GetOpenIdAll()
+	if err != nil {
+		fmt.Println("GetOpenIdAll Err:" + err.Error())
+		return
+	}
+	for _, v := range users {
+		openId := v.OpenId
+		fmt.Println("openId:",openId,v.UserId)
+		userInfoUrl := `https://api.weixin.qq.com/cgi-bin/user/info?access_token=` + accessToken + `&openid=` + openId + `&lang=zh_CN`
+		result, err := http.Get(userInfoUrl)
+		fmt.Println("err:", err)
+		utils.FileLog.Info("%s", string(result))
+		item := new(WxUserDetail)
+		err = json.Unmarshal(result, &item)
+		if err != nil {
+			fmt.Println("json.Unmarshal Err:" + err.Error())
+			return
+		}
+		if item.Unionid != "" {
+			err = models.ModifyWxUserUnionId(item.Unionid, v.UserId)
+			if err!=nil {
+				fmt.Println("ModifyWxUserUnionId Err:"+err.Error())
+				return
+			}
+			//return
+		}
+	}
+}