Эта версия устарела; Чтобы реализовать подписание предыдущей версии проверки, используйте модуль efacturacolombia_v2.v2 .
Экфураколомбия. Это неофициальный книжный магазин, разработанный в C#, который позволяет подписать документы XML (счета и дебетовые заметки), которые представлены Диану Колумбии для электронного процесса выставления счетов.
С 1 января 2019 года электронный выставление налогоплательщиков в Колумбии будет обязательным, и в настоящее время многие компании и обязательные лица не внедрили его.
Хотя технической информации, предоставленной Dian, должна быть достаточной, поиск ресурсов .NET для этого процесса оказывается довольно сложной. Генерация документов XML и веб -служб может быть трудоемким, но может быть сделано без неудобств, однако фирма, требуемой Dian, может быть чрезвычайно трудно сделать, до такой степени, что необходимо для приобретения дорогостоящих решений.
Этот книжный магазин выпускается с целью облегчения реализации на платформах .NET.
Чтобы сгенерировать, подписать и выпустить электронные документы (счета и заметки о дебетовом/кредитах) перед Dian, должны быть выполнены следующие требования:
Для получения дополнительной информации см. Ресурсы, доступные в Dian - Electronic Billing.
FirmaElectronica содержит простой метод (в трех вариантах), чтобы подписать электронные документы, что возвращает массив байтов, полученных:
using eFacturacionColombia ;
using eFacturacionColombia . Firma ;
// crear instancia
var firma = new FirmaElectronica
{
RolFirmante = RolFirmante . FACTURANTE ,
RutaCertificado = "path/to/certificate.p12" ,
ClaveCertificado = "password here"
} ;
// usar horario colombiano
var fecha = DateTimeHelper . GetColombianDate ( ) ;
// variante 1:
// firmar archivo
var archivoXml = new FileInfo ( "path/to/unsigned-factura.xml" ) ;
var bytesArchivoFirmado = firma . Firmar ( archivoXml , TipoDocumento . FACTURA , fecha ) ;
// variante 2:
// firmar contenido
var contenidoXml = "<?xml ..." ;
var bytesContenidoFirmado = firma . Firmar ( contenidoXml , TipoDocumento . FACTURA , fecha ) ;
// variante 3:
// firmar bytes
var bytesXml = new byte [ 13042 ] ;
var bytesXmlFirmado = firma . Firmar ( bytesXml , TipoDocumento . FACTURA , fecha ) ;
// guardar xml (opcional)
File . WriteAllBytes ( "path/to/signed-factura.xml" , bytesXmlFirmado ) ;Если техническая проверка фирмы генерирует следующую ошибку (из веб -службы):
com.indra.mmdd.signature.exceptions.ValidateException: xades4j.verification.CertRefUtils$1: Verification failed for property 'SigningCertificate': Invalid issue name
Это означает, что сертификат имени , сгенерированное библиотекой - фирмы недопустим, в данном случае запрос от поставщика сертификата действительную цепочку, и назначить ее вручную, используя свойство EmisorCertificado класса FirmaElectronica :
var firma = new FirmaElectronica
{
RolFirmante = RolFirmante . FACTURANTE ,
RutaCertificado = "path/to/certificate.p12" ,
ClaveCertificado = "password here" ,
EmisorCertificado = "C=CO,L=Bogota D.C.,O=..."
} ; Примечание. Получившись в результате процесса, не следует изменять (передавая их в другое кодирование или загрузку их в XmlDocument ), прежде чем сохранить или сжать их, чтобы отправить их Диану, потому что они лишают анвалификации фирмы.
В этом проекте используются следующие книжные магазины:
Хотя этот репозиторий не из открытых конструкций , его можно внести:
Мигель Уэртас контакт по адресу@miguel-huertas.net
Подробности обзора в архиве бакалавра.
Автор этого проекта, по временным причинам, не будет оказывать поддержку реализации, если это не что -то простое (без обязательного).
С другой стороны, автор этого проекта, предоставляется в вашем распоряжении платежное решение .NET для всего электронного процесса выставления счетов, а также совета по его реализации .