Ir para conteúdo
  • Cadastre-se
  • Total de ítens

    1
  • Registro em

  • Última visita

Posts postados por [email protected]

  1. Bom dia Pessoal.

    A empresa em que trabalho está desenvolvendo a integração direta com os webservices em C#, estamos travados na conexão com o webservice, na documentação do pessoal da smarapd, eles falam que devemos criar uma cadeia de certificados confiáveis (jks) com o certificado do cliente (A1) e o certificado público do servidor disponibilizado por eles, gerar uma chave pública dessa cadeia de certificados, salvar na alteração cadastral do site e depois tentar a requisição. Mesmo fazendo isso, gerando um pfx dessa cadeia de certificado (jks) ou adicionando os dois certificados no handler do httpclient, estou tendo problemas de conexão "A solicitação foi anulada: Não foi possível criar um canal seguro para SSL/TLS".

    Eu sei que o foco do fórum é o ACBR e componentes, mas já tentei vários outros e não tive sucesso.

    Essa é a função que eu criei, é a mesma que utilizamos para o eSocial e eReinf.

     try
                {
                    System.Net.ServicePointManager.ServerCertificateValidationCallback += (sender2, cert, chain, sslPolicyErrors) => true;
                    
                    var handler = new System.Net.Http.WebRequestHandler();
    
                    var certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(@"c:\certificado.pfx", "123456");
                    handler.ClientCertificates.Add(certificate);
    
                    using (var httpclient = new System.Net.Http.HttpClient(handler))
                    {
                        httpclient.DefaultRequestHeaders.AcceptEncoding.Clear();
                        httpclient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip"));
                        httpclient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("deflate"));
    
                        
                        //httpclient.DefaultRequestHeaders.Add("SOAPAction", "http://nfse.abrasf.org.br/RecepcionarLoteRpsSincrono");
                        httpclient.DefaultRequestHeaders.Host = "201.72.16.150";
                        httpclient.DefaultRequestHeaders.Connection.Add("Keep-Alive");
                        httpclient.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("Apache-HttpClient", "4.1.1"));
    
                        httpclient.BaseAddress = new System.Uri("https://201.72.16.150/tbwhomolog/services/nfseSOAP");
    
    
                        var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, "nfseSOAP");
                        request.Content = new System.Net.Http.StringContent("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
                                                                                "< soapenv:Header />" +
                                                                                "< soapenv:Body >" +
                                                                            "< RecepcionarLoteRpsSincronoRequest xmlns =\"http://nfse.abrasf.org.br\">" +
                                                                                "< nfseCabecMsg >" +
                                                                                    "< ![CDATA[<? xml version = '1.0' encoding = 'UTF-8' ?>< cabecalho xmlns = 'http://www.abrasf.org.br/nfse.xsd' versao = '2.04' >< versaoDados > 2.04 </ versaoDados ></ cabecalho >]] >" +
                                                                                "</ nfseCabecMsg >" +
                                                                                "< nfseDadosMsg >" +
                                                                          //"<!-- XmlAssinado -->" +
                                                                                "</ nfseDadosMsg >" +
                                                                            "</ RecepcionarLoteRpsSincronoRequest >" +
                                                                                "</ soapenv:Body >" +
                                                                            "</ soapenv:Envelope >",
                                                            System.Text.Encoding.UTF8,
                                                            "text/xml");
    
                        httpclient.SendAsync(request)
                              .ContinueWith(responseTask =>
                              {
                                  if (responseTask.Result.IsSuccessStatusCode)
                                      MessageBox.Show(responseTask.Result.Content.ReadAsStringAsync().Result);
                                  else
                                      MessageBox.Show("Erro código: " + responseTask.Result.StatusCode + "\n" + responseTask.Result.Content.ReadAsStringAsync().Result);
                              })
                              .Wait(new System.TimeSpan(120 * 10000000));
    
                    }
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.