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 |
Citação:
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 |
é 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 |
Citação:
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 |
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?
|
Citação:
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 |
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 |
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 |
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 |
Citação:
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