Exemple #1
0
        /// <summary>
        /// Assina o CTe.
        /// </summary>
        /// <param name="certificado">The certificado.</param>
        /// <param name="saveOptions">The save options.</param>
        public void Assinar(X509Certificate2 certificado, DFeSaveOptions saveOptions)
        {
            Guard.Against <ArgumentNullException>(certificado == null, "Certificado não pode ser nulo.");

            if (InfCTe.Id.IsEmpty() || InfCTe.Id.Length < 44)
            {
                var chave = ChaveDFe.Gerar(InfCTe.Ide.CUF, InfCTe.Ide.DhEmi.DateTime,
                                           InfCTe.Emit.CNPJ, (int)InfCTe.Ide.Mod, InfCTe.Ide.Serie,
                                           InfCTe.Ide.NCT, InfCTe.Ide.TpEmis, InfCTe.Ide.CCT);

                InfCTe.Id      = $"CTe{chave.Chave}";
                InfCTe.Ide.CDV = chave.Digito;
            }

            AssinarDocumento(certificado, saveOptions, false, SignDigest.SHA1);
        }
Exemple #2
0
        public void ChaveDFe_Gerar_DeveGerarChaveValida()
        {
            // Arrange
            const string chaveEsperada = "35160810873538000245550010000000111504749126";

            // Act
            var chave = ChaveDFe.Gerar(
                CodigoUF.SP,
                new DateTime(2016, 08, 01),
                "10873538000245",
                55,
                1,
                11,
                TipoEmissao.Normal,
                50474912
                );

            // Assert
            Assert.Equal(chaveEsperada, chave.Chave);
        }
Exemple #3
0
 public void ChaveDFe_Validar_DeveRetornarTrueCasoChaveForValida(string chaveValida)
 {
     // Assert
     Assert.True(ChaveDFe.Validar(chaveValida));
 }