/// <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); }
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); }