Voici une réponse du Terminal à titre d'exemple
XML envoyé par le Terminal
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="utf-8"?>
<CardServiceRequest WorkstationID="POS1" POPID="1" RequestID="122" RequestType="CardPayment" xmlns="http://www.nrf-arts.org/IXRetail/namespace">
<POSdata LanguageCode="fr" RequestTransactionInformation="true">
<POSTimeStamp>2021-03-16T22:36:16.5374314+01:00</POSTimeStamp>
<ShiftNumber>0</ShiftNumber>
<PrinterStatus>Available</PrinterStatus>
<JournalPrinterStatus>Available</JournalPrinterStatus>
</POSdata>
<TotalAmount Currency="EUR">0.01</TotalAmount>
<CardCircuitCollection />
</CardServiceRequest> |
Socket envoyé ( taille du XML 580 - 4 ) = 0240 hexadecimal --> En tête du message il y a ceci : ...@ ( le @ est le unicode ascii de 0240 hexadecimal )
Parfois il y a le code "SOH" à la place des ...
Data length: 580 (580-4)
000000: 0000 0240 3c3f 786d 6c20 7665 7273 696f ...@<?xml versio
000010: 6e3d 2231 2e30 2220 656e 636f 6469 6e67 n="1.0" encoding
000020: 3d22 7574 662d 3822 3f3e 0d0a 3c43 6172 ="utf-8"?>..<Car
000030: 6453 6572 7669 6365 5265 7175 6573 7420 dServiceRequest
000040: 576f 726b 7374 6174 696f 6e49 443d 2250 WorkstationID="P
000050: 4f53 3122 2050 4f50 4944 3d22 3122 2052 OS1" POPID="1" R
000060: 6571 7565 7374 4944 3d22 3132 3222 2052 equestID="122" R
000070: 6571 7565 7374 5479 7065 3d22 4361 7264 equestType="Card
000080: 5061 796d 656e 7422 2078 6d6c 6e73 3d22 Payment" xmlns="
000090: 6874 7470 3a2f 2f77 7777 2e6e 7266 2d61 http://www.nrf-a
0000a0: 7274 732e 6f72 672f 4958 5265 7461 696c rts.org/IXRetail
0000b0: 2f6e 616d 6573 7061 6365 223e 0d0a 2020 /namespace">..
0000c0: 3c50 4f53 6461 7461 204c 616e 6775 6167 <POSdata Languag
0000d0: 6543 6f64 653d 2266 7222 2052 6571 7565 eCode="fr" Reque
0000e0: 7374 5472 616e 7361 6374 696f 6e49 6e66 stTransactionInf
0000f0: 6f72 6d61 7469 6f6e 3d22 7472 7565 223e ormation="true">
000100: 0d0a 2020 2020 3c50 4f53 5469 6d65 5374 .. <POSTimeSt
000110: 616d 703e 3230 3231 2d30 332d 3136 5432 amp>2021-03-16T2
000120: 323a 3336 3a31 362e 3533 3734 3331 342b 2:36:16.5374314+
000130: 3031 3a30 303c 2f50 4f53 5469 6d65 5374 01:00</POSTimeSt
000140: 616d 703e 0d0a 2020 2020 3c53 6869 6674 amp>.. <Shift
000150: 4e75 6d62 6572 3e30 3c2f 5368 6966 744e Number>0</ShiftN
000160: 756d 6265 723e 0d0a 2020 2020 3c50 7269 umber>.. <Pri
000170: 6e74 6572 5374 6174 7573 3e41 7661 696c nterStatus>Avail
000180: 6162 6c65 3c2f 5072 696e 7465 7253 7461 able</PrinterSta
000190: 7475 733e 0d0a 2020 2020 3c4a 6f75 726e tus>.. <Journ
0001a0: 616c 5072 696e 7465 7253 7461 7475 733e alPrinterStatus>
0001b0: 4176 6169 6c61 626c 653c 2f4a 6f75 726e Available</Journ
0001c0: 616c 5072 696e 7465 7253 7461 7475 733e alPrinterStatus>
0001d0: 0d0a 2020 3c2f 504f 5364 6174 613e 0d0a .. </POSdata>..
0001e0: 2020 3c54 6f74 616c 416d 6f75 6e74 2043 <TotalAmount C
0001f0: 7572 7265 6e63 793d 2245 5552 223e 302e urrency="EUR">0.
000200: 3031 3c2f 546f 7461 6c41 6d6f 756e 743e 01</TotalAmount>
000210: 0d0a 2020 3c43 6172 6443 6972 6375 6974 .. <CardCircuit
000220: 436f 6c6c 6563 7469 6f6e 202f 3e0d 0a3c Collection />..<
000230: 2f43 6172 6453 6572 7669 6365 5265 7175 /CardServiceRequ
000240: 6573 743e est>
Code utilisé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| dim sizemsg0 = 580 - 4
Dim hexString = Hex(sizemsg0) 'hexa
Dim hexS As String = sizemsg0.ToString("X4")
hexS = hexS & ""
Dim HEXAbyte As Byte() = System.Text.Encoding.UTF8.GetBytes(hexS)
Dim fin22 = hex2ascii2(hexS)
résultat -> fin22 = " @"
Function hex2ascii2(ByVal hextext As String) As String
Dim value
For y = 1 To Len(hextext)
Dim num = Mid(hextext, y, 2)
value = value & Chr(Val("&h" & num))
y = y + 1
Next y
Return value
End Function |
Partager