Просмотр исходного кода

Merge branch 'master' of http://git.hiwavo.com/Fohow/fohow_api

abiao лет назад: 4
Родитель
Сommit
c360e9f83b

+ 15 - 40
go/gopath/src/fohow.com/apps/controllers/permit_controller/permit_controller.go

@@ -31,6 +31,7 @@ import (
 	// "fohow.com/libs/tool"
 	"fohow.com/libs/wx_mp"
 	// "fohow.com/libs/wx_open"
+	"fohow.com/libs/tool"
 )
 
 var (
@@ -196,7 +197,7 @@ func (self *PermitController) XcxAuthorize() {
 	self.ServeJSON()
 }
 
-//小程序授权
+//小程序再次保存用户头像
 func (self *PermitController) SaveWxuserInfo() {
 	params := self.GetString("userinfo")
 	type UserInfo struct {
@@ -208,59 +209,33 @@ func (self *PermitController) SaveWxuserInfo() {
 		Country   string `json:"country"`   // 用户所在国家
 		AvatarUrl string `json:"avatarUrl"` // 头像
 	}
-	type Info struct {
-		ErrMsg        string    `json:"errMsg"`
-		RawData       string    `json:"rawData"`
-		Signature     string    `json:"signature"`
-		Iv            string    `json:"iv"`
-		EncryptedData string    `json:"encryptedData"`
-		UserInfo      *UserInfo `json:"userInfo"`
+	if len(params) <= 0 {
+		self.ReturnError(403, apps.ParamsError, "", nil)
 	}
-	info := new(Info)
+
+	info := new(UserInfo)
 	err := json.Unmarshal([]byte(params), &info)
 
 	if err != nil {
-		beego.BeeLogger.Error("XcxAuthorize err: %s, info:%s", err, info)
+		beego.BeeLogger.Info("SaveWxuserInfo info:%s", info)
 		self.ReturnError(403, apps.ParamsError, "", nil)
 	}
 
-	sessionKey, _ := self.GetSession(apps.XcxSessionKey).(string)
-	// beego.BeeLogger.Warn("sessionKey:%s", sessionKey)
-	type EncryptedData struct {
-		UnionId string `json:"unionId"`
-		OpenId  string `json:"openId"`
-	}
-
-	if sessionKey == "" {
-		self.ReturnError(403, apps.UserNeedLogin, "", nil)
-	}
-
-	pc := helpers.WxBizDataCrypt{AppID: beego.AppConfig.String("WxFohowXcxAppId"), SessionKey: sessionKey}
-	// beego.BeeLogger.Warn("EncryptedData:%s", info.EncryptedData)
-	// beego.BeeLogger.Warn("Iv:%s", info.Iv)
-	result, err := pc.Decrypt(info.EncryptedData, info.Iv, true) //第三个参数解释: 需要返回 JSON 数据类型时 使用 true, 需要返回 map 数据类型时 使用 false
-	if err != nil {
-		beego.BeeLogger.Error("xcx XcxAuthorize descrypt failed, err:%s", err)
-		self.ReturnError(403, apps.XcxAuthorizeError, "", nil)
-	}
-	encryptedData := &EncryptedData{}
-	json.Unmarshal([]byte(result.(string)), encryptedData)
-	if encryptedData.UnionId == "" || encryptedData.OpenId == "" {
-		self.ReturnError(403, apps.UserAuthorizeFailed, "", nil)
-	}
+	wxUId := self.GetCurrentWxUserId()
+	wxUser := user_model.GetWxUserById(wxUId, true)
 
-	wxUser := user_model.GetWxUserByUnionid(encryptedData.UnionId, false)
 	if wxUser == nil {
 		self.ReturnError(403, apps.WxUserInfoError, "", nil)
 	}
-
-	beego.BeeLogger.Warn("SaveWxuserInfo ")
-	wxUser.UploadHead(info.UserInfo.AvatarUrl)
+	wxUser.UploadHead(info.AvatarUrl)
 	type Ret struct {
-		Result bool `json:"result"`
+		Result bool   `json:"result"`
+		Head   string `json:"head"`
 	}
+	headImag := tool.GetCdnFullImgUrl(wxUser.Head)
+	//beego.BeeLogger.Info("save_wx_user_info err: %v ", wxUser)
 
-	self.Data["json"] = &Ret{Result: true}
+	self.Data["json"] = &Ret{Result: true, Head: headImag}
 	self.ServeJSON()
 }