|
|
@@ -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")
|