FONTE NFE VB.NET

LEANDROSHURA 08/09/2010 11:00:34
#352452
Otavio, estou com o pequeno problema na assinatura do cancelamento...
nao consigo assinar dentro da tag cancNfe esta ficando fora

segue o metedo - é uma pequena adaptação do daniel

Public Function AssinarCancelamento(ByVal docXML As XmlDocument, ByVal pUri As String, ByVal pCertificado As X509Certificate2) As XmlDocument
Try
Dim cert As X509Certificate2 = pCertificado
Dim doc As New XmlDocument()
doc.PreserveWhitespace = False
doc = docXML
Dim signedXml As New SignedXml(doc)
signedXml.SigningKey = cert.PrivateKey
Dim reference As New Reference()

[ô] uri que deve ser assinada (infCanc)

Dim _Uri As XmlAttributeCollection = doc.GetElementsByTagName(pUri).Item(0).Attributes
For Each _atributo As XmlAttribute In _Uri
If _atributo.Name = [Ô]Id[Ô] Then
reference.Uri = [Ô]#[Ô] & _atributo.InnerText
End If
Next
Dim env As New XmlDsigEnvelopedSignatureTransform()
reference.AddTransform(env)
Dim c14 As New XmlDsigC14NTransform()
reference.AddTransform(c14)
signedXml.AddReference(reference)
Dim keyInfo As New KeyInfo()
keyInfo.AddClause(New KeyInfoX509Data(cert))
signedXml.KeyInfo = keyInfo
signedXml.ComputeSignature()
Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()
doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))


If TypeOf doc.FirstChild Is XmlDeclaration Then
doc.RemoveChild(doc.FirstChild)
End If

Return doc
Catch ex As Exception
Throw New Exception([Ô]Seguinte erro ao assinar: [Ô] & ex.Message)
End Try
End Function

rola uma ajuda
ta ficando assim

<?xml version=[Ô]1.0[Ô] encoding=[Ô]utf-8[Ô] ?>
- <procCancNFe versao=[Ô]2.00[Ô] xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô]>
- <cancNFe xmlns=[Ô]http://www.portalfiscal.inf.br/nfe[Ô] versao=[Ô]2.00[Ô]>
- <infCanc Id=[Ô]ID0[Ô]>
<tpAmb>2</tpAmb>
<xServ>CANCELAR</xServ>
<chNFe>0</chNFe>
<nProt>0</nProt>
<xJust>desacordo comercial</xJust>
</infCanc>
</cancNFe>
- <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=[Ô]#ID0[Ô]>
- <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>YFEdzikR9gXvVjncsl/y+xTAVI4=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>VSaNx642Qg6Z90AqzBTSIMOVHjVQMxc2MqmuwL+Svpi7kTNeQEQE/vh0MYaU8DMB9LMxZBeOfi7gnOBUwMdk/NcVubKf4t3to4Bt+ZUy+81XPLjLhlsbrlyBMse8MPJoE8EFmfmb8MhqfazR4jONqXPMhVBG7MApApFTqfXAPPk=</SignatureValue>
- <KeyInfo>
- <X509Data>
<X509Certificate>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</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</procCancNFe>
OTAVIOFAVERO 08/09/2010 15:55:50
#352478
verifique a uri se esta correta [Ô]infCanc[Ô]


logo abaixo e o que eu uso para assinar os meus xml 2.00 de inutilizaçao, cancelamento, e recepção


Assinatura.Assinar(dll_rocket_nfe.rocket_Funcao.NomeArquivo, [Ô]infCanc[Ô], dll_rocket_nfe.rocket_Certificado.oCertificado, dll_rocket_nfe.rocket_Funcao.NomeArquivo)


Public Sub Assinar(ByVal strArqXMLAssinar As String, ByVal strUri As String, ByVal x509Certificado As X509Certificate2, ByVal strArqXMLAssinado As String)
[ô]Atualizar atributos de retorno com conteúdo padrão
Me.intResultado = 0
[ô]this.vResultadoString = [Ô]Assinatura realizada com sucesso[Ô];

Dim SR As StreamReader = Nothing

Try
[ô]Abrir o arquivo XML a ser assinado e ler o seu conteúdo
SR = File.OpenText(strArqXMLAssinar)
Dim vXMLString As String = SR.ReadToEnd()
SR.Close()

Try
[ô] Verifica o certificado a ser utilizado na assinatura
Dim _xnome As String = [Ô][Ô]
If x509Certificado IsNot Nothing Then
_xnome = x509Certificado.Subject.ToString()
End If

Dim _X509Cert As New X509Certificate2()
Dim store As New X509Store([Ô]MY[Ô], StoreLocation.CurrentUser)
store.Open(OpenFlags.[ReadOnly] Or OpenFlags.OpenExistingOnly)
Dim collection As X509Certificate2Collection = DirectCast(store.Certificates, X509Certificate2Collection)
Dim collection1 As X509Certificate2Collection = DirectCast(collection.Find(X509FindType.FindBySubjectDistinguishedName, _xnome, False), X509Certificate2Collection)

If collection1.Count = 0 Then
Throw New Exception([Ô]O rocketnfe detectou problemas com o certificado digital. (Código do Erro: 2)[Ô])
[ô]this.vResultadoString = [Ô]Problemas no certificado digital[Ô];
Me.intResultado = 2
Else
[ô] certificado ok
_X509Cert = collection1(0)
Dim x As String
x = _X509Cert.GetKeyAlgorithm().ToString()

[ô] Create a new XML document.
Dim doc As New XmlDocument()

[ô] Format the document to ignore white spaces.
doc.PreserveWhitespace = False

[ô] Load the passed XML file using it’s name.
Try
doc.LoadXml(vXMLString)

[ô] Verifica se a tag a ser assinada existe é única
Dim qtdeRefUri As Integer = doc.GetElementsByTagName(strUri).Count

If qtdeRefUri = 0 Then
[ô] a URI indicada não existe
Throw New Exception([Ô]A tag de assinatura [Ô] & strUri.Trim() & [Ô] não existe no XML. (Código do Erro: 4)[Ô])
Me.intResultado = 4
Else
[ô] Exsiste mais de uma tag a ser assinada
If qtdeRefUri > 1 Then
[ô] existe mais de uma URI indicada
Throw New Exception([Ô]A tag de assinatura [Ô] & strUri.Trim() & [Ô] não é unica. (Código do Erro: 5)[Ô])
Me.intResultado = 5
Else
If doc.GetElementsByTagName([Ô]Signature[Ô]).Count = 0 Then
[ô]Documento ainda não assinado (Se já tiver assinado não vamos fazer nada, somente retornar ok para continuar o envio). Wandrey 12/05/2009
Try
[ô] Create a SignedXml object.
Dim signedXml As New SignedXml(doc)

[ô] Add the key to the SignedXml document
signedXml.SigningKey = _X509Cert.PrivateKey

[ô] Create a reference to be signed
Dim reference As New Reference()

[ô] pega o uri que deve ser assinada
Dim _Uri As XmlAttributeCollection = doc.GetElementsByTagName(strUri).Item(0).Attributes
For Each _atributo As XmlAttribute In _Uri
If _atributo.Name = [Ô]Id[Ô] Then
reference.Uri = [Ô]#[Ô] & _atributo.InnerText
End If
Next

[ô] Add an enveloped transformation to the reference.
Dim env As New XmlDsigEnvelopedSignatureTransform()
reference.AddTransform(env)

Dim c14 As New XmlDsigC14NTransform()
reference.AddTransform(c14)

[ô] Add the reference to the SignedXml object.
signedXml.AddReference(reference)

[ô] Create a new KeyInfo object
Dim keyInfo As New KeyInfo()

[ô] Load the certificate into a KeyInfoX509Data object
[ô] and add it to the KeyInfo object.
keyInfo.AddClause(New KeyInfoX509Data(_X509Cert))

[ô] Add the KeyInfo object to the SignedXml object.
signedXml.KeyInfo = keyInfo
signedXml.ComputeSignature()

[ô] Get the XML representation of the signature and save
[ô] it to an XmlElement object.
Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()

[ô] Gravar o elemento no documento XML
doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))
XMLDoc = New XmlDocument()
XMLDoc.PreserveWhitespace = False
XMLDoc = doc

[ô] Atualizar a string do XML já assinada
Me.vXMLStringAssinado = XMLDoc.OuterXml

[ô] Gravar o XML Assinado no HD
Dim SW_2 As StreamWriter = File.CreateText(strArqXMLAssinado)
SW_2.Write(Me.vXMLStringAssinado)
SW_2.Close()
Catch caught As Exception
If intResultado = 0 Then
Me.intResultado = 3
End If
Throw (caught)
End Try
End If
End If
End If
Catch caught As Exception
If intResultado = 0 Then
Me.intResultado = 6
End If
Throw (caught)
End Try
End If
Catch caught As Exception
If intResultado = 0 Then
Me.intResultado = 1
End If

Throw (caught)
End Try
Catch ex As Exception
If intResultado = 0 Then
Me.intResultado = 7
End If

Throw (ex)
Finally
SR.Close()
End Try
End Sub
LEANDROSHURA 09/09/2010 09:34:54
#352508
Opa,
deu certo aqui otavio. valeu

acho que terminei...
ALEXANDRECE 09/09/2010 14:26:46
#352525
Boa tarde pessoal, sou novato no fórum tenho responsabilidade de implantar Nota Fiscal Eletrônica 2.0...

Algum de vocês tem algum projetinho de exemplo em c# ou vb.net? que possa me ajudar...
minhas maiores dúvidas são:

- Comunicar com o webservice
- Criar os lotes
-Assinar Digitalmente os arquivos xml

Se alguém puder me ajudar eu agradeço...

Meu Gmail é horizonprog@gmail.com ou horizonprog@hotmail.com

DANIELCPAETE 09/09/2010 16:20:14
#352541
ALEXANDRECE Nestas paginas do tópico tem tudo que necessita.
RODRIGUESRM 10/09/2010 16:17:07
#352652
Pessoal,

Alguém consegui fazer a inutilização e cancelamento?

Tentei baixar o arquivo postado pelo OTAVIOFAVERO, mas o mesmo encontra-se corrompido...

Se alguém consegui baixa com sucesso, por favor, encaminhe no meu email, ou poste-o novamente...
OTAVIOFAVERO 10/09/2010 19:05:15
#352678
Citação:

:
Pessoal,

Alguém consegui fazer a inutilização e cancelamento?

Tentei baixar o arquivo postado pelo OTAVIOFAVERO, mas o mesmo encontra-se corrompido...

Se alguém consegui baixa com sucesso, por favor, encaminhe no meu email, ou poste-o novamente...



baixe de outro pc

abç
LEANDROSHURA 11/09/2010 20:33:13
#352749
RODRIGUESRM,
a inutilizaçao e cancelamento é tranquilo, qual o seu problema exatamente? talvez eu possa te ajudar
DUHHH 13/09/2010 09:22:28
#352825
[Ô]Ato COTEPE 13/10 - reduziu o prazo máximo de cancelamento da NF-e para 24 horas da autorização de uso, o novo prazo de cancelamento começa a valer a partir de 01/01/2011.[Ô]

http://www.fazenda.gov.br/confaz/confaz/atos/atos_cotepe/2010/ac013_10.htm
OTAVIOFAVERO 13/09/2010 09:25:41
#352826
Citação:

:
[Ô]Ato COTEPE 13/10 - reduziu o prazo máximo de cancelamento da NF-e para 24 horas da autorização de uso, o novo prazo de cancelamento começa a valer a partir de 01/01/2011.[Ô]

http://www.fazenda.gov.br/confaz/confaz/atos/atos_cotepe/2010/ac013_10.htm



valeu duhhh eu vou alterar la o meu post e organizar melhor! e vou gerar um banco de dados tambem! para disponivilizar ao topico!
valeu
Página 40 de 228 [2276 registro(s)]
Faça seu login para responder