// GET api/SiscomexController/GetDUE // Parametros numero due, servicoParametros public RetornoSiscomex GetDUE(String numeroDue, ServicoParametros servicoParametros) { autenticar = new AutenticarSisconex(); // Autentica retornoSisconex = new RetornoSiscomex(); //Caso o token seja nulo solita autenticação. if (token == null) { if (autenticar.GetTokenAutenticado(servicoParametros)) { token = autenticar.getToken(); xCSRFtoken = autenticar.getxCSRFtoken(); } client = autenticar.getClient(); // Usa client já configurado } // seta os novos dados do Header para a consulta client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("Authorization", token); // obtido na autenticação client.DefaultRequestHeaders.Add("X-CSRF-Token", xCSRFtoken); // obtido na autenticação metododeconsumo = "/due/api/ext/due/consultarDadosResumidosDUE?numero=" + numeroDue; //efetura a consulta responseConsumo = client.GetAsync(metododeconsumo).Result; var result = responseConsumo.Content.ReadAsStringAsync().Result; retornoSisconex = JsonConvert.DeserializeObject <RetornoSiscomex>(result); // desmonta o resultado. return(retornoSisconex); }
public RetornoSiscomex EnviarRetificacao(string xml, string due, string cpfCertificado) { try { var response = SisComex.EnviarRetificacao(xml, due, cpfCertificado); var retornoSiscomex = new RetornoSiscomex(); var retornoResponse = response.Content.ReadAsStringAsync().Result; using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(Regex.Unescape(retornoResponse)))) { var reader = new StreamReader(memoryStream, Encoding.UTF8); if (response.StatusCode != HttpStatusCode.OK) { try { var xmlSerializer = new XmlSerializer(typeof(RetornoCriticas)); var criticas = (RetornoCriticas)xmlSerializer.Deserialize(reader); retornoSiscomex.Sucesso = false; retornoSiscomex.Message = criticas.Message; retornoSiscomex.Criticas = criticas.Detail?.Errors; } catch (Exception ex) { retornoSiscomex.Sucesso = false; retornoSiscomex.Message = "Erro 500. XML recusado pelo Serpro"; } } else { var xmlSerializer = new XmlSerializer(typeof(RetornoSucesso)); var sucesso = (RetornoSucesso)xmlSerializer.Deserialize(reader); retornoSiscomex.Sucesso = true; retornoSiscomex.Message = sucesso.Message; retornoSiscomex.DUE = sucesso.Due; retornoSiscomex.RUC = sucesso.Ruc; } } return(retornoSiscomex); } catch (Exception ex) { return(new RetornoSiscomex { Sucesso = false, Message = ex.Message }); } }
// Tipos de RoleType //IMPEXP Declarante importador/exportador //DEPOSIT Depositário //OPERPORT Operador Portuário //TRANSPORT Transportador //AGEREMESS Remessa Expressa/Correio //AJUDESPAC Ajudante de Despachante //HABILITAD Habilitador //PUBLICO Público // GET api/values public RetornoSiscomex GetDUETeste(String numeroDue) { SiscomexController siscomexController = new SiscomexController(); ServicoParametros servicoParametros = new ServicoParametros(); string priKey = "1234567890.pfx"; /// Numero do Certificado padrão A1 em Arquivo pfx servicoParametros.SetCertificado(priKey); servicoParametros.SetSenhaCertificado("senha"); /// Senha usada no Certificado. servicoParametros.SetTipoRoleType("DEPOSIT"); /// Tipo de RoleType (De acordo com o manual do Siscomex) servicoParametros.SetComCertificado(false); retornoSiscomex = siscomexController.GetDUE(numeroDue, servicoParametros); return(retornoSiscomex); }