Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ronaldo Bueno

Conectar WebService

Recommended Posts

estou achando que seu certificado está com problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode ser, porque quando digito a url do post aparece a janela p confirmar o certificado e abre a pagina. Outro teste que fiz foi entrar no site da nfse com o certificado e consigo na boa.

 

Esqueci de um detalhe. O mesmo certificado que assina o xml com .NET e esta tudo ok

 

mudei o código. peguei esse de um amigo na net.

 

<code>

<%

sUrl = "https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx?WSDL"

Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

Set xmlResult = Server.CreateObject("MSXML2.DomDocument.3.0")

xmlResult.async = False

xmlhttp.Open "POST", sUrl, False

xmlhttp.Send strXML 'Envia o XML

xmlhttp.waitForResponse 200

xmlResult.loadXML(xmlhttp.ResponseText)

response.write "Retorno XML inicio <BR><hr>"

if xmlResult.parseError.errorCode <> 0 then

response.write "Cod ERRO: " & xmlResult.parseError.errorCode

response.write "<br>"

response.write "Desc. ERRO: " & xmlResult.parseError.reason

else

Response.write xmlhttp.ResponseText

End if

response.write "<BR><hr>Retorno XML FIM<br>"

response.End()

%>

</code>

 

ele insiste em dar erro.

 

só que agora é dizendo que requer o certificado, mas esta instalado

 

<font face="Arial" size=2>

<p>msxml6.dll</font> <font face="Arial" size=2>error '80072f0c'</font>

<p>

<font face="Arial" size=2>A certificate is required to complete client authentication

</font>

Compartilhar este post


Link para o post
Compartilhar em outros sites

remove ele e todas as entradas no regedit também

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xan, fui ver os certificados no regedit

HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\My\Certificates

Mas não aparece nada na pasta

 

Quando vou no IE ou digitando certmgr.msc aparece todos. achei estranho, sabe o que pode ser ?

 

 

estava lendo a respeito no link

http://support.microsoft.com/kb/294266

e pelo que entendi é da parte do servidor, correto?

 

Poxa, estou vendo que de alguma forma existe uma certa omissão de ajuda em alguns assuntos.Porque isso acontece? O maior site de fórum hoje no Brasil ainda esta limitado para um ou outro usuário.Será que ninguém fez isso em ASP? Claro que não, mas conhecimento ainda é tratado como um “êxito” e não como aprendizado.Percebi um tempo atras que minhas dúvidas não eram respondidas porque de alguma maneira estava errado no meu conceito e sempre perguntava, mas pouco ajudava, então resolvi ajudar no que posso, mas mesmo assim, as pessoas que tem êxito profissional se limita a ajudar. Porque será?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ronaldo procure desenvolver em aspx assim terá mais suporte com asp clássico esse webservice de nfe é mais exigente com ações de certificado... com aspx tem procedimento para chamar a janela para escolher o certificado... pois não vai aparecer sozinho não... também estou nessa problemática só consegui chamar a janela do certificado pelo javascript usando CAPiCOM que ainda só aparece no Internet Explorer.... no FF e no Chrome não funciona... estou vendo outros caminhos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gustavo. Valeu pela resposta.

 

Mas essa rotina é só eu quem vai usat, então posso usar pelo IE sem problemas, mas deixa eu ver se entendi:

 

Quando chamo o webservice ele tem q aparecer a janela? Não é automático? Quando eu digito a url da prefeitura no browser aparece a janela, mas pensei que era somente para teste.

 

Voce chamou a janela em javascript? Teria como me passar?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

claro!!!! onde está Gustavo abaixo coloque o texto do xml para assinar... ressalto só funciona no IE

 

 

<script language="JavaScript" >
document.write (signDigest("Gustavo"));
function signDigest(text) {
if(window.event)
window.event.cancelBubble = true;
var dest = sign(text); //TODO
return dest;
}
// CAPICOM constants
var CAPICOM_STORE_OPEN_READ_ONLY = 0;
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
var CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;
var CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;
var CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;
var CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 0x00000080;
var CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;
var CAPICOM_INFO_SUBJECT_SIMPLE_NAME = 0;
var CAPICOM_ENCODE_BASE64 = 0;
var CAPICOM_E_CANCELLED = -2138568446;
var CERT_KEY_SPEC_PROP_ID = 6;
function IsCAPICOMInstalled() {
if(typeof(oCAPICOM) == "object") {
if( (oCAPICOM.object != null) ) {
// We found CAPICOM!
return true;
}
}
}
function FindCertificateByHash() {
try {
// instantiate the CAPICOM objects
var MyStore = new ActiveXObject("CAPICOM.Store");
// open the current users personal certificate store
MyStore.Open(CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY);
// find all of the certificates that have the specified hash
var FilteredCertificates = MyStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, strUserCertigicateThumbprint);
var Signer = new ActiveXObject("CAPICOM.Signer");
Signer.Certificate = FilteredCertificates.Item(1);
return Signer;
// Clean Up
MyStore = null;
FilteredCertificates = null;
} catch (e) {
if (e.number != CAPICOM_E_CANCELLED) {
return new ActiveXObject("CAPICOM.Signer");
}
}
}
function sign(src) {
if(window.crypto && window.crypto.signText)
return sign_NS(src);
return sign_IE(src);
}
function sign_NS(src) {
var s = crypto.signText(src, "ask" );
return s;
}
function sign_IE(src) {
try {
// instantiate the CAPICOM objects
var SignedData = new ActiveXObject("CAPICOM.SignedData");
var TimeAttribute = new ActiveXObject("CAPICOM.Attribute");
// Set the data that we want to sign
SignedData.Content = src;
var Signer = FindCertificateByHash();
// Set the time in which we are applying the signature
var Today = new Date();
TimeAttribute.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
TimeAttribute.Value = Today.getVarDate();
Today = null;
Signer.AuthenticatedAttributes.Add(TimeAttribute);
// Do the Sign operation
var szSignature = SignedData.Sign(Signer, true, CAPICOM_ENCODE_BASE64);
return szSignature;
} catch (e) {
if (e.number != CAPICOM_E_CANCELLED) {
alert("An error occurred when attempting to sign the content, the errot was: " + e.description);
}
}
return "";
}
</script>


estamos juntos nessa

 

att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela força Gustavo.

 

Não entendi direito, éssa rotina é para assinar o xml com certificado? Isso ja esta funcionando, inclusive estou enviando ele para meu email (apenas de teste) e esta vindo tudo certinho.

 

Sei que posso ter problemas com as tags em xml, mas sem enviar e receber resposta do webservice não consigo ver os erros kkk.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ronaldo ... o script que envolve o CAPICOM não assina seguindo os padrões da Nfe e o CAPICOM foi descontinuada pela Microsoft agora quem esta em uso é o X509certificate mas infelizmente o ASP 3 não dá suporte a tal recurso somente o ASPX ... e o capicom só funciona no IE se o usuário usa o firefox já era... rsrs... te confesso que isso tá dando uma dor de cabeça...

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

também pode usar ASP.Net, como citado já, os arquivos ASP e ASP.net trabalham junto e não tem problema, tente listar os certificados com CAPICOM em JavaScript e passando pro ASP ou ASP.Net, exporte o Certificado em JavaScript e gere uma string criptografada, e dá uma olhada neste Opensource -> http://opennfe.codeplex.com/

 

ou também usar o componente ACBrNFe - Baixe o TortoiseSVN (http://tortoisesvn.net/downloads)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xan, link quebrado.

 

Gustavo,Com a assinatura não tenho problemas, o que não estou conseguindo fazer é enviar o XML. Ja fiz de tudo, rodei tudo e não encontro nada, mesmo que fosse em PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada aqui, é em .Net, mas veja como ele esta fazendo e coloque em ASP. o seu XML esta conforme padrão de layout definido em arquivos de Schema disponibilizados pelo Governo como Pacotes de Liberação

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse XML esta assinado. Olha este XML da NFe aprovada com a informação da aprovação (protocolo, digest value e etc)

 

http://www.sefaz.rs.gov.br/ASP/Download/NFe/11_143060000294904_v01.00-procNFe.xml

 

veja se o xml esta com erros de estrutura

Compartilhar este post


Link para o post
Compartilhar em outros sites

estranho, pois com o XML correto, certificado correto....

ele esta gerando algum erro ?

vc tentou simular no site da NFe

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta a Tag da assinatura digital no seu XML.

vc tem a chave de Acesso da Nota Fiscal ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta assim:

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI="#"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><DigestValue>j448AD9r6So8TytSS9HvVoY7AH8=</DigestValue></Reference></SignedInfo><SignatureValue>TCgYjWzXxWeG67q/tw/2pGPP0bAIhdqCnVIF5Raa+q76bhdlcMLzTTHEM5m9vzJNeA2VfunTEreVB3VYZmkEDCBQlPxYpfGo5TQL82X9rbPkEUs0RoONxmm7LPSXQxn7T15DDO6jj2TSTmfwBJjF59yYrgqD47J8egRxHg/amfpM8Mf/+32wd2/Y/kWCgszYzaPVkyYbKIrb3zyLqM1Dh7+W+T+LJGbnx+HXyrwX2N/VJWoiVyKy5Re821d4XmDEyh8YUQI642iNVK4aZIEOXtjNqqsrXHlEtdnJWzC9wBTtHRwnzCfMsIFo9BehW2NYJfqFs0lxwD5g6hsVc3JZsw==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.