abiao преди 4 години
родител
ревизия
e8211451d9
променени са 1 файла, в които са добавени 28 реда и са изтрити 11 реда
  1. 28 11
      go/gopath/src/fohow.com/apps/controllers/permit_controller/permit_controller.go

+ 28 - 11
go/gopath/src/fohow.com/apps/controllers/permit_controller/permit_controller.go

@@ -96,19 +96,21 @@ func (self *PermitController) XcxAuthorize() {
 	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)
-	}
-	beego.BeeLogger.Warn("result:%v", result)
 	encryptedData := &EncryptedData{}
+	encryptedData.OpenId, encryptedData.UnionId = GetXcxLoginInfo(info.Wxlogincode)
+	/*
+		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)
+		}
+		beego.BeeLogger.Warn("result:%v", result)
+		encryptedData := &EncryptedData{}
 
-	json.Unmarshal([]byte(result.(string)), encryptedData)
+		json.Unmarshal([]byte(result.(string)), encryptedData)*/
 
 	beego.BeeLogger.Warn("encryptedData:%v", encryptedData)
 
@@ -307,6 +309,21 @@ func (self *PermitController) XcxLogin() {
 	self.ServeJSON()
 }
 
+//小程序登录
+func GetXcxLoginInfo(code string) (openId, unionId string) {
+	appId := beego.AppConfig.String("WxFohowXcxAppId")
+	appSecret := beego.AppConfig.String("WxFohowXcxAppSecret")
+	key := wx_mp.GetXcxSessionKey(appId, appSecret, code)
+	if key == nil {
+		return "", ""
+	}
+	beego.BeeLogger.Warn("XcxLogin key=%s", key)
+	beego.BeeLogger.Warn("XcxLogin key=%s, key.Openid=%s", key, key.Openid)
+	beego.BeeLogger.Warn("XcxLogin key=%s, key.Unionid=%s", key, key.Unionid)
+
+	return key.Openid, key.Unionid
+}
+
 //生成订单ID
 func createUnionId(prefix string) string {
 	n := time.Now().Format("20060102150405")