import de.felfri.faxml.Faxml;
public class TestLohnersatz
{
private static final String datenteil =
"<DatenTeil>" +
"<Nutzdatenblock>" +
"<NutzdatenHeader version=\"10\">" +
"<NutzdatenTicket>1a</NutzdatenTicket>" +
"<Empfaenger id=\"L\">NW</Empfaenger>" +
"<Hersteller>" +
"<ProduktName>MyLohnersatzleistung-Testtool</ProduktName>" +
"<ProduktVersion>1.0</ProduktVersion>" +
"</Hersteller>" +
"<DatenLieferant>Sozialleistungsträger XYZ ; Musterstr. 17 ; ; 40476; Düsseldorf; Deutschland; 0211-111-0 ; daten@sozialleistungstraeger.de</DatenLieferant>" +
"</NutzdatenHeader>" +
"<Nutzdaten>" +
"<Lohnersatzleistung xmlns=\"http://www.elsterfachmethodik.de/Lohnersatz000001/XMLSchema\">" +
"<Zuflussjahr>2010</Zuflussjahr>" +
"<MitteilungsPflichtiger>" +
"<KundennummerFV art=\"StNr\">5123012345678</KundennummerFV>" +
"<Kundennummer>654321</Kundennummer>" +
"</MitteilungsPflichtiger>" +
"<LeistungsEmpfaenger>" +
"<ETIN>DCKDDNLE55E02W</ETIN>" +
"<Ordnungsmerkmal>11-12-13</Ordnungsmerkmal>" +
"<Name geschlecht=\"m\">" +
"<Familienname>Duck-Düsentrieb</Familienname>" +
"<Vorname>Daniel</Vorname>" +
"</Name>" +
"<Geburtsdatum>1955-05-02</Geburtsdatum>" +
"<Adresse hausNr=\"13\" ort=\"Entenhausen\" plz=\"12345\" str=\"Pechvogelweg\" />" +
"</LeistungsEmpfaenger>" +
"<Mitteilung>" +
"<Leistung art=\"Krankengeld\" betrag=\"99.99\">" +
"<Leistungspflichtiger>" +
"<Name>Meine Krankenkasse</Name>" +
"<Bearbeiter durchwahl=\"5555\" email=\"noreply@test.de\" tel=\"0211/111111\">Herr Wupper</Bearbeiter>" +
"<Adresse hausNr=\"42\" ort=\"Wuppertal\" plz=\"42103\" str=\"Gesundbrunnenstr.\" />" +
"<Aktenzeichen>4711-0815B</Aktenzeichen>" +
"<Zeitraum beginn=\"2010-01-01\" ende=\"2010-06-30\" />" +
"</Leistungspflichtiger>" +
"</Leistung>" +
"</Mitteilung>" +
"</Lohnersatzleistung>" +
"</Nutzdaten>" +
"</Nutzdatenblock>" +
"</DatenTeil>";
private static String PFX = "TestOrg_Elster.pfx";
private static String PIN = "123456";
private static String HerstellerID = "74931";
private static String Testmerker = "220002000";
/**
* @param args
*/
public static void main(String[] args)
{
try
{
// Einkommentieren um Daten zu verschicken
//send();
// Einkommentieren um das Protokoll abzuholen, Transferticket einsetzen
//receive("1234");
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// Daten verschicken
public static void send() throws Exception
{
// Instanz der FAXML
Faxml faxml = new Faxml();
// Trace einschalten
faxml.set("TraceLevel", "9");
faxml.set("TraceFile", "faxml.log");
// Den Publik-Key aus der PFX-Datei lesen
String transportkey = faxml.getPublicKey(PFX, PIN);
// XML zusammenbauen
String xml = faxml.makeElsterXml(datenteil, "ElsterLohn", "Lohnersatzleistung", "send-Auth-Offline", Testmerker, HerstellerID, "Tester;a@b.com", transportkey);
// XML uebertragen
xml = faxml.transfer(xml, Faxml.SIGART_PFX, "TestOrg_Elster.pfx", "123456");
// Transferticket auslesen
int pos = xml.indexOf("<TransferTicket>");
if (pos < 0)
System.err.println("Kein Transferticket gefunden");
else
{
pos += "<Transferticket>".length();
int pos2 = xml.indexOf("</TransferTicket>", pos);
if (pos2 < 0)
System.err.println("Kein Ende des transfertickets gefunden");
else
System.out.println("Transferticket :" + xml.substring(pos, pos2) + ":");
}
}
// Protokoll mit dem Transferticket abholen
public static void receive(String transferticket) throws Exception
{
Faxml faxml = new Faxml();
// Den Publik-Key aus der PFX-Datei lesen
String transportkey = faxml.getPublicKey(PFX, PIN);
String protanf = "<DatenTeil>" +
"<Nutzdatenblock>" +
"<NutzdatenHeader version=\"10\">" +
"<NutzdatenTicket>1a</NutzdatenTicket>" +
"<Empfaenger id=\"L\">CS</Empfaenger>" +
"<Hersteller>" +
"<ProduktName>MyLohnersatzleistung-Testtool</ProduktName>" +
"<ProduktVersion>1.0</ProduktVersion>" +
"</Hersteller>" +
"<DatenLieferant>Sozialleistungsträger XYZ ; Musterstr. 17 ; ; 40476; Düsseldorf; Deutschland; 0211-111-0 ; daten@sozialleistungstraeger.de</DatenLieferant>" +
"</NutzdatenHeader>" +
"<Nutzdaten>" +
"<ProtokollAnforderung version=\"2\" protokollVersion=\"3\">" +
"<TransferTicket>" + transferticket + "</TransferTicket>" +
"<PublicKey>" + transportkey + "</PublicKey>" +
"</ProtokollAnforderung>" +
"</Nutzdaten>" +
"</Nutzdatenblock>" +
"</DatenTeil>";
// XML zusammenbauen
String xml = faxml.makeElsterXml(protanf, "ElsterLohn", "ProtokollAnforderung", "send-NoSig", Testmerker, HerstellerID, "Tester;a@b.com", transportkey);
// Daten uebertragen
xml = faxml.transfer(xml, Faxml.SIGART_NOSIG, "", "");
// Decode beim Empfang von Protokollen:
xml = faxml.decodePfx(xml, PFX, PIN);
System.out.println(xml);
}
}
|