OpenNFSe

OpenNFSe (http://www.opennfse.com.br/forums/index.php)
-   Ajuda sobre código fonte (http://www.opennfse.com.br/forums/forumdisplay.php?f=5)
-   -   Ajuda com envio do xml (http://www.opennfse.com.br/forums/showthread.php?t=29)

Rave 31/03/2010 10:31

Ajuda com envio do xml
 
Bom dia, eu estou com um problema no envio do XML que é o seguinte

http://img67.imageshack.us/img67/613...entication.jpg

mas o certificado esta instalado na maquina e até abre a janela pra seleciona-lo (antes de pedir o PIN)

Gostaria de saber se alguem pode me ajudar com isso

Atenciosamente
Rave

LuizVaz 05/04/2010 00:54

Citação:

Postado Originalmente por Rave (Post 57)
Bom dia, eu estou com um problema no envio do XML que é o seguinte

http://img67.imageshack.us/img67/613...entication.jpg

mas o certificado esta instalado na maquina e até abre a janela pra seleciona-lo (antes de pedir o PIN)

Gostaria de saber se alguem pode me ajudar com isso

Atenciosamente
Rave


Qual é a marca e modelo do seu certificado?
É só arquivo ou é um token?
Você está digitando a senha corretamente?
Já conseguiu fazer alguma operação no site da PBH usando o token?

Qual a versão do Delphi que você está usando?

Att,
Luiz Vaz

Rave 05/04/2010 14:43

é um eToken da pronova (epass2000) se não me engano é do tipo A3
ja foi feito operações com ele no site da pbh
estou digitando a senha corretamente
e uso o delphi 7

LuizVaz 06/04/2010 14:12

Citação:

Postado Originalmente por Rave (Post 59)
é um eToken da pronova (epass2000) se não me engano é do tipo A3
ja foi feito operações com ele no site da pbh
estou digitando a senha corretamente
e uso o delphi 7

Esse problema acontece às vezes por causa do Middleware estar desatualizado.
O seu token é o ePass2000_FT12.
E ele usa o Middleware ePassNG Multi-platform para Microsoft CSP e PKCS#11 v2.11.
Pelo visto o pessoal da Pronova só te passou o ePass2000_FT12 Windows Redistributable Package v1.1.

Baixe o ePass2000_FT12 Windows Middleware v1.18 usando esse link:
http://www.mediafire.com/file/zumtyyjkotz/ePass2000FT12_Middleware_V1.18.zip
O site oficial tem que fazer login e é muito lento.
Então já fiz o download e coloquei no mediafire.
OBS.: A senha é rockey.

Desinstale o antigo, antes de instalar esse.

Não se esqueça de atualizar o SOAP do Delphi7 e de atribuir um certificado através do InternetSetOption usando INTERNET_OPTION_CLIENT_CERT_CONTEXT.
No WebService_INET tem essas informações.

Teste e me responda.

Att,
Luiz Vaz

Rave 08/04/2010 10:22

mas luiz, eu tenho sua aplicação aqui separado do projeto que etsou desenvolvendo e ela funciona normalmente.... se fosse questão Middleware acho que a sua aplicação não funcionaria, ou estou errado?

LuizVaz 15/04/2010 22:30

Citação:

Postado Originalmente por Rave (Post 61)
mas luiz, eu tenho sua aplicação aqui separado do projeto que etsou desenvolvendo e ela funciona normalmente.... se fosse questão Middleware acho que a sua aplicação não funcionaria, ou estou errado?

Então é isso mesmo.
Está faltando você informar ao SOAP que você vai usar o certificado.

Olha no evento BeforePost do HTTPRIO.HTTPWebNode.
É nessa hora que informo ao SOAP que tem que autenticar o SSL.

Att,
Luiz Vaz

Rave 19/04/2010 14:56

bom luiz, quando eu estava estudando o seu fonte para fazer aqui no sistema, e eu esqueci de mexer nesta parte, mas o estranho é que quando coloquei a rotina correta quando faz a chamada do beforepost, da um access violation que nem chega a entrar no evento.... tem ideia do que seja?

{ Content-Type }
HttpAddRequestHeaders(Request, PChar(ContentHeader), Length(ContentHeader), HTTP_ADDREQ_FLAG_ADD);

{ Before we pump data, see if user wants to handle something - like set Basic-Auth data?? }
if Assigned(FOnBeforePost) then
FOnBeforePost(Self, Request);

essa é a chamada do before post, na unit SOAPHTTPTrans


procedure Tform_nfe.HTTPRIOHTTPWebNode1BeforePost(
const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
Cert : ICertificate2;
CertContext : ICertContext;
PCertContext : Pointer;

begin
showmessage('entrou no before post');
Cert := PegaCertificado;
CertContext := Cert as ICertContext;

CertContext.Get_CertContext(Integer(PCertContext)) ;

try
InternetSetOption(@Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, @PCertContext, sizeof(CertContext)*5)
except

end;

end;

esse é o evento beforepost mas debugando o erro acontece no begin, até cheguei a colocar o showmessage pra ver e realmente não entra no evento, sera que esqueci de instanciar algum objeto, ou perdeu alguma referencia?

brigadao pela força cara

LuizVaz 23/04/2010 15:52

Parece que o problema está nas declarações das Interfaces.
Se você está usando a unit MSXML2 que vem com o Delphi, eu tive esse problema.

Faça um teste, colocando o evento sem nenhum código com referência às interfaces.
Só com o showmessage.

Se for isso mesmo, basta você reimportar a MSXML2 criando o arquivo MSXML2_TLB.
Mas não adicione ele ao seu projeto, coloque simplesmente na clausula USES.

Att,
Luiz Vaz

Rave 26/04/2010 11:49

luiz, aconteceu exatamente isso, com o showmessage apenas, o evento funcionou normalmente, como eu peguei esse projeto na metade nao tenho certeza de qual unit estavam usando e o desenvolvedor antigo ja nao está mais na empresa, mas aqui no uses tem um acbrMSXML2_TLB
voce sabe se esta é uma unit padrao divulgada na net para o NFSe e se ela contem o mesmo tipo de erro que tem na padrao do delphi?

e desculpe minha ignorancia, pois não conheço muito dessa parte do delphi, mas como faço para reimportar esta unit? ela é tipo uma package que tenho que compilar novamente?

Obrigado
Marconi Maia

LuizVaz 28/04/2010 16:07

Citação:

Postado Originalmente por Rave (Post 82)
luiz, aconteceu exatamente isso, com o showmessage apenas, o evento funcionou normalmente, como eu peguei esse projeto na metade nao tenho certeza de qual unit estavam usando e o desenvolvedor antigo ja nao está mais na empresa, mas aqui no uses tem um acbrMSXML2_TLB
voce sabe se esta é uma unit padrao divulgada na net para o NFSe e se ela contem o mesmo tipo de erro que tem na padrao do delphi?

e desculpe minha ignorancia, pois não conheço muito dessa parte do delphi, mas como faço para reimportar esta unit? ela é tipo uma package que tenho que compilar novamente?

Obrigado
Marconi Maia

Não precisa,

Basta pegar a mesma unit do meu exemplo e copiar por cima.
Remova tudo que tenha acbrMSXML2_TLB e as referências a ela.
E adicione as referências para MSXML2_TLB do exemplo.

Att,
Luiz Vaz


Horários baseados na GMT -2. Agora são 01:33.

vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.3.0