}//前方勾用于控是内存购物车,后方垃圾桶用于控制Cookie购物车 //检测提供的注册信息,是否完整并正确 private bool CheckIsOK(string value, string url, string year = "1") { //bool flag = false; string remind = ""; string key = "uname1,uname2,rname1,rname2,aname1,aname2,aemail,ucity1,ucity2,uaddr1,uaddr2,uzip,uteln";//,ateln,ufaxa,ufaxn Dictionary <string, string> dic = DomNameHelper.ConvertToHashMap(value); return(IsEmpty(dic, ref remind, key.Split(','))); }
//续费业务方法 private string Renewals(string url, string period) { // begindate 续费起始日期 yyyy-mm-dd,即当前到期时间 string begindate = DomNameHelper.GetEndDate(url, "yyyy-MM-dd"); string checksum = DomNameHelper.MD5("DomainRenew" + clientID + apiPasswd + url + "E" + begindate, 32);//以32位 List <QueryParam> param = new List <QueryParam>(); param.Add(new QueryParam("checksum", checksum)); param.Add(new QueryParam("dn", url));//域名 param.Add(new QueryParam("enc", "E")); param.Add(new QueryParam("client", clientID)); param.Add(new QueryParam("begindate", begindate)); param.Add(new QueryParam("period", period));//续费多久,以年为单位 DomNameHelper _XinNet = new DomNameHelper(ApiType.domain, param); return(_XinNet.Result); }
/// <summary> /// 用于域名管理界面,同步入数据库 /// </summary> /// <returns></returns> public DataTable GetDomanList() { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("ID", typeof(string))); dt.Columns.Add(new DataColumn("SiteID", typeof(string))); dt.Columns.Add(new DataColumn("SiteName", typeof(string))); dt.Columns.Add(new DataColumn("SitePort", typeof(string))); dt.Columns.Add(new DataColumn("Domain", typeof(string))); dt.Columns.Add(new DataColumn("EndDate", typeof(string))); //dt.Columns.Add(new DataColumn("CreateTime",typeof(string))); int index = 1; try { //有域名才加入记录 foreach (Site s in iis.Sites) { try { for (int i = 0; i < s.Bindings.Count; i++)//有多个域名,则绑定多个 { DataRow dr = dt.NewRow(); dr["SiteID"] = s.Id; dr["SiteName"] = s.Name; dr["SitePort"] = s.Bindings[i].EndPoint.Port; //域名为空,或不包含. if (string.IsNullOrEmpty(s.Bindings[i].Host) || !s.Bindings[i].Host.ToLower().Contains("www.")) { continue; } dr["id"] = index++; dr["Domain"] = s.Bindings[i].Host; dr["EndDate"] = DomNameHelper.GetEndDate(s.Bindings[i].Host.ToLower().Replace("www.", "")); dt.Rows.Add(dr); } } catch { } } } catch { } return(dt); }
//查询:第一步 public ActionResult OneStep() { string domainBody = Request.Form["domainBody"]; string ext = Server.HtmlEncode(Request.Form["ext"]); string ext2 = Server.HtmlEncode(Request.Form["ext2"]); string[] netArr = domainBody.Trim().Split('\n'); DataTable resultDt = new DataTable(); for (int i = 0; i < netArr.Length; i++) { string[] suffix = (ext + "," + ext2).Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); List <QueryParam> param = new List <QueryParam>(); param.Add(new QueryParam("name", netArr[i])); param.Add(new QueryParam("enc", "E")); foreach (string s in suffix) { param.Add(new QueryParam("suffix", s)); } param.Add(new QueryParam("suffix", "")); //必须加上个空的,否则其不会查最后一个后缀名 param.Add(new QueryParam("client", StationGroup.newNetClientID)); DomNameHelper _XinNet = new DomNameHelper(ApiType.Check, param); resultDt.Merge(TrunToDataTable(_XinNet.HashtableResult)); } //查询完毕,为结果加上价格 if (resultDt.Rows.Count < 1) { ViewBag.strli = Strli; DomainStep = "reg"; return(View("Domain")); } else { DomainStep = "one"; return(View("Domain", resultDt)); } }
/// <summary> /// 获取到期日期 /// </summary> public static string GetEndDate(string url, string format) { string result = ""; //到期日等查询服务 string checksum = DomNameHelper.MD5("GetProductKey" + StationGroup.newNetClientID + StationGroup.newNetApiPasswd + url + "E", 32);//以32位 List <QueryParam> param = new List <QueryParam>(); param.Add(new QueryParam("name", url));//域名 param.Add(new QueryParam("enc", "E")); param.Add(new QueryParam("client", StationGroup.newNetClientID)); param.Add(new QueryParam("keyname", "ExpireDate"));//到期日期等,为空则为PassWord param.Add(new QueryParam("checksum", checksum)); //返回 //ret=100&name=tc001.com&key=2014-01-10 00:00:00.0 DomNameHelper XinNet = new DomNameHelper(ApiType.GetProductKey, param); Hashtable ht = XinNet.HashtableResult; if (ht["err"] != null) { switch (ht["err"].ToString()) { case "name-notexist": result = "域名不存在"; break; } } else { DateTime dTime = new DateTime(); if (DateTime.TryParse(ht["key"].ToString(), out dTime)) { result = dTime.ToString(format); } } return(result); }
//注册,并写入日志 public void RegisterDomain(DataTable dt) { DataTable resultDT = new DataTable(); resultDT.Columns.Add(new DataColumn("Index", typeof(int))); resultDT.Columns.Add(new DataColumn("DomName", typeof(string))); resultDT.Columns.Add(new DataColumn("Year", typeof(string))); resultDT.Columns.Add(new DataColumn("Money", typeof(double))); resultDT.Columns.Add(new DataColumn("Result", typeof(string))); double money = 0; for (int i = 0; i < dt.Rows.Count; i++) { Dictionary <string, string> dic = DomNameHelper.ConvertToHashMap(dt.Rows[i]["Attribute"].ToString()); string url = dt.Rows[i]["ProName"].ToString(); string uname1 = dic["uname1"]; string uname2 = dic["uname2"]; string ucity1 = dic["prvinceDP"] + dic["cityText"]; string aemail = dic["aemail"]; string checksum = DomNameHelper.MD5("Register" + clientID + apiPasswd + url + aemail + uname2, 32); //以32位 List <QueryParam> param = new List <QueryParam>(); param.Add(new QueryParam("dn", url)); //域名 param.Add(new QueryParam("enc", "E")); param.Add(new QueryParam("client", clientID)); param.Add(new QueryParam("period", dt.Rows[i]["ProNum"].ToString())); //1-10年,不填默认1年 //param.Add(new QueryParam("checksum", checksum));//***MD5加密摘要,, //英文必须有空格 //----注册信信息 param.Add(new QueryParam("uname1", uname1)); //注册人|单位名称 中|英名称 [国内域名必填]|[国际域名必须] param.Add(new QueryParam("uname2", uname2)); //注册人|单位负责人 中|英名称 [国内域名必填]|[国际域名必须] param.Add(new QueryParam("rname1", dic["rname1"])); //注册人|单位负责人 中|英名称 [国内域名必填]|[国际域名必须] param.Add(new QueryParam("rname2", dic["rname2"])); param.Add(new QueryParam("aname1", dic["rname1"])); //管理联系人 中|英名称 [国内域名必填]|[国际域名必须],与上方用同一信息 param.Add(new QueryParam("aname2", dic["rname2"])); param.Add(new QueryParam("aemail", aemail)); //管理联系人电子邮件地址 [必须] param.Add(new QueryParam("ucity1", ucity1)); //注册人城市名称 中|英名称 [国内域名必填]|[国际域名必须] param.Add(new QueryParam("ucity2", "Cheng shi")); param.Add(new QueryParam("uaddr1", dic["uaddr1"])); //通讯地址,中|英 [国内域名必填]|[国际域名必须] param.Add(new QueryParam("uaddr2", dic["uaddr2"])); //dic["uaddr2"] param.Add(new QueryParam("uzip", dic["uzip"])); //注册人邮政编码 [必须] param.Add(new QueryParam("uteln", dic["uteln"])); //注册人电话号码 param.Add(new QueryParam("ateln", "")); // param.Add(new QueryParam("ufaxa", "")); //传真区号 dic["ufaxa"] param.Add(new QueryParam("ufaxn", "")); //不能超过8位,与API的不能超过12位不同 dic["ufaxn"] //param.Add(new QueryParam("dns1", StationGroup.DnsOption.Split(',')[0]));//自定义主DNS,辅DNS //param.Add(new QueryParam("dns2", StationGroup.DnsOption.Split(',')[1])); DomNameHelper _XinNet = new DomNameHelper(ApiType.Register, param); //汇总前台显示数据 DataRow dr = resultDT.NewRow(); dr["Index"] = i; dr["DomName"] = url; dr["Year"] = dt.Rows[i]["ProNum"].ToString(); dr["Money"] = dt.Rows[i]["AllMoney"]; dr["Result"] = _XinNet.IsSuccess() ? "注册成功" : "失败:" + _XinNet.HashtableResult["err"]; resultDT.Rows.Add(dr); money += Convert.ToDouble(dr["Money"]); //更新订单状态,写入日志,写入DomainList表 listBll.Insert(url, DateTime.Now, DateTime.Now, Convert.ToInt32(dt.Rows[i]["userid"]), dt.Rows[i]["Attribute"].ToString(), Convert.ToInt32(dr["Year"])); if (_XinNet.IsSuccess()) { OCl.UpOrderinfo("OrderStatus=99", Convert.ToInt32(dt.Rows[i]["oid"]));//成功的订单 } else { OCl.UpOrderinfo("OrderStatus=98", Convert.ToInt32(dt.Rows[i]["oid"]));//支付成功,但未成功续费,注册的订单 } dlogBll.Insert(dt.Rows[i]["ID"].ToString(), url, B_IDC_DomainLog.OPType.BuyDomain, dt.Rows[i]["userid"].ToString(), dr["Result"].ToString()); } allMoneyL.Text = money.ToString(); finalRepeater.DataSource = resultDT; finalRepeater.DataBind(); }