package imser import ( "encoding/hex" "net/url" "strconv" "91porn-server/app/appg" "91porn-server/common" "91porn-server/common/constant" "91porn-server/common/crypt" "91porn-server/common/log" "91porn-server/middleware/ua" "91porn-server/models/v/usermod" ) // GetSign 获取IM sign func GetSign(uid uint64, ua ua.UA) string { u, err := usermod.FindUserByUID(uid) if err != nil || u == nil { return "" } // IsVip := false // if userModel.VipExpireDate.After(time.Now()) { // IsVip = true // } var voiceChatNotify string if common.IsSpecifyVerBaseOnUa(ua, constant.Ver3_1_0) { voiceChatNotify = "支持语音聊天" } else { voiceChatNotify = "不支持语音聊天" } ul := url.Values{} ul.Add("id", strconv.FormatUint(uid, 10)) ul.Add("appId", appg.Conf.Kefu.AppID) ul.Add("platName", appg.Conf.Kefu.PlatName) ul.Add("userName", u.Name+"**"+ua.SysType+"**"+ua.DevType+"**"+ua.Ver+"**"+voiceChatNotify) ul.Add("isVip", "false") ul.Add("avatar", common.BindUrl(appg.Conf.URL.OriginUrl, u.Portrait)) dcodeurl, _ := url.QueryUnescape(ul.Encode()) sign, err := crypt.AesEncrypt(dcodeurl, appg.Conf.Kefu.AppSecret) if err != nil { log.Warn("create im sign wrong", log.Any("warn", err)) return "" } return "/kefu/?sign=" + hex.EncodeToString(sign) + "&appId=" + appg.Conf.Kefu.AppID + "&theme=" + appg.Conf.Kefu.Theme } // GetWhiteSign 获取White IM sign func GetWhiteSign() string { return "/kefu/?" + "appId=" + appg.Conf.Kefu.AppID + "&anonymous=true" } // GetSignNew 新获取IM sign func GetSignNew(uid uint64, ua ua.UA) string { u, err := usermod.FindUserByUID(uid) if err != nil || u == nil { return "" } // IsVip := false // if userModel.VipExpireDate.After(time.Now()) { // IsVip = true // } var voiceChatNotify string if common.IsSpecifyVerBaseOnUa(ua, constant.Ver3_1_0) { voiceChatNotify = "支持语音聊天" } else { voiceChatNotify = "不支持语音聊天" } ul := url.Values{} ul.Add("id", strconv.FormatUint(uid, 10)) ul.Add("appId", appg.Conf.Kefu.AppID) ul.Add("platName", appg.Conf.Kefu.PlatName) ul.Add("userName", u.Name+"**"+ua.SysType+"**"+ua.DevType+"**"+ua.Ver+"**"+voiceChatNotify) ul.Add("isVip", "false") ul.Add("avatar", common.BindUrl(appg.Conf.URL.OriginUrl, u.Portrait)) dcodeurl, _ := url.QueryUnescape(ul.Encode()) sign, err := crypt.AesEncrypt(dcodeurl, appg.Conf.Kefu.AppSecret) if err != nil { log.Warn("create im sign wrong", log.Any("warn", err)) return "" } return "/kefu/customer/im?sign=" + hex.EncodeToString(sign) + "&appId=" + appg.Conf.Kefu.AppID + "&theme=" + appg.Conf.Kefu.Theme } // GetWhiteSignNew 新获取White IM sign func GetWhiteSignNew() string { return "/kefu/customer/im?appId=" + appg.Conf.Kefu.AppID + "&anonymous=true" }