/// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="data"></param> /// <param name="url"></param> /// <param name="method"></param> /// <returns></returns> public T GetCommand <T>(string data, string url, string method = "get") { data += "&access_token=" + accessTokenBase; string result = string.Empty; try { if (method.Equals("get", StringComparison.OrdinalIgnoreCase) || method.Equals("")) { result = m.GetWebRequest(data, url, encodingBase); } else if (method.Equals("post", StringComparison.OrdinalIgnoreCase)) { result = m.PostWebRequest(data, url, encodingBase); } if (result == "[]" || string.IsNullOrWhiteSpace(result)) { return(default(T)); } return(JsonConvert.DeserializeObject <T>(result)); } catch (Exception ex) { return(default(T)); //throw ex; } }
/// <summary> /// 获取授权方的公众号帐号基本信息 /// </summary> /// <param name="authorizerAppId">授权公众号AppId</param> /// <returns></returns> public string GetAuthorizerInfo(string authorizerAppId) { var dataObj = new { component_appid = ComponentAppId, authorizer_appid = authorizerAppId }; string data = ZentCloud.Common.JSONHelper.ObjectToJson(dataObj); ZentCloud.Common.HttpInterFace webRequest = new Common.HttpInterFace(); var result = webRequest.PostWebRequest(data, string.Format("https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token={0}", GetComponentAccessToken()), Encoding.UTF8); return(result); }
/// <summary> /// 获取预授权码 /// </summary> /// <returns></returns> public string GetPreAuthCode() { string accessToken = GetComponentAccessToken(); var systemSet = GetSysSet(); var dataObj = new { component_appid = systemSet.ComponentAppId }; string data = ZentCloud.Common.JSONHelper.ObjectToJson(dataObj); ZentCloud.Common.HttpInterFace webRequest = new Common.HttpInterFace(); var result = webRequest.PostWebRequest(data, string.Format("https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token={0}", accessToken), Encoding.UTF8); ComponentPreAuthCodeModel model = ZentCloud.Common.JSONHelper.JsonToModel <ComponentPreAuthCodeModel>(result); return(model.pre_auth_code); }
/// <summary> /// 使用授权码换取公众号的接口调用凭据和授权信息 /// </summary> /// <returns></returns> public AuthorizationInfoModel GetQueryAuth(string authCode) { var systemSet = GetSysSet(); var dataObj = new { component_appid = systemSet.ComponentAppId, authorization_code = authCode }; string data = ZentCloud.Common.JSONHelper.ObjectToJson(dataObj); ZentCloud.Common.HttpInterFace webRequest = new Common.HttpInterFace(); var result = webRequest.PostWebRequest(data, string.Format("https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token={0}", GetComponentAccessToken()), Encoding.UTF8); AuthorizationInfoModel model = ZentCloud.Common.JSONHelper.JsonToModel <AuthorizationInfoModel>(result); return(model); }
/// <summary> /// 获取组件AccessToken /// </summary> /// <param name="componentAppId">组件AppId</param> /// <param name="componentAppsecret">组件AppSecret</param> /// <param name="componentVerifyTicket">组件VerifyTicket</param> /// <returns>ComponentAccessToken</returns> private string GetComponentAccessToken(string componentAppId, string componentAppsecret, string componentVerifyTicket) { //string token = string.Empty; var dataObj = new { component_appid = componentAppId, component_appsecret = componentAppsecret, component_verify_ticket = componentVerifyTicket }; string data = ZentCloud.Common.JSONHelper.ObjectToJson(dataObj); ZentCloud.Common.HttpInterFace webRequest = new Common.HttpInterFace(); var result = webRequest.PostWebRequest(data, "https://api.weixin.qq.com/cgi-bin/component/api_component_token", Encoding.UTF8); ComponentAccessTokenModel componentAccessTokenModel = ZentCloud.Common.JSONHelper.JsonToModel <ComponentAccessTokenModel>(result); return(componentAccessTokenModel.component_access_token); }
/// <summary> /// 获取授权公众号的接口调用凭据(令牌) /// </summary> /// <param name="authorizerAppId">授权公众号AppId</param> /// <param name="authorizerRefreshToken">授权公众号刷新Token</param> /// <param name="websiteOwner">站点所有者s</param> /// <returns></returns> private string GetAuthorizerToken(string authorizerAppId, string authorizerRefreshToken, string websiteOwner) { BLLWeixin bllWeixin = new BLLWeixin(); bllWeixin.ToBLLWeixinLog("GetAuthorizerToken Open"); var systemSet = GetSysSet(); var dataObj = new { component_appid = systemSet.ComponentAppId, authorizer_appid = authorizerAppId, authorizer_refresh_token = authorizerRefreshToken }; string data = ZentCloud.Common.JSONHelper.ObjectToJson(dataObj); bllWeixin.ToBLLWeixinLog("GetAuthorizerToken Open,data:" + data); ZentCloud.Common.HttpInterFace webRequest = new Common.HttpInterFace(); var result = webRequest.PostWebRequest(data, string.Format("https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token={0}", GetComponentAccessToken()), Encoding.UTF8); bllWeixin.ToBLLWeixinLog("result" + result); AuthorizerAccessTokenModel model = ZentCloud.Common.JSONHelper.JsonToModel <AuthorizerAccessTokenModel>(result); bllWeixin.ToBLLWeixinLog("GetAuthorizerToken Open,AuthorizerAccessTokenModel:" + data); // //更新 authorizer_access_token // var currentWebsiteInfo = GetWebsiteInfoModelFromDataBase(websiteOwner); if (!string.IsNullOrEmpty(model.authorizer_access_token)) { currentWebsiteInfo.AuthorizerAccessTokenUpdateTime = DateTime.Now; currentWebsiteInfo.AuthorizerAccessToken = model.authorizer_access_token; currentWebsiteInfo.AuthorizerRefreshToken = model.authorizer_refresh_token; Update(currentWebsiteInfo); } // return(model.authorizer_access_token); }
/// <summary> /// 订阅请求 /// </summary> /// <returns></returns> public bool Poll(string expressCompanyCode, string expressNumber, out string msg) { msg = ""; string data = ""; string url = "http://www.kuaidi100.com/poll"; ZentCloud.Common.HttpInterFace request = new Common.HttpInterFace(); var parameters = new { callbackurl = string.Format("http://{0}/kuaidi100/callback.ashx", HttpContext.Current.Request.Url.Host), salt = key, resultv2 = "" }; var body = new { company = expressCompanyCode, from = "", to = "", number = expressNumber, key = key, parameters = parameters }; data = ZentCloud.Common.JSONHelper.ObjectToJson(body); var resultStr = request.PostWebRequest(string.Format("param={0}", data), url, Encoding.UTF8); ResultModel result = ZentCloud.Common.JSONHelper.JsonToModel <ResultModel>(resultStr); msg = result.message; if (result.result.ToLower() == "true" && result.returnCode == "200") { return(true); } return(false); }
/// <summary> /// 发送定时短信 /// </summary> /// <param name="phone">手机号</param> /// <param name="msgContent">短信内容</param> /// <param name="sendTime">发送时间</param> /// <param name="smsSignature">短信签名</param> /// <param name="isSuccess">是否成功</param> /// <param name="msg"></param> public void SendSmsMisson(string phone, string msgContent, string sendTime, string smsSignature, out bool isSuccess, out string msg) { isSuccess = false; msg = ""; if (string.IsNullOrEmpty(smsSignature)) { smsSignature = "至云"; } string sendContent = string.Format("{0}【{1}】", msgContent, smsSignature); UserInfo websiteOwnerUserInfo = GetCurrWebSiteUserInfo(); Common.HttpInterFace webRequest = new Common.HttpInterFace(); string parm = string.Format("userName={0}&userPwd={1}&mobile={2}&content={3}&pipeID=membermission&attime={4}", websiteOwnerUserInfo.UserID, websiteOwnerUserInfo.Password, phone, sendContent, sendTime); string returnCode = webRequest.PostWebRequest(parm, "http://sms.comeoncloud.net/Serv/SubmitSMSAPI.aspx", System.Text.Encoding.GetEncoding("gb2312")); if (!string.IsNullOrEmpty(returnCode) && (returnCode.ToString().Equals("0"))) { isSuccess = true; } else { msg = returnCode; } }
/// <summary> /// 投票 /// </summary> /// <param name="context"></param> /// <returns></returns> private string SubmitInfoDali(HttpContext context) { string voteId = context.Request["vid"]; string phone = context.Request["phone"]; var recordCount = bllVote.GetCount <SMSDetails>(string.Format("PlanID={0} And Receiver='{1}'", voteId, currentUserInfo.UserID)); if (recordCount == 1) { resp.errcode = -1; resp.errmsg = "不能再继续抽奖"; return(Common.JSONHelper.ObjectToJson(resp)); } string token = ""; DateTime dtSendTime = DateTime.Now; if (dtSendTime.Hour >= 19) { dtSendTime = Convert.ToDateTime(dtSendTime.ToString("yyyy-MM-dd")); dtSendTime = dtSendTime.AddDays(1).AddHours(9); } Random rand = new Random(); int index = rand.Next(1, 3); switch (index) { case 1: token = "我的时尚"; break; case 2: token = "加油"; break; default: break; } string sendMsg = string.Format("感谢参与,您的密令为 “{0}”,点击 c.tb.cn/c.ZIW7y 立刻前往官方店联系客服领取!【The.Me】", token); UserInfo websiteOwnerUserInfo = bllVote.GetCurrWebSiteUserInfo(); Common.HttpInterFace webRequest = new Common.HttpInterFace(); string parm = string.Format("userName={0}&userPwd={1}&mobile={2}&content={3}&pipeID=membermission&attime={4}", websiteOwnerUserInfo.UserID, websiteOwnerUserInfo.Password, phone, sendMsg, dtSendTime.ToString()); string returnCode = webRequest.PostWebRequest(parm, "http://sms.comeoncloud.net/Serv/SubmitSMSAPI.aspx", System.Text.Encoding.GetEncoding("gb2312")); if (!string.IsNullOrEmpty(returnCode) && (returnCode.ToString().Equals("0"))) { resp.errmsg = "ok"; SMSDetails model = new SMSDetails(); model.PlanID = voteId; model.Receiver = currentUserInfo.UserID; bllSms.Add(model); } else { resp.errcode = -1; resp.errmsg = "code:" + returnCode; //if (returnCode=="1002")//余额不足 //{ // resp.errcode = 0; //} return(Common.JSONHelper.ObjectToJson(resp)); } return(Common.JSONHelper.ObjectToJson(resp)); }