/// <summary> /// 获取令牌 /// </summary> /// <returns></returns> public OJsTicket GetJsTicket() { //检查缓存及过期时间 TimeSpan ts = _timeTag - DateTime.Now; if (ts.TotalSeconds > 0) { return(_jsticket); } //获取访问令牌 try { string url = _api + "?access_token=" + _accessToken + "&type=jsapi"; //if (_accessToken.ErrorCode == 0 && !string.IsNullOrEmpty(_accessToken.AccessToken)) { // //刷新令牌 //} //重新获取令牌 using (WebClient wc = new WebClient()) { string result = wc.DownloadString(url); var token = JsonKit.Deserialize <access_token_obj>(result); if (token != null) { if (!string.IsNullOrEmpty(token.ticket)) { //转换 OJsTicket at = new OJsTicket(); at.Ticket = token.ticket; at.ExpiresInterval = token.expires_in; _jsticket = at; //时间戳 _timeTag = DateTime.Now.AddSeconds(token.expires_in - 120); return(_jsticket); } else { _jsticket = new OJsTicket() { ErrorCode = token.errcode, ErrorMessage = token.errmsg }; return(_jsticket); } } } } catch (Exception ex) { _jsticket = new OJsTicket() { ErrorCode = -1, ErrorMessage = ex.Message }; return(_jsticket); } return(new OJsTicket() { ErrorCode = -1, ErrorMessage = "接口没有获取到正确结果!" }); }
/// <summary> /// 发送短信 /// </summary> /// <param name="verifyCode"></param> /// <returns></returns> public OVerifyCode Send(string phone, string verifyCode) { try { using (WebClient wc = new WebClient()) { wc.Credentials = CredentialCache.DefaultCredentials; string tk = new OTokenAPI(_appId, _accessToken).GetToken().Token; SortedDictionary <string, string> args = new SortedDictionary <string, string>(); args.Add("app_id", _appId); args.Add("access_token", _accessToken); args.Add("token", tk); args.Add("phone", phone); args.Add("randcode", verifyCode); args.Add("timestamp", OConfig189.GetTimeStamp()); args.Add("exp_time", "3"); //可选 string sign = Utility189.DoSignature(args, OConfig189.AppSecret); args.Add("sign", sign); Logger.Debug("189 OVerifyCodeCustomAPI.Send:" + Utility189.GetUrlParameters(args)); string result = Utility189.PostWebRequest(_api, Utility189.GetUrlParameters(args), Encoding.UTF8); Logger.Debug("189 OVerifyCodeCustomAPI.Result:" + result); var verifyCodeObj = JsonKit.Deserialize <verify_code_obj>(result); if (verifyCodeObj != null) { if (!string.IsNullOrEmpty(verifyCodeObj.identifier)) { //转换 OVerifyCode verify = new OVerifyCode(); verify.Identifier = verifyCodeObj.identifier; verify.CreateAt = verifyCodeObj.create_at; return(verify); } else { return(new OVerifyCode() { ResultCode = verifyCodeObj.res_code, ResultMessage = verifyCodeObj.res_message }); } } } } catch (Exception ex) { return(new OVerifyCode() { ResultCode = -1, ResultMessage = ex.Message }); } return(new OVerifyCode() { ResultCode = -1, ResultMessage = "接口没有获取到正确结果!" }); }
public OWebAccessToken GetWebAccessToken() { //获取网页访问令牌及OpenID string url = _api + "?appid=" + _appId; url += "&secret=" + _appSecret; url += "&code=" + _code; url += "&grant_type=authorization_code"; //if (_accessToken.ErrorCode == 0 && !string.IsNullOrEmpty(_accessToken.AccessToken)) { // //刷新令牌 //} Logger.Debug("OWebAccessTokenAPI URL:" + url); //重新获取令牌 try { using (WebClient wc = new WebClient()) { string result = wc.DownloadString(url); Logger.Debug("OWebAccessTokenAPI.GetWebAccessToken:" + result); var token = JsonKit.Deserialize <access_token_obj>(result); if (token != null) { if (!string.IsNullOrEmpty(token.access_token)) { OWebAccessToken at = new OWebAccessToken(); at.ErrorCode = token.errcode; at.ErrorMessage = token.errmsg; at.AccessToken = token.access_token; at.ExpiresInterval = token.expires_in; at.RefreshToken = token.refresh_token; at.OpenId = token.openid; at.Scope = token.scope; return(at); } else { return(new OWebAccessToken() { ErrorCode = token.errcode, ErrorMessage = token.errmsg }); } } } } catch (Exception ex) { Logger.Error("OWebAccessTokenAPI Error", ex); return(new OWebAccessToken() { ErrorCode = -1, ErrorMessage = ex.Message }); } return(new OWebAccessToken() { ErrorCode = -1, ErrorMessage = "接口没有获取到正确结果!" }); }
public OToken GetToken() { try { using (WebClient wc = new WebClient()) { wc.Credentials = CredentialCache.DefaultCredentials; SortedDictionary <string, string> args = new SortedDictionary <string, string>(); args.Add("app_id", _appId); args.Add("access_token", _accessToken); args.Add("timestamp", OConfig189.GetTimeStamp()); string sign = Utility189.DoSignature(args, OConfig189.AppSecret); args.Add("sign", sign); string result = wc.DownloadString(_api + "?" + Utility189.GetUrlParameters(args)); Logger.Debug("189 OTokenAPI.GetToken:" + result); var token = JsonKit.Deserialize <token_obj>(result); if (token != null) { if (!string.IsNullOrEmpty(token.token)) { //转换 OToken at = new OToken(); at.ResultCode = token.res_code; at.Token = token.token; return(at); } else { return(new OToken() { ResultCode = token.res_code, ResultMessage = token.res_message }); } } } } catch (Exception ex) { return(new OToken() { ResultCode = -1, ResultMessage = ex.Message }); } return(new OToken() { ResultCode = -1, ResultMessage = "接口没有获取到正确结果!" }); }
/// <summary> /// 获取令牌 /// </summary> /// <returns></returns> public OAccessToken GetAccessToken() { //检查缓存及过期时间 TimeSpan ts = _timeTag - DateTime.Now; if (ts.TotalSeconds > 0) { Logger.Debug("OAccessTokenAPI Cache:(" + ts.TotalSeconds + "s)" + JsonKit.Serialize(_accessToken)); return(_accessToken); } //获取访问令牌 try { string url = _api + "?grant_type=client_credential"; url += "&appid=" + _appId; url += "&secret=" + _appSecret; //if (_accessToken.ErrorCode == 0 && !string.IsNullOrEmpty(_accessToken.AccessToken)) { // //刷新令牌 //} Logger.Debug("OAccessTokenAPI URL:" + url); //重新获取令牌 using (WebClient wc = new WebClient()) { string result = wc.DownloadString(url); Logger.Debug("OAccessTokenAPI.GetAccessToken:" + result); var token = JsonKit.Deserialize <access_token_obj>(result); if (token != null) { if (!string.IsNullOrEmpty(token.access_token)) { //转换 OAccessToken at = new OAccessToken(); at.AccessToken = token.access_token; at.ExpiresInterval = token.expires_in; _accessToken = at; //时间戳 _timeTag = DateTime.Now.AddSeconds(token.expires_in - 120); return(_accessToken); } else { _accessToken = new OAccessToken() { ErrorCode = token.errcode, ErrorMessage = token.errmsg }; return(_accessToken); } } } } catch (Exception ex) { _accessToken = new OAccessToken() { ErrorCode = -1, ErrorMessage = ex.Message }; return(_accessToken); } return(new OAccessToken() { ErrorCode = -1, ErrorMessage = "接口没有获取到正确结果!" }); }
/// <summary> /// 获取令牌 /// </summary> /// <returns></returns> public OAccessToken GetAccessToken() { //获取访问令牌 try { using (WebClient wc = new WebClient()) { wc.Credentials = CredentialCache.DefaultCredentials; NameValueCollection args = new NameValueCollection(); args.Add("grant_type", "client_credentials"); args.Add("app_id", _appId); args.Add("app_secret", _appSecret); byte[] results = wc.UploadValues(_api, args); string result = Encoding.UTF8.GetString(results); Logger.Debug("189 OAccessTokenAPI.GetAccessToken:" + result); var token = JsonKit.Deserialize <access_token_obj>(result); if (token != null) { if (!string.IsNullOrEmpty(token.access_token)) { //转换 OAccessToken at = new OAccessToken(); at.ResultCode = token.res_code; at.ResultMessage = token.res_message; at.State = token.state; at.AccessToken = token.access_token; at.ExpiresInterval = token.expires_in; at.OpenId = token.open_id; at.Scope = token.scope; _accessToken = at; //时间戳 _timeTag = DateTime.Now.AddSeconds(token.expires_in - 120); return(_accessToken); } else { _accessToken = new OAccessToken() { ResultCode = token.res_code, ResultMessage = token.res_message }; return(_accessToken); } } } } catch (Exception ex) { _accessToken = new OAccessToken() { ResultCode = -1, ResultMessage = ex.Message }; return(_accessToken); } return(new OAccessToken() { ResultCode = -1, ResultMessage = "接口没有获取到正确结果!" }); }