public IHttpActionResult Delete(int id) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } if (!DataProvider.UserDao.ApiIsExists(id)) { return(NotFound()); } var userInfo = DataProvider.UserDao.ApiDelete(id); return(Ok(new OResponse(userInfo))); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
/// <summary> /// 短信验证码是否正确 /// </summary> /// <param name="phone">手机号码</param> /// <param name="code">短信验证码</param> /// <returns></returns> public static bool CheckAuthCode(String phone, String code) { return(true); var nonce = OSecurity.GetRandomString(16); var curTime = OSecurity.DateTimeToTimeStamp(DateTime.Now).ToString(); var sha1 = OSecurity.SHA1(appSecret + nonce + curTime); var errcode = ORequest.RequestPost("https://api.netease.im/sms/verifycode.action", "&phone=" + phone, "code", new WebHeaderCollection { { "AppKey", appKey }, { "Nonce", nonce }, { "CurTime", curTime }, { "CheckSum", sha1 } }); if (errcode == "200") { return(true); } return(false); }
public IHttpActionResult CreateLog(int id, [FromBody] UserLogInfo logInfo) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } if (!DataProvider.UserDao.ApiIsExists(id)) { return(NotFound()); } var userName = DataProvider.UserDao.GetUserName(id); var retval = DataProvider.UserLogDao.ApiInsert(userName, logInfo); return(Ok(new OResponse(retval))); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Create([FromBody] UserInfoCreateUpdate userInfo) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } string errorMessage; var retval = DataProvider.UserDao.ApiInsert(userInfo, PageUtils.GetIpAddress(), out errorMessage); if (retval == null) { return(BadRequest(errorMessage)); } return(Ok(new OResponse(retval))); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult ResetPassword([FromBody] ActionsResetPasswordBody body) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } string userName; string errorMessage; if (!DataProvider.UserDao.Validate(body.Account, body.Password, true, out userName, out errorMessage)) { return(BadRequest(errorMessage)); } if (!DataProvider.UserDao.ChangePassword(userName, body.NewPassword, out errorMessage)) { return(BadRequest(errorMessage)); } var userInfo = DataProvider.UserDao.GetUserInfoByUserName(userName); return(Ok(new OResponse(userInfo))); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public HttpResponseMessage UpdateUser(int id, [FromBody] UserInfo userInfo) { try { var oRequest = new ORequest(); if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers)) { return(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Unauthorized")); } if (userInfo == null) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Could not read user from body")); } if (!DataProvider.UserDao.ApiIsExists(id)) { return(Request.CreateResponse(HttpStatusCode.NoContent, "User is not found")); } DataProvider.UserDao.ApiUpdateUser(id, userInfo); var oResponse = new OResponse(userInfo); return(Request.CreateResponse(oResponse)); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public IHttpActionResult Update(int id, [FromBody] UserInfoCreateUpdate userInfo) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } if (userInfo == null) { return(BadRequest("Could not read user from body")); } if (!DataProvider.UserDao.ApiIsExists(id)) { return(NotFound()); } string errorMessage; var retval = DataProvider.UserDao.ApiUpdate(id, userInfo, out errorMessage); if (retval == null) { return(BadRequest(errorMessage)); } return(Ok(new OResponse(retval))); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult Register([FromBody] UserInfo userInfo) { try { var oRequest = new ORequest(); if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers)) { return(Unauthorized()); } string errorMessage; if (!DataProvider.UserDao.ApiInsert(userInfo, PageUtils.GetIpAddress(), out errorMessage)) { return(BadRequest(errorMessage)); } return(Ok(new OResponse(userInfo))); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetLogs(int id) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } var userName = DataProvider.UserDao.GetUserName(id); if (string.IsNullOrEmpty(userName)) { return(NotFound()); } var logs = DataProvider.UserLogDao.ApiGetLogs(userName, oRequest.Skip, oRequest.Top); return(Ok(new OResponse(oRequest, logs) { Count = DataProvider.UserDao.ApiGetCount() })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult UploadAvatar(int id) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } if (!DataProvider.UserDao.ApiIsExists(id)) { return(NotFound()); } var userInfo = DataProvider.UserDao.ApiGetUser(id); foreach (string name in HttpContext.Current.Request.Files) { var postFile = HttpContext.Current.Request.Files[name]; if (postFile == null) { return(BadRequest("Could not read image from body")); } var directoryPath = PathUtils.GetUserUploadDirectoryPath(userInfo.UserName); var fileName = PathUtils.GetUserUploadFileName(postFile.FileName); if (!EFileSystemTypeUtils.IsImage(PathUtils.GetExtension(fileName))) { return(BadRequest("image file extension is not correct")); } postFile.SaveAs(PathUtils.Combine(directoryPath, fileName)); userInfo.AvatarUrl = PageUtils.AddProtocolToUrl(PageUtils.GetUserFilesUrl(userInfo.UserName, fileName)); string errorMessage; var user = DataProvider.UserDao.ApiUpdate(id, new UserInfoCreateUpdate { AvatarUrl = userInfo.AvatarUrl }, out errorMessage); if (user == null) { return(BadRequest(errorMessage)); } } var oResponse = new OResponse(userInfo); return(Ok(oResponse)); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetChannelContents(int siteId, int channelId) { try { var request = new ORequest(AccessTokenManager.ScopeContents); if (request.IsApiAuthenticated && !request.IsApiAuthorized) { return(Unauthorized()); } if (!request.IsAdminLoggin) { return(Unauthorized()); } var siteInfo = SiteManager.GetSiteInfo(siteId); if (siteInfo == null) { return(BadRequest("无法确定内容对应的站点")); } var channelInfo = ChannelManager.GetChannelInfo(siteId, channelId); if (channelInfo == null) { return(BadRequest("无法确定内容对应的栏目")); } if (!request.AdminPermissions.HasChannelPermissions(siteId, channelId, ConfigManager.ChannelPermissions.ContentView)) { return(Unauthorized()); } var tableName = ChannelManager.GetTableName(siteInfo, channelInfo); int count; var contentIdList = DataProvider.ContentDao.ApiGetContentIdListByChannelId(tableName, siteId, channelId, request.Top, request.Skip, request.Like, request.OrderBy, request.QueryString, out count); var value = new List <Dictionary <string, object> >(); foreach (var contentId in contentIdList) { var contentInfo = DataProvider.ContentDao.GetContentInfo(tableName, contentId); if (contentInfo != null) { value.Add(contentInfo.ToDictionary()); } } return(Ok(new OResponse(request, value) { Count = count })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
/// <summary> /// 只能由RefreshAccessToken()调用 /// </summary> /// <returns></returns> private static string RefreshJsapiTicket() { string url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket"; var jsonObject = ORequest.RequestGet(url, new System.Collections.Generic.Dictionary <string, string> { { "access_token", GetAccessToken() }, { "type", "jsapi" } }); // 获取ticket jsapi_ticket = jsonObject["ticket"].ToString(); return(jsapi_ticket); }
/// <summary> /// 添加客服 /// </summary> /// <param name="account">客服账号名</param> /// <param name="nick">客服昵称</param> /// <returns></returns> public static bool AddKF(string account, string nick, string pass) { string postData = "{\"kf_account\":\"" + account + "@" + gh + "\",\"nickname\":\"" + nick + "\",\"password\":\"" + pass + "\"}"; var errcode = ORequest.RequestPost("https://api.weixin.qq.com/customservice/kfaccount/add?access_token=" + GetAccessToken(), postData, "errcode"); if (errcode == "0") { return(true); } return(false); }
/// <summary> /// 发送客服消息 /// </summary> /// <param name="OPENID"></param> /// <param name="content"></param> /// <returns></returns> public static bool SendMessage(string OPENID, string content) { var jsonStr = "{\"touser\":\"" + OPENID + "\",\"msgtype\":\"text\",\"text\":{\"content\":\"" + content + "\"}}"; var errcode = ORequest.RequestPost("https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + GetAccessToken(), jsonStr, "errcode"); if (errcode == "0") { return(true); } return(false); }
/// <summary> /// 刷新access_token /// </summary> /// <returns></returns> public static string RefreshAccessToken() { string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential"; var jsonObject = ORequest.RequestGet(url, new System.Collections.Generic.Dictionary <string, string> { { "appid", appID }, { "secret", appsecret } }); // 获取access_token,计算过期时间 access_token = jsonObject["access_token"].ToString(); timeStamp = OSecurity.DateTimeToTimeStamp(DateTime.Now) + Convert.ToInt64(jsonObject["expires_in"].ToString()); RefreshJsapiTicket(); return(access_token); }
public IHttpActionResult GetLogs(int id) { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } var userName = DataProvider.UserDao.GetUserName(id); if (string.IsNullOrEmpty(userName)) { return(NotFound()); } var logs = DataProvider.UserLogDao.ApiGetLogs(userName, oRequest.Skip, oRequest.Top); var oResponse = new OResponse(logs); var count = DataProvider.UserDao.ApiGetCount(); if (oRequest.Count) { oResponse.Count = count; } if (oRequest.Top + oRequest.Skip < count) { oResponse.Next = PageUtils.AddQueryString( PageUtils.RemoveQueryString(oRequest.RawUrl, new List <string> { "top", "skip" }), new NameValueCollection { { "top", oRequest.Top.ToString() }, { "skip", (oRequest.Top + oRequest.Skip).ToString() } }); } return(Ok(oResponse)); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
/// <summary> /// 创建微信公众号的菜单 /// </summary> /// <returns></returns> public static bool CreateMenu() { var menuJson = "{\"button\":[{\"type\":\"view\",\"name\":\"我的\"," + "\"url\":\"http://debug.ocrosoft.com/UserLogin.aspx\"}," + "{\"type\":\"view\",\"name\":\"当前活动\",\"url\":\"http://debug.ocrosoft.com/Activity.aspx\"}]}"; var errcode = ORequest.RequestPost( "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + GetAccessToken(), menuJson, "errcode"); if (errcode == "0") { return(true); } return(false); }
public IHttpActionResult UploadAvatar(HttpPostedFileBase uploadedFile) { try { var oRequest = new ORequest(); if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers)) { return(Unauthorized()); } var users = DataProvider.UserDao.ApiGetUsers(oRequest.Skip, oRequest.Top); var oResponse = new OResponse(users); HttpResponseMessage result = null; var httpRequest = HttpContext.Current.Request; if (httpRequest.Files.Count > 0) { var docfiles = new List <string>(); foreach (string file in httpRequest.Files) { var postedFile = httpRequest.Files[file]; var filePath = HttpContext.Current.Server.MapPath("~/" + postedFile.FileName); postedFile.SaveAs(filePath); docfiles.Add(filePath); } result = Request.CreateResponse(HttpStatusCode.Created, docfiles); } else { result = Request.CreateResponse(HttpStatusCode.BadRequest); } return(ResponseMessage(result)); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult List() { try { var oRequest = new ORequest(AccessTokenManager.ScopeAdministrators); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } var administrators = DataProvider.AdministratorDao.ApiGetAdministrators(oRequest.Skip, oRequest.Top); var oResponse = new OResponse(administrators); var count = DataProvider.AdministratorDao.ApiGetCount(); if (oRequest.Count) { oResponse.Count = count; } if (oRequest.Top + oRequest.Skip < count) { oResponse.Next = PageUtils.AddQueryString( PageUtils.RemoveQueryString(oRequest.RawUrl, new List <string> { "top", "skip" }), new NameValueCollection { { "top", oRequest.Top.ToString() }, { "skip", (oRequest.Top + oRequest.Skip).ToString() } }); } return(Ok(oResponse)); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult GetUser(int id) { try { var oRequest = new ORequest(); if (!oRequest.IsAuthorized(AccessTokenManager.ScopeUsers)) { return(Unauthorized()); } var user = DataProvider.UserDao.ApiGetUser(id); var oResponse = new OResponse(user); return(Ok(oResponse)); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }
public IHttpActionResult List() { try { var oRequest = new ORequest(AccessTokenManager.ScopeUsers); if (!oRequest.IsApiAuthorized) { return(Unauthorized()); } var users = DataProvider.UserDao.ApiGetUsers(oRequest.Skip, oRequest.Top); var count = DataProvider.UserDao.ApiGetCount(); return(Ok(new OResponse(oRequest, users) { Count = count })); } catch (Exception ex) { LogUtils.AddErrorLog(ex); return(InternalServerError(ex)); } }