}//前方勾用于控是内存购物车,后方垃圾桶用于控制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(',')));
        }
Exemple #2
0
        //续费业务方法
        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);
        }
Exemple #3
0
    /// <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();
        }