Payment terminal TIMAPI.DLL

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

User avatar
mol
Posts: 3774
Joined: Thu Sep 11, 2008 5:31 am
Location: Myszków, Poland
Contact:

Re: Payment terminal TIMAPI.DLL

Post by mol »

I'm waiting for phisical terminal for my client today. I have to install it on Wednesday. If I find a little time, I will test it
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

I tried browsing via UDP, it works without problems. SSL : Off

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 »

Hello Marek
will you have a payment terminal from WORLDLINE?

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

Re: Payment terminal TIMAPI.DLL

Post by edk »

1. Terminal detection by its ID.
2. Errors handling
3. Payment handling (beware with real cards, if you authorize the transaction you can be charged 123.45 EUR!!!)
HMG_Tim.7z
(41.69 KiB) Downloaded 647 times
Georg_BA
Posts: 108
Joined: Fri Apr 07, 2017 5:31 pm
DBs Used: DBF

Re: Payment terminal TIMAPI.DLL

Post by Georg_BA »

Hello Edward.

Thanks for your help

Thank you for your notice. Everything is OK. I received a set of test payment cards for attestation. 6 test cards - security in case of damage 200Eur. Another IP address is entered in the terminal for testing.
Only after testing and approval will it go into full operation.
I have to use my Integrator ID for every transaction.

I'm going to look at your new edits and let you know what the terminal does.

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 »

Hi Edward

On a real payment terminal, I always end up on the Activate function
with error 700

I don't know if there is a problem with the values, cPosId := "POS1234" cUserID := "0".
I don't know what to replace them with in real operation.

This is a message from worldline

The quickest way to get familiar with the Integration is to use a proper (using your target programming language) ECR simulator (from the Extranet SDK package), connect to the test terminal (e.g. using terminal’s IP address), enable logs as FINEST and perform several test transactions. You can then see how the terminal communicates with the ECR and vice versa.

Please also remember that the terminal requires access to addresses and ports in the tables below:

TEST/ETU:
lp
HOST
ip address
name

1
Software download
153.46.253.140:8953 HTTP
tserv.ep2.telekurs.com

2
GKLP
153.46.254.218:62000 TCP
tgklp.telekurs.com

3
Configuration
153.46.253.139:8115 TCP
tsiconfig.ep2.telekurs.com

4
Initialisation
153.46.253.133:2262 TCP
tsiinit.ep2.telekurs.com

5
Authorisation
153.46.253.129:2261 TCP
tfe.ep2.telekurs.com

6
Direct/PMS delivery
153.46.253.135:2264 TCP
tmisubm.ep2.telekurs.com


And later (merchant/store LAN), for production:

PRODUCTION:

lp
HOST
ip address
name

1
Software download
153.46.253.156:8953 HTTP
serv.ep2.telekurs.com

2
GKLP
153.46.254.217:62000 TCP
gklp.telekurs.com

3
Configuration
153.46.253.155:8115 TCP
siconfig.ep2.telekurs.com

4
Initialisation
153.46.253.149:2252 TCP
siinit.ep2.telekurs.com

5
Authorisation
153.46.253.145:2251 TCP
fe.ep2.telekurs.com

6
Direct/PMS delivery
153.46.253.151:2254 TCP
misubm.ep2.telekurs.com


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

Re: Payment terminal TIMAPI.DLL

Post by edk »

Have you tried connecting to the terminal using the "\TIMAPI_DotNet\DotNet\Examples\AdvancedEcr\AdvancedEcr.exe" client? By analyzing the logs, you can see what syntax to send and what responses to expect.
Generally, I base the analysis of ECR - EFT communication on this.

Did you set the "<sixml:IntegratorId>" field in the TIM_Login() function in the "cSIXml" variable definition to the correct value?
I set the value to 0 because I don't know what it should be in your case.

Maybe try to change:

Code: Select all

FUNCTION TIM_Activate ( nSequenceNumber, cUserID )
Local cSIXml := '<?xml version="1.0" encoding="UTF-8"?>' + ;
                '<sixml:Request xmlns:sixml="http://www.worldline.com/" ' + ;
                'FunctionGroup="Admin" ' + ;
                'Function="Activate" ' + ;
                'SequenceNumber="'  + AllTrim( Str( nSequenceNumber ) ) + '">' + ;
                '<sixml:UsrId>' + cUserID + '</sixml:UsrId></sixml:Request>'
RETURN cSIXml
UsrID variable according to documentation: https://six-tim.github.io/timapi/doc/cs ... nal_UserId
PosId variable: https://six-tim.github.io/timapi/doc/cs ... inal_PosId

It's hard for me to refer to the indicated addresses. Generally, without documentation of the SIXml protocol, it's a bit of a downhill job. Lots of trial and error operations, a little bit of guessing, a little bit of intuition.
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 very much for your help.
I have the IntegratorId value set. It is assigned by WorldLine.
According to that instruction, UsrID, PosId are values that can be defined.
But as you write, no documentation of what it is good for.
Your solutions are always very interesting - instructive.

I'm going to take care of AdvancedEcr.exe

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

Re: Payment terminal TIMAPI.DLL

Post by Georg_BA »

AdvancedEcr.exe it reports the same error.
I wrote for support, today is a holiday, so we'll see what I write tomorrow

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

Re: Payment terminal TIMAPI.DLL

Post by edk »

What is the terminal's response to the TIM_GetFeatureRequest() query?
The terminal sends back a lot of parameters, I don't know what they mean and what they are for.

Maybe when logging in you need to return the same parameters as the terminal sends back :roll: :idea:
Perhaps in particular:

Code: Select all

<sixml:ProtocolOptionList><sixml:ProtocolOption OptionType="sixml:ProtocolLevel">3</sixml:ProtocolOption><sixml:ProtocolOption OptionType="sixml:Guides">1</sixml:ProtocolOption><sixml:ProtocolOption OptionType="sixml:AutoCommit">0</sixml:ProtocolOption><sixml:ProtocolOption OptionType="sixml:Dcc">0</sixml:ProtocolOption></sixml:ProtocolOptionList><sixml:PrintOptionList>
I'm guessing again :lol:
Post Reply