DEP-Export

Allgemein

Um die Daten der Registrierkasse zu exportieren, muss man zwei JSON-Dateien generieren. Hier ist es extrem wichtig, auf die Groß- und Kleinschreibung zu achten, da das Belegeprüftool (regkassen-verification-depformat-1.1.1.jar) case sensitive arbeitet und bei der kleinsten Abweichung nicht mehr das macht, was es soll.

Zuerst werden die Belegdaten in ein JSON-Objekt konvertiert. Es hat folgende Struktur:

{
   "Belege-Gruppe":[
      {
         "Signaturzertifikat":"",
         "Zertifizierungsstellen":[
            
         ],
         "Belege-kompakt":[
            "eyJhbGciOiJFUzI1NiJ9.xxx.aaa",
            "eyJhbGciOiJFUzI1NiJ9.xxx.bbb",
            "eyJhbGciOiJFUzI1NiJ9.xxx.ccc"
         ]
      }
   ]
}

Mit den vorhandenen JWS-Strings generiert man das Objekt. Wichtig ist, dass die Strings in der richtigen (chronologischen – alt-neu) Reihenfolge geladen werden. Das Signaturzertifikat und die Zertifizierungsstellen können in diesem JSON-Objekt leer bleiben.

Das nachfolgende Beispiel zeigt, wie man dieses Objekt ganz einfach generieren kann:

 $aKompakteJWSStrings = array('eyJhbGciOiJFUzI1NiJ9.xxx.aaa.',
                              'eyJhbGciOiJFUzI1NiJ9.xxx.bbb.',
                              'eyJhbGciOiJFUzI1NiJ9.xxx.ccc.');

 $aDEPDaten = array('Belege-Gruppe' => array(array('Signaturzertifikat'     => '',
                                                   'Zertifizierungsstellen' => array(),
                                                   'Belege-kompakt'         => $aKompakteJWSStrings)));

 $oJSON = json_encode($aDEPDaten));

In einem zweiten Schritt wird nun die Datei mit den Zertifikat-Daten generiert. Diese ist folgendermaßen aufgebaut:

{
   "base64AESKey":"xxxAESSCHLÜSSELxxx",
   "certificateOrPublicKeyMap":{
      "xxxSERIENNUMMERxxx":{
         "id":"xxxSERIENNUMMERxxx",
         "signatureDeviceType":"CERTIFICATE",
         "signatureCertificateOrPublicKey":"xxxZERTIFIKATSDATENxxx"
      }
   }
}

Mit dem nachstehenden Code kann man die JSON-Datei mit den Zertifikat-Daten ganz leicht generieren:

    $oJSON = json_encode(array('base64AESKey'              => 'xxxAESSCHLÜSSELxxx',
                               'certificateOrPublicKeyMap' => array('xxxSERIENNUMMERxxx' => array('id'                              => 'xxxSERIENNUMMERxxx',
                                                                                                  'signatureDeviceType'             => 'CERTIFICATE',
                                                                                                  'signatureCertificateOrPublicKey' => 'xxxZERTIFIKATSDATENxxx'))));

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert