Desenvolvimento NFS-e
Desenvolvimento NFS-e
Desenvolvimento NFS-e
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Desenvolvimento NFS-e

Site destinado a desenvolvedores de softwares na integração com a NFS-e.
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistarRegistar  Entrar  

 

 (RESOLVIDO)Webservice GINFES

Ir para baixo 
4 participantes
AutorMensagem
hudsonjm




Mensagens : 3
Data de inscrição : 07/11/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyDom Nov 11, 2012 11:45 am

Preciso de uma ajuda urgente
em como me comunicar e transmitir os xml para o Webservice do GINFES
utilizo JAVA, tentei pegar o wsdl, mas só me retorna erro.
Tenho tudo já, os xml no padrão, certificado, xml assinado... falta como se comunicar
enviar esses xml para o GINFES, alguem pode me ajudar?


att Hudson
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyTer Nov 13, 2012 12:30 pm

Boa Tarde,

Amigo aqui eu uso C#.Net e eu precisei apenas adicionar a referencia do Web Serviçe ao meu projeto para utilizar os métodos da GINFES, depois que eu adicionei a referencia é só instanciar e chamar o método de envio de Lote.

Segue código de exemplo a baixo:

Código:
ServiceGinfesImplClient Servico = new ServiceGinfesImplClient();

Servico.RecepcionarLoteRpsV3(cobecalho, mensagemXMLAssinada);
Ir para o topo Ir para baixo
kristian.fantin




Mensagens : 10
Data de inscrição : 23/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyTer Nov 20, 2012 11:57 am

Boa tarde Bruno.
Você disse que utilizou c# e colocou o seguinte código:
ServiceGinfesImplClient Servico = new ServiceGinfesImplClient();
Servico.RecepcionarLoteRpsV3(cobecalho, mensagemXMLAssinada);

E o que você colocou no cabecalho?
versao?
versaoDados?
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyTer Nov 20, 2012 12:21 pm

Cara no cabeçalho deve-se seguir o que pede no .xsd que é a versão e versão Dados.
Ex:
Versão 3
versão dados 3

Ir para o topo Ir para baixo
kristian.fantin




Mensagens : 10
Data de inscrição : 23/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Nov 21, 2012 12:50 pm

Estou com o mesmo problema do Hudson. Não consigo efetuar a comunicação com a ginfes.
Comecei a ver os outros web-services que tenho e todos, quando eu copio o endereço dos xsd's me levam corretamente à página do xsd.
No caso da ginfes, não. Exemplo: no c#, ao gerar a classe do xsd para geração do xml de emissão (servico_enviar_lote_rps_envio_v03), a serialização me dá a seguinte url do xsd: http://www.ginfes.com.br/servico_enviar_lote_rps_envio_v03.xsd
Tentem abrir este link - não vai dar certo.
Não sei se isso realmente tem alguma coisa a ver com o erro de comunicação, mas é estranho.
Por um acaso alguém tem um webServiceCaller, onde eu apenas passo o xml, o servico e o certificado e a comunicação é realizada?
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Nov 21, 2012 12:58 pm

Quando você instanciar o serviço você pode passar a URL EX:

Código:
ServiceGinfesImplService svc = new ServiceGinfesImplService { Url = servico.Endereco };

este codigo só irá funcionar se a referencia do serviço for adicionada como Web Services se for como WCF deve ser editado o endpoint
Ir para o topo Ir para baixo
kristian.fantin




Mensagens : 10
Data de inscrição : 23/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Nov 21, 2012 3:19 pm

Oi Bruno... obrigado pelas dicas por enquanto.
Consegui efetuar a conexão e já recebo um retorno. Porém este retorno não condiz com a validação do xml pelo Altova.
Estou passando os seguintes comandos:

ServiceGinfesImplService sv = new ServiceGinfesImplService();
sv.ClientCertificates.Add(Certificado); //meu certificado do tipo X509Certificate2
sv.Url = url;
sv.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Default;
string xmlProtocolo = sv.RecepcionarLoteRpsV3(cabecalho.InnerXml, document.InnerXml);

return xmlProtocolo;

Meu xml é apenas serializado, não usei nenhuma função para assinar o XML com as informações do certificado - pois vi que no serviço o certificado pode ser adicionado.

O retorno que me é dado é xml inválido.
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Nov 21, 2012 3:46 pm

Não cara seguinte,

O XML deve ser assinado também, nas tags LoteRps e Rps(Se não me falha a memoria) verificar no manual da GINFES, o código que você fez está correto...
Toda vez que você for utilizar alguma metodo do serviço você deve informar a url e o adicionar o certificado essa parte será utilizada somente para envio da informação ao servidor.
Seu Ex esta correto:

Código:

ServiceGinfesImplService sv = new ServiceGinfesImplService();
sv.ClientCertificates.Add(Certificado); //meu certificado do tipo X509Certificate2
sv.Url = url;
sv.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Default;

Da uma olhada no tópico 3.5.1 Recepção de Lote de RPS do manual de integração da GINFES lá você vai ver que o XML se compõe também da assinatura, por isso você está recebendo a mensagem de xml invalido porque ele esta incompleto.

Ou seja a assinatura deve fazer parte do XML com tags
Ir para o topo Ir para baixo
kristian.fantin




Mensagens : 10
Data de inscrição : 23/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyTer Nov 27, 2012 3:04 pm

Ola Bruno. Agora estou com problema de assinatura inválida.
Realizei a assinatura tanto da RPS quanto do xml. No entanto, realizei as assinaturas de acordo com pesquisas na net, pois não achei como realizar a assinatura no manual. Encontrei manuais de outras cidades explicando como fazer a assinatura, inclusive com código em VB. Alterei as funções para código em c# e a estrutura do xml validou com o xsd.

Consegue enxergar algum problema com esta função? Função para assinar as RPs.

internal static string AssinarElementos(string xml,
X509Certificate2Collection x509,
String parentElementName,
String elementName,
String attributeName
)
{
XmlDocument document = new XmlDocument();
document.LoadXml(xml);

String elInfID = String.Empty;
SignedXml elSigned = new SignedXml();
RSACryptoServiceProvider Key = new RSACryptoServiceProvider();
KeyInfo keyInfo = new KeyInfo();

//Retira chave privada ligada ao certificado
Key = (RSACryptoServiceProvider)x509[0].PrivateKey;
//Adiciona Certificado ao Key Info
keyInfo.AddClause(new KeyInfoX509Data(x509[0]));

foreach (XmlElement elParentName in document.GetElementsByTagName(parentElementName))
{
string tagParentElementName = elParentName.InnerXml;

XmlDocument doc = new XmlDocument();
doc.LoadXml(tagParentElementName);

foreach (XmlElement elName in doc.GetElementsByTagName(elementName))
{
elInfID = elName.Attributes.GetNamedItem(attributeName).InnerXml;

elSigned = new SignedXml(doc);

//Seta chaves
elSigned.SigningKey = Key;
elSigned.KeyInfo = keyInfo;

Reference reference = new Reference();
reference.Uri = "#" + elInfID;
//Adiciona tranformacao a referencia
reference.AddTransform(new XmlDsigEnvelopedSignatureTransform());
reference.AddTransform(new XmlDsigC14NTransform(false));

//Adiciona referencia ao xml
elSigned.AddReference(reference);
//Calcula Assinatura
elSigned.ComputeSignature();
//Adiciona assinatura
elParentName.AppendChild(document.ImportNode(elSigned.GetXml(), true));

}
}
return document.InnerXml;
}

A chamada da função é a seguinte (após o xml estar pronto, sem assinatura): xml = AssinarElementos(xml, CertificadoCollection, "Rps", "InfRps", "Id");
- CertificadoCollection é uma propriedade que eu tenho para abrir o certificado.
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyTer Nov 27, 2012 4:04 pm

Da uma olhada em uma amostra de como deve ficar o arquivo RPS assinado assim pode lhe ajudar a saber como faz, segue link abaixo:

https://desenvolvimentonfse.forumeiros.com/t140-exemplo-de-xml-versao-301
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Nov 28, 2012 9:24 am

Bom Dia,

Se eu não me engano a tag a ser assinada é a LoteRPS e InfRps. da uma olhada nisso você esta assinando a Tag Rps.
Ir para o topo Ir para baixo
BrunoSilva




Mensagens : 15
Data de inscrição : 18/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Erro java.lang.NullPointerException você teve esse problema   (RESOLVIDO)Webservice GINFES  EmptyTer Dez 04, 2012 9:35 am

quando você iniciou a comunicação com o serviço apresentou algum erro do tipo java.lang.NullPointerException? eu estava lhe ajudando mais não tinha chegado a iniciar a comunicação mas e ai você já conseguiu?

Meu codigo ficou assim:

Código:

ServicoDoAmbienteDeNfeEntity servico = NfeManagerConfiguration.GetInstance().SelecionarServico(ambiente, ServicoDeNotaFiscalEletronicaEnum.NFSeHomologacao);

                NfeXmlSigner.AssinarDocumento(mensagemAEnviar, "NFSe", certificado);

                ServiceGinfesImplService svc = new ServiceGinfesImplService { Url = servico.Endereco };

                svc.SoapVersion = SoapProtocolVersion.Default;

                cabecalho Cabecalho = new cabecalho();
                Cabecalho.versao = "3";
                Cabecalho.versaoDados = "3";

                XmlDocument CabecalhoSerializado = ConstrutorDeMensagem.Serializar(Cabecalho);

                svc.ClientCertificates.Add(certificado);

                if (servico.Salvar)
                {
                    string fileName = string.Format(@"{0:yyyyMMdd\THHmmssff}-{1:000000}-env-lot.xml", DateTime.Now.ToString("yyyyMMddHHmmssff"), lote.ID);
                    OutputWriter.Salvar(fileName, mensagemAEnviar.OuterXml);
                }     

                string mensagemRecebida = svc.RecepcionarLoteRpsV3(CabecalhoSerializado.OuterXml, mensagemAEnviar.OuterXml);


//Quando executa essa parte do codigo apresenta esse erro java.lang.NullPointerException você teve esse problema????

string mensagemRecebida = svc.RecepcionarLoteRpsV3(CabecalhoSerializado.OuterXml, mensagemAEnviar.OuterXml);
Ir para o topo Ir para baixo
kristian.fantin




Mensagens : 10
Data de inscrição : 23/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Dez 05, 2012 6:00 am

Opa, bom dia Bruno.
Não tive esse problema não.

E consegui efetuar a comunicação sim. Agora estou verificando um erro retornado pela ginfes. Mas pelo menos a fase de comunicação já está pronta.

O que eu fiz?
- Dividi o processo em partes:
1) Processar os dados - eu armazeno em uma estrutura de banco de dados as informações que devem ser enviadas pelo serviço.
2) Gero os xmls (tanto o cabeçalho quanto o xml do serviço).
3) Assino o xml do serviço. Essa parte eu apenhei para conseguir fazer - agora tenho as funções prontas para isso - se precisar eu passo.
4) Efetuo a chamada do serviço, mas sem ser OuterXml, passo InnerXml.

O ginfes me retorna o xml com o número do protocolo certinho.
Ir para o topo Ir para baixo
wendel.menegasso




Mensagens : 7
Data de inscrição : 04/12/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  EmptyQua Dez 05, 2012 7:53 am

4) Efetuo a chamada do serviço, mas sem ser OuterXml, passo InnerXml.

Como você faz essa parte?
Você têm algum exemplo pronto?
Grato.
Ir para o topo Ir para baixo
kristian.fantin




Mensagens : 10
Data de inscrição : 23/10/2012

(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Exemplo:   (RESOLVIDO)Webservice GINFES  EmptyQua Dez 05, 2012 8:04 am

wendel.menegasso escreveu:
4) Efetuo a chamada do serviço, mas sem ser OuterXml, passo InnerXml.

Como você faz essa parte?
Você têm algum exemplo pronto?
Grato.



private static string Envelope(X509Certificate2 certificate, XmlDocument cabecalho, XmlDocument document, string url, string metodo)
{
try
{
string xml = document.InnerXml;
string cabecalho = cabecalho.InnerXml;
string retorno = String.Empty;

ServiceGinfesImplService sv = new ServiceGinfesImplService();
sv.ClientCertificates.Add(certificate);
sv.SoapVersion = System.Web.Services.Protocols.SoapProtocolVersion.Default;
sv.Url = url;

switch (metodo)
{
case "RecepcionarLoteRpsV3":
xml = Util.AssinarRps(xml, "InfRps", "Id", Enum.AppendTypeEnum.After, certificate);
xml = Util.Assinar(xml, certificate);

retorno = sv.RecepcionarLoteRpsV3(cabecalho, xml);

return retorno;

case "ConsultarLoteRpsV3":
xml = Util.Assinar(xml, certificate);

retorno = sv.ConsultarLoteRpsV3(cabecalho, xml);

return retorno;

default:
throw new Exception(String.Format(Leitura._error, "O método informado não foi implementado", "Envelope"));
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Ir para o topo Ir para baixo
Conteúdo patrocinado





(RESOLVIDO)Webservice GINFES  Empty
MensagemAssunto: Re: (RESOLVIDO)Webservice GINFES    (RESOLVIDO)Webservice GINFES  Empty

Ir para o topo Ir para baixo
 
(RESOLVIDO)Webservice GINFES
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» [Resolvido]RecepcionarLoteRpsV3 Ginfes
» (RESOLVIDO)Instabilidade Serviço WebService
» (RESOLVIDO)TESTE WebService
» (RESOLVIDO)Argumentos do WebService V3
» (RESOLVIDO)WebService V3 Cancelamento

Permissões neste sub-fórumNão podes responder a tópicos
Desenvolvimento NFS-e  :: WebServices-
Ir para: