Neues Thema starten

TSE Umsetzung mit VB6

1. So wie ich das sehe und lese, baut das SDK nur auf C und C# auf.
Ich programmiere mit VB6 und kann mit einem C# Sample nichts anfangen.
Hat schon jemand das ganze in VB6 umgesetzt?
Ist das überhaupt möglich?

2. SWISSBIT müsste für das ganze Setup, Einrichten, Einstellen und den Export (für den Prüfer mit Filterfunktionen) ein fertiges Tool (exe) zur Verfügung stellen. So das ich diese Exe (Tool) einfach in meinen Anwendungsordner kopiere und ich dann damit die Einrichtung vornehmen kann und ein Prüfer der Finanzbehörde darüber seinen Export nach bestimmten Filterkriterien wie z.B. Transaktionsnummer von / bis oder Datum von / bis etc. vornehmen kann.


3 Personen haben diese Frage

Hallo Harald.

suche mal nach: Digitale Schnittstelle der Finanzverwaltung fürKassensysteme (DSFinV-K)

Oder Googlesuche nach   "20190802_DSFinV_K_V_2_0.pdf"

Da wird alles erklärt.

Hallo Harald,
schau Dir mal folgende Seiten an:
https://support.gastro-mis.de/support/solutions/articles/36000170274-was-muss-wann-abgesichert-werden
https://support.gastro-mis.de/support/solutions/articles/36000170276-processtype-und-processdata

Und für den Prüfer ist die DSFinV-K die ausschlaggebende Schnittstelle, die in deine Kassensoftware zu integrieren ist.
https://www.bzst.de/DE/Unternehmen/Aussenpruefungen/DigitaleSchnittstelleFinV/digitaleschnittstellefinv_node.html
Unter Downloads kannst Du Dir die Dokumentation (dsfinv_k_v_2_2.zip) herunterladen. In der enthaltenen PDF (20200625_DSFinV_K.pdf) findest Du im Anhang I ab Seite 108 die Beschreibung zu den Datenstrukturen die an die TSE übergeben werden, worauf hin Du dann den Transaktionszähler, die Signatur, Signaturzähler etc. von der TSE zurück geliefert bekommst. Diese Daten müssen zum Kassenbeleg gespeichert und auf diesem gedruckt werden.

Gruß
Wilfried

Hallo Harald,

sieh Dir mal folgende Seiten an:
https://support.gastro-mis.de/support/solutions/articles/36000170274-was-muss-wann-abgesichert-werden
https://support.gastro-mis.de/support/solutions/articles/36000170276-processtype-und-processdata

Und für den Prüfer musst Du Dich um die DSFinV-K kümmern.
https://www.bzst.de/DE/Unternehmen/Aussenpruefungen/DigitaleSchnittstelleFinV/digitaleschnittstellefinv_node.html
Auf der Seite kannst Du Dir die Doku. (dsfinv_k_v_2_2.zip) downloaden. In der enthaltenen PDF (20200625_DSFinV_K.pdf) im Anhang I ab Seite 108 findest Du die Datenstruktur zur Übergabe an die TSE. Von der TSE bekommst Du die Transaktionsnummer, Signatur, Signaturnummer, etc. die zum Kassenbeleg gespeichert und auf diesem gedruckt werden müssen.

VG. Wilfried

Hallo zusammen,


die meisten SDK's sind primär in C/C++ geschrieben, da das i.d.R. der kleinste gemeinsame Nenner ist.


Damit ist es natürlich recht aufwendig und auch nicht unbedingt sinnvoll, wenn jeder dieses SDK nun für sich auf VB, PHP, Delphi etc., noch dazu für verschiedene Plattformen (Linux, Windows, Android) und verschiedene Architekturen (x86-32, x86-64, IA64, ARM) adaptiert.


Aus diesem Grund haben wir von Anfang daruf gesetzt, eine einfache Schnittstelle zu schaffen, die unabhängig von jeder Programmiersprache, Plattform und auch von jedem Kassenprogramm genutzt werden kann.

Wir haben deshalb mit unserer LAN-TSE die Anwendung von der TSE entkoppelt. Das schafft für den Nutzer/Programmierer u.a. folgende Vorteile:

  • man muß sich nicht mehr um die internen Befehle und die Funktionsweise der TSE kümmern
  • die TSE muß nicht lokal angesteckt sein, sondern nur im LAN bzw. WAN erreichbar sein, die TSE kann sich so z.B. im Serverschrank befinden
  • die Kommunikation zwischen TSE und Kasse erfolgt per Socketbefehl, eine Abstraktionsebene, die jede Programmiersprache behrrscht
  • mehrere Kassen können sich eíne TSE teilen
  • die TSE läuft ständig im Hintergrund, sie hat damit keine "Zeitsprünge", macht regelmäßige Selbsttests, kann per Monitoring und über Fernwartung gesteuert werden
  • bei einem Wechsel oder Update der Programmierung der Kassensoftware muß die TSE-Schnittstelle nur geringfügig adaptiert werden


Wer sich also mit den Details und Internas der TSE-Anbindung nicht selbst herumschlagen möchte, der sollte sich mal diesen Thread hier im Forum ansehen:
https://support.gastro-mis.de/support/discussions/topics/36000016988


Viele Grüße
U. Kleinert


Hallo,

an alle, die an einer Lösung interessiert sind, sich selbst aber nicht um die Details der Programmierung kümmern bzw. das SDK nicht selbst adaptieren können oder wollen.


Wir können Ihnen mit einer (fast) fertigen und vor allem, von der Programmiersprache unabhängigen, Lösung helfen. Ebenso können wir Sie (mit 25 Jahren Erfahrung in der ERP-Programmierung) bei der Umsetzung und Implementierung einer zuverlässigen TSE-Anbindung unterstützen.
Sprechen Sie uns an, unter info (at) axxis-soft.de oder +49 35206 30401

Viele Grüße
U. Kleinert

'*****************************************************************

' gunter_schafer add yahoo.com

' Seriennummer und Seed (SwissbitSwissbit) bei neuer TSE Pin und Puk zu erzeugen
' Seriennummer Hex
' Seed - SwissbitSwissbit in Hex nach HexSeed
' HexSeed und Sereiennummer - sha256 Hash
' Test Nr 22FDF86511272A2C
'         CAEFBA07EE12FC37
'         8CF9193A894950AF
'         C22F7A2188B35281
' SwissbitSwissbit = 5377697373626974
'                    5377697373626974
'

' Ergebnis hash = SHA256_Hash:
' 22637C2B6CE39057
' 915B41934C0B0178
' E72ED8AA24FB56C9
' 200D7E2748B73D3D
'

'*****************************************************************

Private Sub ser_pin_puk(seed, serial)
Dim ok As Long
Dim tt(4) As String  ' zur verarbeitung
Dim wert As Variant
Dim hex_seed As String

Dim i As Integer
Dim wertbyte(0 To 95) As Byte
Dim orig As String

crypt.HashAlgorithm = "sha256"
crypt.Charset = "hex"
crypt.EncodingMode = "hex"

For i = 0 To Len(seed) - 1
  hex_seed = hex_seed & Hex(Asc(Mid(seed, i + 1, 1)))
Next

wert = hex_seed & serial
i = Len(wert)
i = Len(hex_seed)

tt(0) = crypt.HashStringENC(wert)

' die ersten 24 Byte in 8ter Gruppen
tt(1) = Mid(tt(0), 1, 16)               ' die ersten 8 Byte
tt(2) = Mid(tt(0), 17, 16)              ' die zweiten 8 Byte
tt(3) = Mid(tt(0), 33, 16)              ' die dritten 8 Byte

' Kontrollausgabe
akt_status = wert & vbCrLf
akt_status = akt_status & tt(1) & vbCrLf
akt_status = akt_status & tt(2) & vbCrLf
akt_status = akt_status & tt(3) & vbCrLf



bd.Clear
success = bd.AppendEncoded(tt(1), "hex")
wert = bd.GetEncoded("decimal")
Puk = wert

bd.Clear
success = bd.AppendEncoded(tt(2), "hex")
wert = bd.GetEncoded("decimal")
Pin = wert

bd.Clear
success = bd.AppendEncoded(tt(3), "hex")
Timepin = bd.GetEncoded("decimal")

Puk = Mid(Puk, Len(Puk) - 5)
Pin = Mid(Pin, Len(Pin) - 4)
Timepin = Mid(Timepin, Len(Timepin) - 4)
dpuk = Puk
dpin = Pin
dtimepin = Timepin

akt_status = akt_status & "Pin: " & Pin & vbCrLf
akt_status = akt_status & "Puk: " & Puk & vbCrLf
akt_status = akt_status & "TimePin " & Timepin & vbCrLf
akt_status = akt_status & hex_seed
bd.Clear
ok = bd.AppendEncoded(tt(1), "hex")
End Sub
 

 Go Lang:

  seed_hex := hex.EncodeToString ([]byte (CREDENTIAL_SEED))

  serial_hex := Info_Serial_Number (INFO) // hex.EncodeToString (TSE_INFO.DAT [256:288])

  hex, _ := hex.DecodeString (seed_hex + serial_hex)

  hash256 := sha256.Sum256 ([]byte (hex))

  puk_hex := hash256 [0:8]

  pin_admin_hex := hash256 [8:16]

  pin_time_admin_hex := hash256 [16:24]

  n1 := len (strconv.FormatUint (binary.BigEndian.Uint64 (puk_hex), 10))

 puk := strconv.FormatUint (binary.BigEndian.Uint64 (puk_hex), 10) [n1-6:n1]

 n2 := len (strconv.FormatUint (binary.BigEndian.Uint64 (pin_admin_hex), 10))

 pin_admin := strconv.FormatUint (binary.BigEndian.Uint64 (pin_admin_hex), 10) [n2-5:n2]

 n3 := len (strconv.FormatUint (binary.BigEndian.Uint64 (pin_time_admin_hex), 10))

 pin_time_admin := strconv.FormatUint (binary.BigEndian.Uint64 (pin_time_admin_hex), 10) [n3-5:n3]


Hallo Herr Günter Schäfer,


mich interessiert sehr Ihre TSE VB6 Projekte, wie kann ich mich mit Ihnen in Verbindung setzen. Danke Ihnen 


 Hallo Herr Günter Schäfer,


Ich bin ebenfalls auf der Suche nach einer Integrationslösung für VB6.  Da Sie schon mit damit angenfangen haben, würde ich mich sehr gern mit Ihnen in Kontakt setzen. Wie kann ich mich bei Ihnen melden bzw.

eine Lösung für TSE VB6 Projekt zu informieren. Ich danke Ihnen


Gruß


nlong

ja, gerne . .

meine Seite mit Tel und Mail

www.koronix.de

Tel: +49 1575 62961 64

 Grüsse

       Günter

Anmelden oder Registrieren um einen Kommentar zu veröffentlichen