-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Ivan Teles edited this page Aug 3, 2016
·
6 revisions
==== private static TcpTransport _tcpTransport; private Service _service; private readonly string _originatingIpAddress = "Ip de origem";
public void Conectar()
{
string pathClientp12 = Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "App_Data\\client.p12");
string pathClient = Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "App_Data\\client.der");
string pathRoot = Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "App_Data\\root.der");
X509Certificate2 clientCertificate = new X509Certificate2(pathClientp12, "senha"); ///senha do certificado
X509Certificate x509 = X509Certificate.CreateFromCertFile(pathClient);
X509Certificate x5091 = X509Certificate.CreateFromCertFile(pathRoot);
X509CertificateCollection certs = new X509CertificateCollection { clientCertificate, x509, x5091 };
_tcpTransport = new TcpTransport("beta.registro.br", 700, null, certs, true);
_service = new Service(_tcpTransport);
_service.Connect();
}
public void Hello()
{
var resposnse = new Hello();
_service.Execute(resposnse);
}
public void Logout()
{
var logingCmd = new Logout();
_service.Execute(logingCmd);
}
public void Autenticar()
{
string pathClientp12 = Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "App_Data\\client.p12");
string pathClient = Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "App_Data\\client.der");
string pathRoot = Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "App_Data\\root.der");
X509Certificate2 clientCertificate = new X509Certificate2(pathClientp12, "senha"); //senha do certificado
X509Certificate x509 = X509Certificate.CreateFromCertFile(pathClient);
X509Certificate x5091 = X509Certificate.CreateFromCertFile(pathRoot);
X509CertificateCollection certs = new X509CertificateCollection { clientCertificate, x509, x5091 };
_tcpTransport = new TcpTransport("beta.registro.br", 700, null, certs, true);
_service = new Service(_tcpTransport);
_service.Connect();
//dados obtidos com a registro.br
var logingCmd = new Login("login", "senha") { Options = new Options { MLang = "en", MVersion = "1.0" } };
var services = new Services();
services.ObjUrIs.Add("urn:ietf:params:xml:ns:epp-1.0");
services.ObjUrIs.Add("urn:ietf:params:xml:ns:domain-1.0");
services.ObjUrIs.Add("urn:ietf:params:xml:ns:host-1.0");
services.ObjUrIs.Add("urn:ietf:params:xml:ns:contact-1.0");
services.ObjUrIs.Add("urn:ietf:params:xml:ns:brorg-1.0");
//CIRA extensions
services.Extensions.Add("urn:ietf:params:xml:ns:cira-1.0");
services.Extensions.Add("urn:ietf:params:xml:ns:poll-1.0");
logingCmd.Services = services;
var response = _service.Execute(logingCmd);
if (!response.Code.Equals("1000"))
{
throw new ApplicationException("Authentication failed");
}
}
public string CriarContato()
{
var registrantContact = new Contact(
"Código do usuario",
"Nome completo",
"Nome completo",
"Cidade",
"Logradouro",
"Numero",
"Bairro",
"DF",
"00000-000",
"BR",
"email@email.com",
new Telephone { Value = $"+1.6130000000" },
null)
{
Password = "senha",
DiscloseFlag = true
};
var registrantContactCmd = new ContactCreate(registrantContact) { TransactionId = "iddatransacao" };
var response = _service.Execute(registrantContactCmd);
return response.Xml;
}
public string InfoContato(string id)
{
var check = new ContactInfo(id);
var response = _service.Execute(check);
return response.Xml;
}
public string AlterarContato(string id)
{
var registrantContactCmd = new ContactUpdate(id)
{
ContactChange = new ContactChange
{
Email = "email@email.com",
PostalInfo = new PostalInfo {
m_address = new PostalAddress
{
City = "",
PostalCode = "",
Street1 = "",
StateProvince = "",
Street2 = "",
Street3 = ""
},
m_type = "loc"
},
Voice = new Telephone() {Value = $"+1.6130000000" }
}
};
var response = _service.Execute(registrantContactCmd);
return response.Xml;
}
public string ChecarEmpresa(string id, string documento)
{
var check = new ContactCheck(id);
check.Extensions.Add(new BrOrg("info") { Organization = documento });
var response = _service.Execute(check);
return response.Xml;
}
public string CriarEmpresa(string documento, string idContato)
{
var registrantContact = new Contact(
"Código da Empresa",
"Razao Social",
"Responsavel",
"Cidade",
"Logradouro",
"Numero",
"Bairro",
"DF",
"00000-000",
"BR",
"email@email.com",
new Telephone { Value = $"+1.6130000000" },
null)
{
Password = "senha",
DiscloseFlag = true
};
var registrantContactCmd = new ContactCreate(registrantContact) { TransactionId = "IdTrascao" };
registrantContactCmd.Extensions.Add(new BrOrg("create") { Organization = documento, Contact = idContato, ContactType = "admin", Responsible = "Nome da empresa responsaval" });
var response = _service.Execute(registrantContactCmd);
return response.Xml;
}
public string InfoEmpresa(string id, string documento)
{
var check = new ContactInfo(id);
check.Extensions.Add(new BrOrg("info") { Organization = documento });
var response = _service.Execute(check);
return response.Xml;
}
public string ChecarDominio(string dominio)
{
var domainCheckCmd = new DomainCheck(dominio.Trim().Replace("www.", ""));
var responseDomain = _service.Execute(domainCheckCmd);
return responseDomain.Xml;
}
public string RegistrarDominio(string dominio, string documento)
{
var domainCreateCmd = new DomainCreate(dominio.Trim().Replace("www.", ""), null);
domainCreateCmd.NameServers.Add(new HostAttr { HostName = $"ns1.{dominio}", HostAddr = "Ip1", HostAddrType = "v4" });
domainCreateCmd.NameServers.Add(new HostAttr { HostName = $"ns1.{dominio}", HostAddr = "Ip2", HostAddrType = "v4" });
domainCreateCmd.TransactionId = "iddatransacao";
domainCreateCmd.Extensions.Add(new BrDomain("create") { Organization = documento });
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string TicketInfo(string dominio, string ticket)
{
var domainCreateCmd = new DomainInfo(dominio.Trim().Replace("www.", ""));
domainCreateCmd.Extensions.Add(new BrDomain ("info") {TicketNumber = ticket });
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string TicketUpdate(string dominio, string ticket)
{
var domainCreateCmd = new DomainUpdate(dominio.Trim().Replace("www.", ""));
domainCreateCmd.ToRemove.NameServers.Add(new HostAttr { HostName = $"ns1.{dominio}", HostAddr = "Ip1", HostAddrType = "v4" }); //antigos dns a seren renmovidos
domainCreateCmd.ToRemove.NameServers.Add(new HostAttr { HostName = $"ns1.{dominio}", HostAddr = "Ip2", HostAddrType = "v4" }); //antigos dns a seren renmovidos
domainCreateCmd.ToAdd.NameServers.Add(new HostAttr { HostName = $"ns3.{dominio}", HostAddr = "Ip1", HostAddrType = "v4" }); //novos dns
domainCreateCmd.ToAdd.NameServers.Add(new HostAttr { HostName = $"ns4.{dominio}", HostAddr = "Ip2", HostAddrType = "v4" }); //novos dns
domainCreateCmd.Extensions.Add(new BrDomain("update") { TicketNumber = ticket });
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string Poll(string tipo, string id)
{
var domainCreateCmd = new Poll { Type = tipo, MessageId = id };
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string AlterarEmpresa(string idContato, string documento)
{
var registrantContactCmd = new ContactUpdate(idContato)
{
ContactChange = new ContactChange
{
PostalInfo = new PostalInfo
{
m_address = new PostalAddress
{
City = "",
PostalCode = "",
Street1 = "",
StateProvince = "",
Street2 = "",
Street3 = "",
CountryCode = "BR"
},
m_type = "loc"
},
Voice = new Telephone() { Value = $"+1.61300000000" }
}
};
registrantContactCmd.Extensions.Add(new BrOrg("update") { Organization = documento });
var response = _service.Execute(registrantContactCmd);
return response.Xml;
}
public string InfoDominio(string dominio)
{
var domainCreateCmd = new DomainInfo(dominio.Trim().Replace("www.", ""));
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string DominioRenovar(string dominio, string data)
{
var domainCreateCmd = new DomainRenew(dominio.Trim().Replace("www.", ""), data, new DomainPeriod(1, "y")); //ya ano
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string DominioDelete(string dominio)
{
var domainCreateCmd = new DomainDelete(dominio.Trim().Replace("www.", ""));
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string DominioUpdateContato(string dominio, string idContato, string idContatoAntigo)
{
var domainCreateCmd = new DomainUpdate(dominio.Trim().Replace("www.", ""));
domainCreateCmd.ToRemove.DomainContacts.Add(new DomainContact(idContatoAntigo, "billing"));
domainCreateCmd.ToAdd.DomainContacts.Add(new DomainContact(idContato, "billing"));
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
public string DominioRenovacaoAutomatica(string dominio, string renovacao)
{
var domainCreateCmd = new DomainUpdate(dominio.Trim().Replace("www.", ""));
domainCreateCmd.Extensions.Add(new BrDomain("update") { AutoRenew = renovacao });
var response = _service.Execute(domainCreateCmd);
return response.Xml;
}
====
Dica importante: para converter os arquivos PEM segue um ótimo link: https://www.sslshopper.com/ssl-converter.html