Payment terminal TIMAPI.DLL

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Payment terminal TIMAPI.DLL

Post by danielmaximiliano »

intentar / Try
2023-08-02 00_04_20-Administrador_ Símbolo del sistema.png
2023-08-02 00_04_20-Administrador_ Símbolo del sistema.png (35.29 KiB) Viewed 46339 times

Code: Select all

set path=%path%;C:\mingw32\bin
dlltool --def timapi.def --dllname timapi.dll --output-lib libtimapi.a
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Payment terminal TIMAPI.DLL

Post by danielmaximiliano »

Hola : No tengo idea porque al utilizar

Code: Select all

dlltool --def timapi.def --dllname timapi.dll --output-lib libtimapi.a
a

Code: Select all

dlltool --def timapi.def --dllname timapi.dll --output-lib timapi.a
hay diferencia de tamaño en el archivo resultante.
2023-08-02 00_15_55-create lib mingw dll - Buscar con Google — Mozilla Firefox.png
2023-08-02 00_15_55-create lib mingw dll - Buscar con Google — Mozilla Firefox.png (22.46 KiB) Viewed 46334 times
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Georg_BA
Posts: 108
Joined: Fri Apr 07, 2017 5:31 pm
DBs Used: DBF

Re: Payment terminal TIMAPI.DLL

Post by Georg_BA »

Hi Daniel
Thanks for help
library was created according to your instructions
I renamed the library to libtimapi.a
its size is approx. 800kb, the dll is 9.2Mb, is it correct?

However, the problem persists when calling a function from the given library

I added the library to the IDE (Configuration)

Code: Select all

libs=timapi

Code: Select all

msgbox(ta_terminal_get_tim_api_version())
the given function is defined in timapi.def and even if I give the given expression a search in libtimapi.a it will find it

it gives me an error when compiling
undefined reference to `HB_FUN_TA_TERMINAL_GET_TIM_API_VERSION'

Thanks for help

Best regards, Georg
edk
Posts: 999
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland

Re: Payment terminal TIMAPI.DLL

Post by edk »

Hi.
Personally, I did not communicate with the EFT payment terminal.

I looked at the TIMSDK C you sent, but I'm no expert in C. I tried to run the timapi.dll based on the C examples, the function ta_terminal_get_tim_api_version() runs, but I don't know if the result is correct (the return value looks more like a pointer to me than a correct return). Calling the terminal settings ta_terminal_settings_create() requires the structure of the "settings" variable, but I can't create it - it gives me error 139, which according to the file timsdk_C\C\TimApi\Include\timapi\constants\result_code.h means a_c_rc_invalid_argument

Code: Select all

#include "hmg.ch"
#include "hbdyn.ch" 

function main()
Local settings, rc

Public hLib := ltim_init() 

msgdebug ( ta_terminal_get_tim_api_version() )

// create settings
rc = ta_terminal_settings_create(@settings)
msgdebug ( settings, rc )

return Nil

FUNCTION ltim_init() 
RETURN hb_libLoad( "timapi.dll" )

FUNCTION CallDll( cProc, ... )         
RETURN hb_DynCall( { cProc, hLib, HB_DYN_CALLCONV_SYSCALL }, ... )

FUNCTION ta_terminal_get_tim_api_version()
RETURN CallDll( "ta_terminal_get_tim_api_version" )

FUNCTION ta_terminal_settings_create ( settings )
RETURN CallDll( "ta_terminal_settings_create", @settings )
It seems to me that it will be easier to write communication based on inet and socket, but for this you need documentation describing the communication protocol.
In Poland, we have a standardized communication protocol between ECR and EFT and it allows communication of any devices that have this protocol implemented. It is required by law that all cash registers (ECR) have this protocol, otherwise they cannot be used. This solution enables the plug-and-play connection of ECR and payment terminals.
I think that worldline EFT devices should have this protocol implemented in order to be used in Poland.
Documentation describing this protocol is here and is in Polish: https://www.gov.pl/attachment/8f3f785e- ... 6d054d9bc9. I haven't been able to find an English translation.

Based on this protocol, I wrote a short code that tests the connection to the terminal.

Code: Select all

#include "hmg.ch"
Function Main

#define STX                          Chr ( 0x02 )
#define ETX                          Chr ( 0x03 )
#define FS                           Chr ( 0x1C )

nTimeOut := 300
ipadres := '127.0.0.1'
ipport := 7784
nToken := 0x2710

IF ! hb_inetInit()
    MsgStop ( "Cannot initialize inet" )
    quit
ENDIF
socket := hb_inetCreate()
hb_inetTimeout( socket, nTimeOut )
nProba := 1
DO WHILE nProba <= 10
    nProba ++
    hb_inetConnect( ipadres, ipport, socket )
    nTCPIPErr := hb_inetErrorCode( socket )
    IF nTCPIPErr = 0
        EXIT
    ENDIF
    Inkey(.1)
ENDDO
IF nTCPIPErr # 0
    hb_inetClose( socket )
    RETURN
ENDIF
hb_inetFD( socket )

cBlokDanych := STX + hb_NumToHex( nToken , 6) + FS + "T1" + FS + ETX
cPakiet := cBlokDanych + LRC ( cBlokDanych )

strfile ( cpakiet, "pakiet.txt" )

hb_inetSendAll( socket, cPakiet )
cBuf := SPACE ( 1024 )

nBuf:=hb_inetRecvAll( socket, @cBuf, Len( cBuf ) )

msgdebug ( cBuf, nBuf )

strfile ( cbuf, "resp.txt" )

hb_inetClose( socket )

RETURN
**********************************************
Function LRC ( cPakiet )
Local nLRC := 0, cChr := "", n := 0

FOR EACH cChr IN cPakiet
    n++
    IF .Not. ( cChr == STX .And. n == 1 )
        nLRC := NUMXOR ( nLRC, Asc ( cChr ) )
    ENDIF
NEXT 

RETURN Chr ( nLRC )
Unfortunately, I don't have any testing terminal, and the EFT simulator in tim_toolsTools does not support this protocol. Communication results are returned in the form of xml.

Code: Select all

SIXml`<?xml version="1.0" encoding="UTF-8"?><sixml:Notification xmlns:sixml="http://www.worldline.com/" FunctionGroup="Status" Function="TerminalStatus"><sixml:DisplayContent><sixml:DisplayLine LineNum="1">Please Login</sixml:DisplayLine></sixml:DisplayContent><sixml:CardReaderStatus>CardReaderEmpty</sixml:CardReaderStatus><sixml:TransactionStatus>Idle</sixml:TransactionStatus><sixml:ConnectionStatus>LoggedOut</sixml:ConnectionStatus><sixml:ManagementStatus>Closed</sixml:ManagementStatus><sixml:ReceiptInformation>0</sixml:ReceiptInformation><sixml:TerminalId>12345678</sixml:TerminalId></sixml:Notification>
According to the manufacturer's website https://six-tim.github.io/timapi/doc/c/ ... ResultCode this protocol is called SIXml, but I can't find it anywhere on the Internet. Search results for the SIXml protocol redirected me to six-payment-services. In turn, searching their resources, I came across the MPD (Multi Protocol Driver) Manual - Technical Specification: https://www.six-payment-services.com/da ... ion-en.pdf
From the content of this document, it appears that COM/OLE could be used to communicate with EFT, which is called "Telekurs EFT/MPD Library", but I can't find that online either. This would probably be the simplest solution to be implemented in HMG.
In conclusion, try to contact the manufacturer and find out:
- do they have and can provide COM/OLE to communicate with their EFT?
or
- can they provide documentation for the SIXml protocol
or
- do their devices support the ECR-EFT protocol required in Poland (is there any simulator that supports this protocol?)
Georg_BA
Posts: 108
Joined: Fri Apr 07, 2017 5:31 pm
DBs Used: DBF

Re: Payment terminal TIMAPI.DLL

Post by Georg_BA »

Hi Edward

thank you for your help, I will find out the required information and let you know

I am also sending other examples of the TIMAPI library in the attachment, I thought that the C library would be the easiest solution
there are other examples and ready-made .exe programs that communicate with the simulator

Best regards, Georg
Attachments
TIMAPI_Tools.zip
(19.85 MiB) Downloaded 502 times
TIMAPI_JavaScript.zip
(1.81 MiB) Downloaded 489 times
TIMAPI_DotNet.zip
(7.82 MiB) Downloaded 508 times
TIMAPI_Documentation.zip
(349 Bytes) Downloaded 510 times
TIMAPI_C.ZIP
(24.27 MiB) Downloaded 502 times
TIAPI_Java.zip
(12.76 MiB) Downloaded 485 times
User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Payment terminal TIMAPI.DLL

Post by danielmaximiliano »

hola a todos
al descargar timapi tools y donet tnego este msj de mi antivirus
2023-08-04 21_43_42-Avast Premium Security.png
2023-08-04 21_43_42-Avast Premium Security.png (43.97 KiB) Viewed 46183 times
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Georg_BA
Posts: 108
Joined: Fri Apr 07, 2017 5:31 pm
DBs Used: DBF

Re: Payment terminal TIMAPI.DLL

Post by Georg_BA »

Hi Daniel
I assume that it is a false alarm. I use the ESET antivirus program and it does not detect anything. In these zip files, there are EXE files, that's why.
If you are interested, I will save them on the FTP server

Best regards, Georg
Georg_BA
Posts: 108
Joined: Fri Apr 07, 2017 5:31 pm
DBs Used: DBF

Re: Payment terminal TIMAPI.DLL

Post by Georg_BA »

Response from support Worldline

Good morning,

The SDK package contains everything we currently have.

All necessary and up-to-date documentation can be found here:

https://six-tim.github.io/timapi/doc/c/guide.html

The standardized communication protocol between ECR and EFT in Poland that you mentioned, it is something else then TIM API.

Worldline devices in Poland support the required ECR-EFT protocol, but this solution is very limited and supported only in Poland.

I think that in this case (customer from Slovakia) you should use TIM API.
edk
Posts: 999
Joined: Thu Oct 16, 2014 11:35 am
Location: Poland

Re: Payment terminal TIMAPI.DLL

Post by edk »

It is a pity.
By the way, I wonder why they are not open to integration with other environments?
I tried to do Reverse Engineering, the TCP protocol sniffer shows nicely the communication between the DotNet examples and the EFT simulator.

Code: Select all

==================================================
Index             : 1
Protocol          : TCP
Local Address     : 127.0.0.1
Remote Address    : 127.0.0.1
Local Port        : 55658
Remote Port       : 7784
Local Host        : 
Remote Host       : 
Service Name      : 
Packets           : 17
Data Size         : 10 421 Bytes
Total Size        : 11 757 Bytes
Data Speed        : 0.6 KB/Sec
Capture Time      : 08.08.2023 21:07:44:156
Last Packet Time  : 08.08.2023 21:08:00:438
Duration          : 00:00:16.282
Local MAC Address : 
Remote MAC Address: 
Local IP Country  : 
Remote IP Country : 
==================================================

00000000  53 49 58 6D 6C 02 00 A6  01 3C 3F 78 6D 6C 20 76   SIXml..¦ .<?xml v 
00000010  65 72 73 69 6F 6E 3D 22  31 2E 30 22 20 65 6E 63   ersion=" 1.0" enc 
00000020  6F 64 69 6E 67 3D 22 55  53 2D 41 53 43 49 49 22   oding="U S-ASCII" 
00000030  3F 3E 3C 73 69 78 6D 6C  3A 52 65 71 75 65 73 74   ?><sixml :Request 
00000040  20 78 6D 6C 6E 73 3A 73  69 78 6D 6C 3D 22 68 74    xmlns:s ixml="ht 
00000050  74 70 3A 2F 2F 77 77 77  2E 77 6F 72 6C 64 6C 69   tp://www .worldli 
00000060  6E 65 2E 63 6F 6D 2F 22  20 46 75 6E 63 74 69 6F   ne.com/"  Functio 
00000070  6E 47 72 6F 75 70 3D 22  53 74 61 74 75 73 22 20   nGroup=" Status"  
00000080  46 75 6E 63 74 69 6F 6E  3D 22 46 65 61 74 75 72   Function ="Featur 
00000090  65 52 65 71 75 65 73 74  22 20 53 65 71 75 65 6E   eRequest " Sequen 
000000A0  63 65 4E 75 6D 62 65 72  3D 22 30 22 2F 3E 53 49   ceNumber ="0"/>SI 
000000B0  58 6D 6C 02 03 2B 01 3C  3F 78 6D 6C 20 76 65 72   Xml..+.< ?xml ver 
000000C0  73 69 6F 6E 3D 22 31 2E  30 22 20 65 6E 63 6F 64   sion="1. 0" encod 
000000D0  69 6E 67 3D 22 55 53 2D  41 53 43 49 49 22 3F 3E   ing="US- ASCII"?> 
000000E0  3C 73 69 78 6D 6C 3A 52  65 71 75 65 73 74 20 78   <sixml:R equest x 
000000F0  6D 6C 6E 73 3A 73 69 78  6D 6C 3D 22 68 74 74 70   mlns:six ml="http 
00000100  3A 2F 2F 77 77 77 2E 77  6F 72 6C 64 6C 69 6E 65   ://www.w orldline 
00000110  2E 63 6F 6D 2F 22 20 46  75 6E 63 74 69 6F 6E 47   .com/" F unctionG 
00000120  72 6F 75 70 3D 22 41 64  6D 69 6E 22 20 46 75 6E   roup="Ad min" Fun 
00000130  63 74 69 6F 6E 3D 22 4C  6F 67 69 6E 22 20 53 65   ction="L ogin" Se 
00000140  71 75 65 6E 63 65 4E 75  6D 62 65 72 3D 22 31 22   quenceNu mber="1" 
00000150  3E 3C 73 69 78 6D 6C 3A  50 6F 73 49 64 3E 32 35   ><sixml: PosId>25 
00000160  3C 2F 73 69 78 6D 6C 3A  50 6F 73 49 64 3E 3C 73   </sixml: PosId><s 
00000170  69 78 6D 6C 3A 49 6E 74  65 67 72 61 74 6F 72 49   ixml:Int egratorI 
00000180  64 3E 30 3C 2F 73 69 78  6D 6C 3A 49 6E 74 65 67   d>0</six ml:Integ 
00000190  72 61 74 6F 72 49 64 3E  3C 73 69 78 6D 6C 3A 50   ratorId> <sixml:P 
000001A0  72 6F 74 6F 63 6F 6C 4F  70 74 69 6F 6E 4C 69 73   rotocolO ptionLis 
000001B0  74 3E 3C 73 69 78 6D 6C  3A 50 72 6F 74 6F 63 6F   t><sixml :Protoco 
000001C0  6C 4F 70 74 69 6F 6E 20  4F 70 74 69 6F 6E 54 79   lOption  OptionTy 
000001D0  70 65 3D 22 73 69 78 6D  6C 3A 50 72 6F 74 6F 63   pe="sixm l:Protoc 
000001E0  6F 6C 4C 65 76 65 6C 22  3E 33 3C 2F 73 69 78 6D   olLevel" >3</sixm 
000001F0  6C 3A 50 72 6F 74 6F 63  6F 6C 4F 70 74 69 6F 6E   l:Protoc olOption 
00000200  3E 3C 73 69 78 6D 6C 3A  50 72 6F 74 6F 63 6F 6C   ><sixml: Protocol 
00000210  4F 70 74 69 6F 6E 20 4F  70 74 69 6F 6E 54 79 70   Option O ptionTyp 
00000220  65 3D 22 73 69 78 6D 6C  3A 47 75 69 64 65 73 22   e="sixml :Guides" 
00000230  3E 31 3C 2F 73 69 78 6D  6C 3A 50 72 6F 74 6F 63   >1</sixm l:Protoc 
00000240  6F 6C 4F 70 74 69 6F 6E  3E 3C 73 69 78 6D 6C 3A   olOption ><sixml: 
00000250  50 72 6F 74 6F 63 6F 6C  4F 70 74 69 6F 6E 20 4F   Protocol Option O 
00000260  70 74 69 6F 6E 54 79 70  65 3D 22 73 69 78 6D 6C   ptionTyp e="sixml 
00000270  3A 41 75 74 6F 43 6F 6D  6D 69 74 22 3E 30 3C 2F   :AutoCom mit">0</ 
00000280  73 69 78 6D 6C 3A 50 72  6F 74 6F 63 6F 6C 4F 70   sixml:Pr otocolOp 
00000290  74 69 6F 6E 3E 3C 2F 73  69 78 6D 6C 3A 50 72 6F   tion></s ixml:Pro 
000002A0  74 6F 63 6F 6C 4F 70 74  69 6F 6E 4C 69 73 74 3E   tocolOpt ionList> 
000002B0  3C 73 69 78 6D 6C 3A 50  72 69 6E 74 4F 70 74 69   <sixml:P rintOpti 
000002C0  6F 6E 4C 69 73 74 3E 3C  73 69 78 6D 6C 3A 50 72   onList>< sixml:Pr 
000002D0  69 6E 74 4F 70 74 69 6F  6E 73 20 52 65 63 69 70   intOptio ns Recip 
000002E0  69 65 6E 74 3D 22 4D 65  72 63 68 61 6E 74 22 20   ient="Me rchant"  
000002F0  50 72 69 6E 74 46 6F 72  6D 61 74 3D 22 4E 6F 72   PrintFor mat="Nor 
00000300  6D 61 6C 22 20 50 72 69  6E 74 57 69 64 74 68 3D   mal" Pri ntWidth= 
00000310  22 34 30 22 20 50 72 69  6E 74 46 6C 61 67 73 3D   "40" Pri ntFlags= 
00000320  22 30 22 2F 3E 3C 73 69  78 6D 6C 3A 50 72 69 6E   "0"/><si xml:Prin 
00000330  74 4F 70 74 69 6F 6E 73  20 52 65 63 69 70 69 65   tOptions  Recipie 
00000340  6E 74 3D 22 43 61 72 64  68 6F 6C 64 65 72 22 20   nt="Card holder"  
00000350  50 72 69 6E 74 46 6F 72  6D 61 74 3D 22 4E 6F 72   PrintFor mat="Nor 
00000360  6D 61 6C 22 20 50 72 69  6E 74 57 69 64 74 68 3D   mal" Pri ntWidth= 
00000370  22 34 30 22 20 50 72 69  6E 74 46 6C 61 67 73 3D   "40" Pri ntFlags= 
00000380  22 30 22 2F 3E 3C 2F 73  69 78 6D 6C 3A 50 72 69   "0"/></s ixml:Pri 
00000390  6E 74 4F 70 74 69 6F 6E  4C 69 73 74 3E 3C 73 69   ntOption List><si 
000003A0  78 6D 6C 3A 4D 61 6E 75  66 61 63 74 75 72 65 72   xml:Manu facturer 
000003B0  46 6C 61 67 73 3E 30 3C  2F 73 69 78 6D 6C 3A 4D   Flags>0< /sixml:M 
000003C0  61 6E 75 66 61 63 74 75  72 65 72 46 6C 61 67 73   anufactu rerFlags 
000003D0  3E 3C 2F 73 69 78 6D 6C  3A 52 65 71 75 65 73 74   ></sixml :Request 
000003E0  3E 53 49 58 6D 6C 02 00  AE 01 3C 3F 78 6D 6C 20   >SIXml.. ®.<?xml  
000003F0  76 65 72 73 69 6F 6E 3D  22 31 2E 30 22 20 65 6E   version= "1.0" en 
00000400  63 6F 64 69 6E 67 3D 22  55 53 2D 41 53 43 49 49   coding=" US-ASCII 
00000410  22 3F 3E 3C 73 69 78 6D  6C 3A 52 65 71 75 65 73   "?><sixm l:Reques 
00000420  74 20 78 6D 6C 6E 73 3A  73 69 78 6D 6C 3D 22 68   t xmlns: sixml="h 
00000430  74 74 70 3A 2F 2F 77 77  77 2E 77 6F 72 6C 64 6C   ttp://ww w.worldl 
00000440  69 6E 65 2E 63 6F 6D 2F  22 20 46 75 6E 63 74 69   ine.com/ " Functi 
00000450  6F 6E 47 72 6F 75 70 3D  22 53 74 61 74 75 73 22   onGroup= "Status" 
00000460  20 46 75 6E 63 74 69 6F  6E 3D 22 41 70 70 6C 69    Functio n="Appli 
00000470  63 61 74 69 6F 6E 49 6E  66 6F 72 6D 61 74 69 6F   cationIn formatio 
00000480  6E 22 20 53 65 71 75 65  6E 63 65 4E 75 6D 62 65   n" Seque nceNumbe 
00000490  72 3D 22 32 22 2F 3E 53  49 58 6D 6C 02 01 F1 01   r="2"/>S IXml..ń. 
000004A0  3C 3F 78 6D 6C 20 76 65  72 73 69 6F 6E 3D 22 31   <?xml ve rsion="1 
000004B0  2E 30 22 20 65 6E 63 6F  64 69 6E 67 3D 22 55 53   .0" enco ding="US 
000004C0  2D 41 53 43 49 49 22 3F  3E 3C 73 69 78 6D 6C 3A   -ASCII"? ><sixml: 
000004D0  52 65 71 75 65 73 74 20  78 6D 6C 6E 73 3A 73 69   Request  xmlns:si 
000004E0  78 6D 6C 3D 22 68 74 74  70 3A 2F 2F 77 77 77 2E   xml="htt p://www. 
000004F0  77 6F 72 6C 64 6C 69 6E  65 2E 63 6F 6D 2F 22 20   worldlin e.com/"  
00000500  46 75 6E 63 74 69 6F 6E  47 72 6F 75 70 3D 22 53   Function Group="S 
00000510  74 61 74 75 73 22 20 46  75 6E 63 74 69 6F 6E 3D   tatus" F unction= 
00000520  22 53 79 73 74 65 6D 49  6E 66 6F 72 6D 61 74 69   "SystemI nformati 
00000530  6F 6E 22 20 53 65 71 75  65 6E 63 65 4E 75 6D 62   on" Sequ enceNumb 
00000540  65 72 3D 22 33 22 3E 3C  73 69 78 6D 6C 3A 45 63   er="3">< sixml:Ec 
00000550  72 44 61 74 61 3E 3C 73  69 78 6D 6C 3A 45 63 72   rData><s ixml:Ecr 
00000560  49 6E 66 6F 20 45 63 72  49 6E 66 6F 54 79 70 65   Info Ecr InfoType 
00000570  3D 22 45 66 74 41 50 49  22 20 45 63 72 49 6E 66   ="EftAPI " EcrInf 
00000580  6F 4E 61 6D 65 3D 22 54  49 4D 20 41 50 49 22 20   oName="T IM API"  
00000590  45 63 72 49 6E 66 6F 4D  61 6E 75 66 61 63 74 75   EcrInfoM anufactu 
000005A0  72 65 72 4E 61 6D 65 3D  22 57 6F 72 6C 64 6C 69   rerName= "Worldli 
000005B0  6E 65 22 20 45 63 72 49  6E 66 6F 56 65 72 73 3D   ne" EcrI nfoVers= 
000005C0  22 33 2E 32 30 2E 30 2D  32 35 31 33 22 20 45 63   "3.20.0- 2513" Ec 
000005D0  72 49 6E 66 6F 41 72 63  68 69 74 65 63 74 75 72   rInfoArc hitectur 
000005E0  65 3D 22 2E 4E 45 54 22  2F 3E 3C 73 69 78 6D 6C   e=".NET" /><sixml 
000005F0  3A 45 63 72 49 6E 66 6F  20 45 63 72 49 6E 66 6F   :EcrInfo  EcrInfo 
00000600  54 79 70 65 3D 22 4F 73  22 20 45 63 72 49 6E 66   Type="Os " EcrInf 
00000610  6F 4E 61 6D 65 3D 22 4D  69 63 72 6F 73 6F 66 74   oName="M icrosoft 
00000620  20 57 69 6E 64 6F 77 73  20 4E 54 20 36 2E 32 2E    Windows  NT 6.2. 
00000630  39 32 30 30 2E 30 22 20  45 63 72 49 6E 66 6F 56   9200.0"  EcrInfoV 
00000640  65 72 73 3D 22 36 2E 32  2E 39 32 30 30 2E 30 22   ers="6.2 .9200.0" 
00000650  20 45 63 72 49 6E 66 6F  41 72 63 68 69 74 65 63    EcrInfo Architec 
00000660  74 75 72 65 3D 22 57 69  6E 33 32 4E 54 22 2F 3E   ture="Wi n32NT"/> 
00000670  3C 2F 73 69 78 6D 6C 3A  45 63 72 44 61 74 61 3E   </sixml: EcrData> 
00000680  3C 2F 73 69 78 6D 6C 3A  52 65 71 75 65 73 74 3E   </sixml: Request> 
00000690  53 49 58 6D 6C 02 00 93  01 3C 3F 78 6D 6C 20 76   SIXml..“ .<?xml v 
000006A0  65 72 73 69 6F 6E 3D 22  31 2E 30 22 20 65 6E 63   ersion=" 1.0" enc 
000006B0  6F 64 69 6E 67 3D 22 55  53 2D 41 53 43 49 49 22   oding="U S-ASCII" 
000006C0  3F 3E 3C 73 69 78 6D 6C  3A 4E 6F 74 69 66 69 63   ?><sixml :Notific 
000006D0  61 74 69 6F 6E 20 78 6D  6C 6E 73 3A 73 69 78 6D   ation xm lns:sixm 
000006E0  6C 3D 22 68 74 74 70 3A  2F 2F 77 77 77 2E 77 6F   l="http: //www.wo 
000006F0  72 6C 64 6C 69 6E 65 2E  63 6F 6D 2F 22 20 46 75   rldline. com/" Fu 
00000700  6E 63 74 69 6F 6E 47 72  6F 75 70 3D 22 53 74 61   nctionGr oup="Sta 
00000710  74 75 73 22 20 46 75 6E  63 74 69 6F 6E 3D 22 4B   tus" Fun ction="K 
00000720  65 65 70 41 6C 69 76 65  22 2F 3E 53 49 58 6D 6C   eepAlive "/>SIXml 
00000730  02 00 9D 01 3C 3F 78 6D  6C 20 76 65 72 73 69 6F   ..ť.<?xm l versio 
00000740  6E 3D 22 31 2E 30 22 20  65 6E 63 6F 64 69 6E 67   n="1.0"  encoding 
00000750  3D 22 55 53 2D 41 53 43  49 49 22 3F 3E 3C 73 69   ="US-ASC II"?><si 
00000760  78 6D 6C 3A 52 65 71 75  65 73 74 20 78 6D 6C 6E   xml:Requ est xmln 
00000770  73 3A 73 69 78 6D 6C 3D  22 68 74 74 70 3A 2F 2F   s:sixml= "http:// 
00000780  77 77 77 2E 77 6F 72 6C  64 6C 69 6E 65 2E 63 6F   www.worl dline.co 
00000790  6D 2F 22 20 46 75 6E 63  74 69 6F 6E 47 72 6F 75   m/" Func tionGrou 
000007A0  70 3D 22 41 64 6D 69 6E  22 20 46 75 6E 63 74 69   p="Admin " Functi 
000007B0  6F 6E 3D 22 4C 6F 67 6F  75 74 22 20 53 65 71 75   on="Logo ut" Sequ 
000007C0  65 6E 63 65 4E 75 6D 62  65 72 3D 22 34 22 2F 3E   enceNumb er="4"/> 
Unfortunately, for proper communication, it is required to send the correct header in which the SIXml magic number is sent. I think there is a check number in this header, but I don't know how it is calculated.
I wrote to the Polish branch of WorldLine, but so far no response :(
User avatar
serge_girard
Posts: 3309
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: Payment terminal TIMAPI.DLL

Post by serge_girard »

Maybe you can surpass with a small PHP program?
There's nothing you can do that can't be done...
Post Reply