รุ่นนี้ล้าสมัยแล้ว ในการใช้การลงนามในเวอร์ชันการตรวจสอบก่อนหน้านี้ให้ใช้โมดูล eFacturacolombia_v2.v2
Efacturacolombia มันเป็นร้านหนังสือ ที่ไม่เป็นทางการ ที่พัฒนาขึ้นใน C#ซึ่งอนุญาตให้ใช้เอกสาร Sign XML (ใบแจ้งหนี้และบันทึกเดบิต) ที่นำเสนอต่อ Dian of Colombia สำหรับกระบวนการเรียกเก็บเงินทางอิเล็กทรอนิกส์
ตั้งแต่วันที่ 1 มกราคม 2019 การเรียกเก็บเงินทางอิเล็กทรอนิกส์สำหรับผู้เสียภาษีในโคลัมเบียจะได้รับคำสั่งและในปัจจุบัน บริษัท และผู้บังคับบัญชาหลายแห่งยังไม่ได้ดำเนินการ
แม้ว่าข้อมูลทางเทคนิคที่ได้รับจาก DIAN ควรเพียงพอ แต่การค้นหาทรัพยากร. NET สำหรับกระบวนการนี้กลายเป็นเรื่องยาก การสร้างเอกสาร XML และบริการเว็บอาจลำบาก แต่สามารถทำได้โดยไม่ต้องไม่สะดวกอย่างไรก็ตาม บริษัท ที่ Dian ต้องการอาจทำได้ยากมากจนถึงจุดที่จำเป็นในการได้รับโซลูชั่นที่มีราคาแพง
ร้านหนังสือแห่งนี้ได้รับการปล่อยตัวโดยมีจุดประสงค์เพื่ออำนวยความสะดวกในการนำไปปฏิบัติบนแพลตฟอร์ม. NET
ในการสร้างให้ลงชื่อและออกเอกสารอิเล็กทรอนิกส์ (ใบแจ้งหนี้และบันทึกย่อของเดบิต/เครดิต) ก่อนที่ DIAN จะต้องปฏิบัติตามข้อกำหนดต่อไปนี้:
สำหรับข้อมูลเพิ่มเติมดูทรัพยากรที่มีอยู่ในการเรียกเก็บเงินอิเล็กทรอนิกส์
คลาส 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
หมายความว่า CertificateIseSsuername - สร้างโดยห้องสมุด - ของ บริษัท ไม่ถูกต้องในกรณีนี้คำขอจากผู้ให้บริการของใบรับรองห่วงโซ่ที่ถูกต้องและกำหนด ด้วยตนเอง โดยใช้คุณสมบัติ 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 ) ก่อนที่จะบันทึกหรือบีบอัดพวกเขาเพื่อส่งพวกเขาไปยัง Dian เพราะพวกเขาจะทำให้ บริษัท เป็นโมฆะ
โครงการนี้ใช้ร้านหนังสือต่อไปนี้:
แม้ว่าพื้นที่เก็บข้อมูลนี้ไม่ได้มาจาก การจ่ายแบบเปิด แต่ก็สามารถมีส่วนร่วม:
miguel huertas [email protected]
ทบทวนรายละเอียดในคลังเก็บปริญญาตรี
ผู้เขียนโครงการนี้ด้วยเหตุผลเวลาจะไม่ให้การสนับสนุนสำหรับการดำเนินการเว้นแต่จะเป็นสิ่งที่ง่าย (โดยไม่ต้องมีหน้าที่)
ในทางกลับกันผู้เขียนโครงการนี้ทำให้คุณต้องใช้โซลูชันการชำระเงิน. NET สำหรับกระบวนการเรียกเก็บเงินอิเล็กทรอนิกส์ทั้งหมดรวมถึงคำแนะนำสำหรับการดำเนินการ