このバージョンは時代遅れになりました。以前の検証バージョンの署名を実装するには、efacturacolombia_v2.v2モジュールを使用してください。
efacturacolombia。これは、C#で開発された非公式の書店であり、電子請求プロセスのためにコロンビアのダイアンに提示されるXMLドキュメント(請求書とデビットノート)を許可します。
2019年1月1日以降、コロンビアの納税者に対する電子請求は必須であり、現在、多くの企業や義務者がそれを実施していません。
ダイアンが提供する技術情報は十分でなければなりませんが、このプロセスの.NETリソースを見つけることは非常に困難であることがわかります。 XMLドキュメントとWebサービスの生成は面倒ですが、不便なくすることができますが、Dianが必要とする会社は、高価なソリューションを獲得するために必要であるという点まで非常に困難になる可能性があります。
この書店は、.NETプラットフォームでの実装を促進することを目的としてリリースされます。
ダイアンの前に電子文書(請求書とデビット/クレジットのメモ)を生成、署名、発行するには、次の要件を満たす必要があります。
詳細については、Dian -Electronic Billingで利用可能なリソースを参照してください。
FirmaElectronicaクラスには、電子文書に署名する簡単な方法(3つのバリアント)が含まれています。
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 ) ;企業の技術的検証が次のエラーを生成する場合(Webサービスから):
com.indra.mmdd.signature.exceptions.ValidateException: xades4j.verification.CertRefUtils$1: Verification failed for property 'SigningCertificate': Invalid issue name
これは、会社の証明書Issuername (ライブラリによって生成された)が無効であることを意味します。この場合、証明書のプロバイダーから有効なチェーンを要求し、 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支払いソリューションを自由に使用しています。