ESYAE-imza Kütüphaneleri

User Tools

Site Tools


esya:xades:kod-e-fatura

Bu, dökümanın eski bir sürümüdür!


E-Fatura

Not: .NET ile e-fatura imzalanacağı vakit, XML yapısında olan

E-fatura kendine has formatı olan bir XML dökümanıdır. E-faturaların imzalanması ise İmza Yapıları altında açıklanan zarflanmış imzaya çok benzemektedir. Yalnız farklı olarak imza, fatura içinde e-fatura standartı için belirlenmiş özel bir alana konulmalıdır.

 //get the element that signature will be added Element exts = (Element)faturaDoc.getDocumentElement().getElementsByTagName("ext:UBLExtensions").item(0); Element ext = (Element)exts.getElementsByTagName("ext:UBLExtension").item(0); Element extContent = (Element)exts.getElementsByTagName("ext:ExtensionContent").item(0);  // generate signature Context context = createContext(); context.setDocument(faturaDoc); XMLSignature signature = new XMLSignature(context, false); //attach signature to envelope structure extContent.appendChild(signature.getElement()); 
Ardından bütün dökümanın dahil edildiği yalnız imza alanının hariç bırakıldığı transform metodu eklenir.
 // use enveloped signature transform Transforms transforms = new Transforms(context); transforms.addTransform(new Transform(context, TransformType.ENVELOPED.getUrl()));


//add whole document(=_fckg_QUOT__fckg_QUOT_____) with envelope transform, with SHA256 //and don't include it into signature(false) signature.addDocument("", "text/xml", transforms, DigestMethod.SHA_256, false); 
Daha sonra ise yine e-fatura standartlarında gerekli kılınan imzacı rolü, açık anahtar ve imza zamanı eklenir.
 // add signer role information SignerRole rol = new SignerRole(context, new ClaimedRole[]{new ClaimedRole(context, "Supplier")}); signature.getQualifyingProperties().getSignedSignatureProperties().setSignerRole(rol);  //e-fatura standard wants public key info in the signature PublicKey pk = KeyUtil.decodePublicKey(new ECertificate(cert.getEncoded()).getSubjectPublicKeyInfo()); signature.getKeyInfo().add(new KeyValue(context, pk));  // add signing time signature.getQualifyingProperties().getSignedSignatureProperties().setSigningTime(getTime()); 
Kodu tr.gov.tubitak.uekae.esya.api.xades.example.efatura.EFatura altında inceleyebilirsiniz. __

esya/xades/kod-e-fatura.1380701559.txt.gz · Son değiştirilme: 2013/10/02 08:12 Değiştiren: Süleyman Uslu