Ir para conteúdo
  • Cadastre-se

dev botao

Comunicação ACbreSocial


  • Este tópico foi criado há 2256 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom tarde Senhores,

ontem baixei o código do eSocial do ACBr e estou implementando algumas coisas. Estou no momento com o evento valido, Lote Valido e Envelope Soap Valido (ver em Anexo). Porem ao fazer o envio estou recebendo código 415 Pelo que vi esse erro é " Unsupported Media Type".  e não estou localizando o problema.

Caso alguém tenha alguma ideia... Agradeceria muito.

-> Dados do xml são os mesmos do exemplos!

Obrigado.

Leivio

Lote_Envio_eSocial.xml

Link para o comentário
Compartilhar em outros sites

Em 20/07/2017 at 15:35, Leivio Fontenele disse:

Pessoal, Deu certo! Após um tempo com problemas de certificado e depois de Env. SOAP  Inválido. Conseguir fazer o envio do evento S1000  e receber um retorno.

Agora vou implementar o método LerXML da Classe TRetProcLote.

Valeu.

 

Retorno.xml

Boa tarde, @Leivio Fontenele!

Você chegou a implementar nos componentes da acbr assinatura do XML com SHA265 e o método de envio?

Link para o comentário
Compartilhar em outros sites

Em 20/07/2017 at 16:35, Leivio Fontenele disse:

Pessoal, Deu certo! Após um tempo com problemas de certificado e depois de Env. SOAP  Inválido. Conseguir fazer o envio do evento S1000  e receber um retorno.

Agora vou implementar o método LerXML da Classe TRetProcLote.

Valeu.

 

Retorno.xml

 

Amigo você poderia disponibilizar também o xml que enviou já com o envelope?

Link para o comentário
Compartilhar em outros sites

Boa tarde,

O processo de assinatura do XML com SHA265  com ACBR da para ser feito de uma forma simples. Apenas utilizando as bibliotecas já existentes. Segue abaixo:

Como Assinar SHA256 com ACBR:

1. Configuração do tipo de lib.

 - AACBreSocial.Configuracoes.Geral.SSLLib := libOpenSSL;
 - AACBreSocial.Configuracoes.Geral.SSLHttpLib := httpWinHttp;

2. Modificação do corpo da Assinatura:

Na unit ACBrDFeUtil.pas no metodo SignatureElement definir uma paramentro para SHA1 Boolean. e Coloquei a texto necessária para o tipo de assinatura que desejo.

na unit ACBrDFeSSL no metodo AdicionarSignatureElement fiz uma pequena modificação para ficar sempre "False" e pegar o modelo de assinatura que eu quero.

Pronto agora seu XML estará assinado Sha-256.

Obs.: Devido a pressa não tive tempo para refatorar o código e o mesmo está bem amarrado para o e-Social. Quando já estiver tudo ok.... com as validações... vou refatorar para manter compatível com os outros componentes do ACBR.

Obs. Sei que muitos estão procurando uma solução e-Social aqui no ACBR, porem os fontes que existiam estavam incompletos tanto comunicação como assinatura além de defasados com relação ao layouts atual. e isso está demandando tempo para validação dos layouts.

obs.: Também gostaria de agradecer aos criadores do projeto pelos fontes já existentes...deu uma grande ajuda.

obs.: Tenho um Repo Local do ACBR especifico para o e-Social, então considere a opção de não misturar os fontes oficiais com esses de teste.

 

ACBrDFeUtil.pas

ACBrDFeSSL.pas

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Estou usando a própria implementação do ACBR... o mesmo já tem toda lógica de preenchimento, Implementação de SSL e tratamento de resposta.

Estude a classe TDFeWebService do AcBr... alias o projeto do ACBR para o e-Social já tem uma implementação"TeSocialWebService" que herda dela.

Estou reutilizando o máximo de código já feito...

Link para o comentário
Compartilhar em outros sites

Recebi esse retorno, alguém já viu?

 

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faultstring xml:lang="en-US">The message with Action 'http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/v1_1_0' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault></s:Body></s:Envelope>

Link para o comentário
Compartilhar em outros sites

Está parecendo problema de SOAPAction

Soap Action vc pode vê pelos arquivos de comunicação disponibilizados pelo Portal do eSocial ou pelo WSDL.

ACBRESOCIAL_NAMESPACE = ' http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/v1_1_0';

procedure TEnvioLote.DefinirServicoEAction;
begin
  FPServico := FPDFeOwner.GetNameSpaceURI + '/ServicoEnviarLoteEventos/EnviarLoteEventos';
  FPSoapAction := Trim(FPServico);
end;


espero que esteja no caminho.

Link para o comentário
Compartilhar em outros sites

Também pensei ser mas já conferir e ta ok

 

           URL := 'https://webservices.producaorestrita.esocial.gov.br/servicos/empregador/enviarloteeventos/WsEnviarLoteEventos.svc?wsdl';

           SoapAction := 'http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/v1_1_0';

 

Link para o comentário
Compartilhar em outros sites

Sergio,

O ACBR tem tudo pronto pra vc usar.

Wsdl é tipo um descritivo de um contrato de comunicação. Para o ACBR vc precisar definir o envelope SOAP e definir a URL e Actions e nas configurações definir se o canal de comunicação tmb usa certificado ou não.

Definindo isso vc usa sem problemas.

Dica: veja os exemplos do DFe já implementados...tipo NF-e e NFS-e. Ajuda bastante entender o conceito e a relação das classes do ACBr.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2256 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.