/// <summary> /// 获取短信余额 /// </summary> /// <param name="websiteowner">站点</param> /// <returns></returns> public bool GetSmsDeposit(string websiteowner, out int deposit, out string msg) { deposit = 0; msg = ""; string timeStamp = Math.Round(GetTimeStamp(DateTime.Now), 0).ToString(); SortedDictionary <string, string> dic = new SortedDictionary <string, string>(); dic.Add("userName", websiteowner); dic.Add("timestamp", timeStamp); string sign = CreateSign(timeStamp); dic.Add("sign", sign); ZentCloud.Common.HttpInterFace request = new Common.HttpInterFace(); string par = LinkPar(dic); JToken result = JToken.Parse(request.GetWebRequest(par, string.Format("http://{0}/serv/api/sms/status.ashx", ZentCloud.Common.ConfigHelper.GetConfigString("SmsDomain")), Encoding.UTF8)); if (bool.Parse(result["status"].ToString())) { deposit = int.Parse(result["result"]["deposit"].ToString()); msg = "获取短信余额成功"; return(true); } else { msg = result["msg"].ToString(); return(false); } }
/// <summary> /// 短信充值 /// </summary> /// <param name="websiteowner">站点</param> /// <param name="orderId">订单号</param> /// <param name="point">短信条数</param> /// <param name="msg">提示消息</param> /// <returns></returns> public bool SmsRecharge(string websiteowner, string orderId, int point, out string msg) { msg = ""; try { string timeStamp = Math.Round(GetTimeStamp(DateTime.Now), 0).ToString(); SortedDictionary <string, string> dic = new SortedDictionary <string, string>(); dic.Add("userName", websiteowner); dic.Add("timestamp", timeStamp); dic.Add("orderId", orderId); dic.Add("point", point.ToString()); string sign = CreateSign(timeStamp); dic.Add("sign", sign); ZentCloud.Common.HttpInterFace request = new Common.HttpInterFace(); string par = LinkPar(dic); JToken result = JToken.Parse(request.GetWebRequest(par, string.Format("http://{0}/serv/api/sms/recharge.ashx", ZentCloud.Common.ConfigHelper.GetConfigString("SmsDomain")), Encoding.UTF8)); if (bool.Parse(result["status"].ToString())) { msg = "充值成功"; return(true); } else { msg = result["msg"].ToString(); return(false); } } catch (Exception ex) { msg = ex.ToString(); return(false); } }
/// <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="mobile">手机号,多个手机号用,分隔</param> ///// <param name="message">短信内容</param> ///// <param name="sign">短信签名示例【大汉三通】</param> ///// <returns></returns> //public bool SendSmsdh3t(string mobile, string message, string sign) //{ // string userId = System.Configuration.ConfigurationManager.AppSettings["DahanSantongUserId"]; // string password = System.Configuration.ConfigurationManager.AppSettings["DahanSantongPassword"]; // var postData = new // { // account = userId, // password = ZentCloud.Common.DEncrypt.GetMD5(password), // phones = mobile, // content = message, // sign = sign // }; // ZentCloud.Common.HttpInterFace request = new Common.HttpInterFace(); // string result = request.PostWebRequest(ZentCloud.Common.JSONHelper.ObjectToJson(postData), "http://www.dh3t.com/json/sms/Submit", Encoding.UTF8); // JToken jToken = JToken.Parse(result); // if (jToken["result"].ToString() == "0") // { // return true; // } // return false; //} /// <summary> /// 发送短信 /// </summary> /// <param name="websiteOwner">站点所有者</param> /// <param name="mobile">手机号</param> /// <param name="message">短信内容</param> /// <returns></returns> public bool SendSms(string websiteOwner, string mobile, string message) { //BLLJIMP.BLLUser bllUser = new BLLUser(); //UserInfo websiteOwnerUserInfo = bllUser.GetUserInfo(websiteOwner, websiteOwner); //Common.HttpInterFace webRequest1 = new Common.HttpInterFace(); //string parm = string.Format("userName={0}&userPwd={1}&mobile={2}&content={3}&pipeID=membertrigger", websiteOwnerUserInfo.UserID, websiteOwnerUserInfo.Password, mobile, message); //string returnCode = webRequest1.PostWebRequest(parm, "http://sms.comeoncloud.net/Serv/SubmitSMSAPI.aspx", System.Text.Encoding.GetEncoding("gb2312")); //if (!string.IsNullOrEmpty(returnCode) && (returnCode.ToString().Equals("0"))) //{ // return true; //} //else //{ // return false; //} //} string timeStamp = Math.Round(GetTimeStamp(DateTime.Now), 0).ToString(); SortedDictionary <string, string> dic = new SortedDictionary <string, string>(); dic.Add("userName", websiteOwner); dic.Add("mobile", mobile); dic.Add("content", message); dic.Add("pipeID", "membertrigger"); dic.Add("timestamp", timeStamp); string sign = CreateSign(timeStamp); dic.Add("sign", sign); ZentCloud.Common.HttpInterFace request = new Common.HttpInterFace(); string par = LinkPar(dic); JToken result = JToken.Parse(request.GetWebRequest(par, string.Format("http://{0}/serv/api/sms/send.ashx", ZentCloud.Common.ConfigHelper.GetConfigString("SmsDomain")), Encoding.UTF8)); if (bool.Parse(result["status"].ToString())) { return(true); } else { return(false); } //string userName = "******"; //string key = System.Configuration.ConfigurationManager.AppSettings["LUOSIMAOKEY"]; //string url = "http://sms-api.luosimao.com/v1/send.json"; //byte[] byteArray = Encoding.UTF8.GetBytes("mobile=" + mobile + "&message=" + message); //HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); //string auth = "Basic " + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(userName + ":" + key)); //webRequest.Headers.Add("Authorization", auth); //webRequest.Method = "POST"; //webRequest.ContentType = "application/x-www-form-urlencoded"; //webRequest.ContentLength = byteArray.Length; //Stream newStream = webRequest.GetRequestStream(); //newStream.Write(byteArray, 0, byteArray.Length); //newStream.Close(); //HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); //StreamReader srReader = new StreamReader(response.GetResponseStream(), Encoding.Default); //string result = srReader.ReadToEnd(); //if (result.Contains("\"error\":0")) //{ // return true; //} //else //{ // try // { // using (StreamWriter sw = new StreamWriter(@"D:\SmsLog.txt", true, Encoding.GetEncoding("gb2312"))) // { // sw.WriteLine(string.Format("{0} {1}", DateTime.Now.ToString(), result + message)); // } // } // catch { } //} //return false; }
/// <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)); }