/// <summary> /// 根据POST参数对象获取 /// </summary> /// <param name="postData"></param> /// <param name="privateKey"></param> /// <param name="privateValue"></param> /// <returns></returns> public string GetSign(Dictionary <string, object> postData, string privateKey = "", string privateValue = "") { if (postData == null) { return(String.Empty); } var sortDic = new SortedDictionary <string, object>(); foreach (var keyValuePair in postData) { sortDic.Add(keyValuePair.Key, keyValuePair.Value); } if (!privateKey.IsNullOrEmpty() && !privateValue.IsNullOrEmpty()) { sortDic.Add(privateKey, privateValue); } var str = string.Join("&", sortDic.Select(u => u.Key + "=" + u.Value)); var signature = EncryptionFactory.Md5Encrypt(str); return(signature); }
/// <summary> /// 用户登录 /// </summary> /// <param name="loginRequest"></param> /// <returns></returns> public BaseResponse <LoginResponse> Login(LoginRequest loginRequest) { //通过微信id登录 if (loginRequest.LoginType == LoginTypeEnum.WechatOpenID) { var result = DbSession.WebUserRepository.Get(u => u.user_wid == loginRequest.WechatOpenID); //准备一个登录凭证 WebUserTokenRequest tokenAdd = new WebUserTokenRequest(); tokenAdd.guids = Guid.NewGuid().ToString(); tokenAdd.login_date = DateTime.Now; tokenAdd.expirydate = tokenAdd.login_date.AddDays(10); if (result != null) { //找到登录凭证需要创建登录凭证 var tokeninfo = _webUserTokenSvervice.GetWebUserToken(result.user_id); //未找到登录凭证 if (tokeninfo == null) { tokenAdd.web_userid = result.user_id; tokenAdd.web_usertoken = EncryptionFactory.Md5Encrypt(result.user_id); var tokenInfo = _webUserTokenSvervice.CreateToken(tokenAdd); return(Response(new LoginResponse() { Token = tokenInfo.web_usertoken }, true)); } else { tokenAdd.web_userid = result.user_id; tokenAdd.web_usertoken = EncryptionFactory.Md5Encrypt(result.user_id); DbSession.Transaction(dt => { DbSession.WebUserTokenRepository.Delete(u => u.web_userid == result.user_id, false, transaction: dt); DbSession.WebUserTokenRepository.Add(tokenAdd.MapTo <WebUserToken>(), transaction: dt); }); return(Response(new LoginResponse() { Token = tokenAdd.web_usertoken }, true)); } } else { WebUserRequest webUserAdd = new WebUserRequest(); webUserAdd.user_id = Guid.NewGuid().ToString(); webUserAdd.user_wid = loginRequest.WechatOpenID; webUserAdd.user_regdate = DateTime.Now; webUserAdd.user_state = 0; //创建一个登录账号 var webUserAddResult = DbSession.WebUserRepository.Add(webUserAdd.MapTo <WebUser>()); if (!webUserAddResult) { AppException(AppErrorEnum.LoginError); } //创建登录凭证 tokenAdd.web_userid = webUserAdd.user_id; tokenAdd.web_usertoken = EncryptionFactory.Md5Encrypt(webUserAdd.user_id); var tokenInfo = _webUserTokenSvervice.CreateToken(tokenAdd); return(Response(new LoginResponse() { Token = tokenAdd.web_usertoken }, true)); } } //通过账号密码登录 else if (loginRequest.LoginType == LoginTypeEnum.Account) { } return(null); }