이 버전은 쓸모 없게되었습니다. 이전 유효성 검사 버전의 서명을 구현하려면 eacturacolombia_v2.v2 모듈을 사용하십시오 .
Eacturacolombia. C#에서 개발 된 비공식 서점으로, 전자 청구 프로세스를 위해 콜롬비아의 Dian에 제시되는 사인 XML 문서 (송장 및 차변 메모)를 허용합니다.
2019 년 1 월 1 일 이후 콜롬비아의 납세자를위한 전자 청구는 의무적이며 현재 많은 회사와 의무적 인 사람들이이를 시행하지 않았습니다.
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
이는 회사의 라이브러리에서 생성 한 인증서가 이시에 유효하지 않음을 의미합니다.이 경우이 경우 인증서 제공 업체의 유효한 체인의 요청에 따라 FirmaElectronica 클래스의 EmisorCertificado 속성을 사용하여 수동으로 할당합니다.
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 [email protected]
학사 아카이브에서 세부 정보를 검토하십시오.
이 프로젝트의 저자는 시간의 이유로 간단하지 않은 경우 (의무가 없음) 구현을 지원하지 않습니다.
반면 에이 프로젝트의 저자는 전체 전자 청구 프로세스에 대한 .NET 결제 솔루션과 구현에 대한 조언을 처리합니다 .