1 of 40

ECR 2 EFT WEB X64�RUN AS SERVICE INSTALLATION PROCESS - 1155

Cardlink |

2 of 40

Το αρχείο εγκατάστασης JDK 11.0.11 βρίσκεται εδώ

Εγκαθιστούμε το JDK 11.0.11

Στο Administration Manual, Κεφάλαιο 7 μπορεί να γίνει εγκατάσταση διαφορετικού JRE αν επιθυμεί ο πελάτης.

2

3 of 40

Εντοπίζουμε το path του jdk όπως εδώ → C:\Program Files\Java\jdk-11.0.11\bin\server\jvm.dll και το κάνουμε copy. (Το συγκεκριμένο path θα χρησιμοποιηθεί για την εγκατάσταση του Service ECR2EftWEB)

Εύρεση Αρχείου jvm.dll

3

4 of 40

Το αρχείο εγκατάστασης Ecr2EftWEB-6.3.0.exe βρίσκεται εδώ

Εγκατάσταση Ecr2EftWEB

4

5 of 40

Για την εγκατάσταση του Service θα πρέπει να παραμετροποιήσουμε το αρχείο .bat που βρίσκεται εγκατεστημένο στα program files του Sonoma.

Εύρεση Αρχείου C:\Program Files (x86)\Sonoma\Ecr2EftWEB\winsrv ανοίγουμε με notepad++ το installwinsrv_x64.bat

Διαμόρφωση εγκατάστασης αρχείου .Bat Service

5

6 of 40

ΠΡΙΝ

ΜΕΤΑ

Στο σημείο που γράφει --Jvm=auto ^ το μετατρέπουμε σε --Jvm="C:\Program Files\Java\jdk-11.0.11\bin\server\jvm.dll" ^ (ή το αντίστοιχο path Slide 3 (Εύρεση Αρχείου jvm.dll) εντός των pathToFile).

Διαμόρφωση Αρχείου .Bat

6

7 of 40

Στο --StartMode=jvm ^ το μετατρέπουμε σε --StartMode=Jvm ^ (δηλαδή κεφαλαίο το J όπως αρχικοποιείται και παραπάνω)

ΠΡΙΝ

META

Διαμόρφωση Αρχείου .Bat

7

8 of 40

Στο σημείο που γράφει --StopMode=jvm ^ το μετατρέπουμε σε --StopMode=Jvm ^ (με κεφαλαίο δηλαδή και πάλι το J)

ΠΡΙΝ

META

Διαμόρφωση Αρχείου .Bat

8

9 of 40

Κατά την διαδικασία αποθήκευσης θα εμφανίζει ένα μήνυμα σφάλματος “Save Failed”. Είναι φυσιολογικό καθώς για να αποθηκεύσει τις αλλαγές θα χρειαστεί δικαιώματα Admin.

Αποθηκεύουμε ως Admin το αρχείο

Διαμόρφωση Αρχείου .Bat & Εκτέλεση

Με δεξί Click εκτελούμε το αρχείο .bat με admin δικαιώματα (Run as administrator) ώστε να εγκατασταθεί στα Services.

9

10 of 40

Ελέγχουμε στα Services του υπολογιστή ότι έχει γίνει ορθή εγκατάσταση του Ecr2EftWeb Service καθώς και το Status να βρίσκεται σε κατάσταση “Running”.

Έλεγχος Επιτυχής Εγκατάστασης του Ecr2EftWeb Service

10

11 of 40

By Default το Service “ακούει” στην πόρτα 8080.

Σε περίπτωση που θέλουμε να αλλάξουμε την Πόρτα θα πρέπει αν ακολουθήσουμε το παρακάτω βήμα:�Μέσω του file explorer, πληκτρολογούμε στην %programdata% -> επιλέγουμε τον φάκελο Sonoma -> Ecr2EftWeb -> και ανοίγουμε με notepad++ το application.properties.

Στη γραμμή 9 μπορούμε να διαμορφώσουμε την πόρτα του Service.

Αλλαγή Service Port

11

12 of 40

Παραμετροποίηση CORS Policy

z

  • Ρύθμιση των paths μπορούν να κάνουν request μέσω Http και σε περίπτωση που έχουμε περισσότερα από 1 path κάνουμε χρήση coma separator για να τα προσθέσουμε.

Σε περίπτωση που αφαιρέσουμε τα CORS Policy δεν θα μπορέσουν να εκτελεστούν request αυτά.

12

13 of 40

Για να μπορέσουμε να προβούμε σε δοκιμαστικό έλεγχο του service, θα χρειαστεί να εγκαταστήσουμε το Insomnia.rest

Με το Insomnia.rest έχουμε την δυνατότητα να εκτελέσουμε post requests της μορφής Json προς το τερματικό μας.

  • Έλεγχος ορθής λειτουργίας του Ecr2EftWeb Service.
  • Διαμόρφωση και εκτέλεση request προς το τερματικό.

Έλεγχος Ορθής Λειτουργίας Ecr2EftWeb Service

13

14 of 40

1. Επιλέγουμε Δημιουργία New Request

2. Προσθέτουμε το όνομα και στην συνέχεια επιλέγουμε Post και Json. Πατάμε Create.

Δημιουργία Post Request (insomnia.rest)

14

15 of 40

  • URL: εφόσον έχουμε εγκαταστήσει το Insomnia.rest στον υπολογιστή μας, σαν URL πληκτρολογούμε localhost:8080/sale (localhost, Service Port, τύπος request).
  • Στην σύνταξη του Json μηνύματος θα πρέπει να παραμετροποιήσουμε το Host και το Port σύμφωνα με τις ρυθμίσεις του τερματικού μας ώστε να το κάνουμε target.

Json Sale Post Message Syntax:

Path address: localhost:8080/sale

{

"serviceData":{

"host":"192.168.2.234",

"port":"4000",

"ecrid":"77400039"

},

"transactionData":{

"firstByteOriginalTrans":"0",

"uniqueTxnId":"WGKWiWNNpfPBWYLFuTSTOvqgmVwHUPLB",

"amount":"0.20"

}

}

Σύνταξη Post Request (insomnia.rest) Τύπου Sale

15

16 of 40

Ecr Documentation with Examples With Receipt Mapping

Transaction Flow Σύνδεση με ΥΠΑΗΕΣ

ΡΟΗ ΠΛΗΡΟΦΟΡΙΑΣ

1. Το ERP στέλνει την συναλλαγή στον ΥΠΑΗΕΣ. O ΥΠΑΗΕΣ υπογράφει με το

private key και επιστρέφει την συναλλαγή hashed στο ERP.

2. To ERP στέλνει την συν γή στο POS με το καθορισμένο πρωτόκολλο. Το

POS:

� I. Αναγνωρίζει τον εκδότη του κλειδιού ΥΠΑΗΕΣ από το ID του.

II. Από τα στοιχεία της συναλλαγής που θα λάβει από το ERP in plain text , επιλέγει αυτά που απαιτούνται προκειμένου να υπολογίσει με το δικό του copy του public key του ΥΠΑΗΕΣ το hash value

III. Υπολογίζει το hash value

IV. Συγκρίνει το παραγόμενο hash value με το hash value που έλαβε

από το ERP. Αν είναι ίδιο, προχωράει στην λήψη έγκρισης. Αν είναι

διαφορετικό, επιστρέφει απόρριψη στο ERP με ανάλογο error code/message.

V. Κάνει τον έλεγχο του payment amount (payment amount <= του

amount (part of hash value calculation plain text στο 2.� II παραπάνω )). Αν η συναλλαγή είναι ετεροχρονισμένη, γίνεται

έλεγχος ημερομηνίας και ώρας από το POS. Αν όλα είναι οκ,

προωθεί την συναλλαγή για έγκριση στον Acquirer.�

3. Όταν λάβει έγκριση, παράγει το unique tx ref βάσει κανόνων 1155

4. Επιστρέφει την απάντηση στο ERP μαζί με το original hash value και το

unique tx ref.

5. Το ERP οριστικοποιεί την πράξη και ενημερώνει τον ΥΠΑΗΕΣ για το τελικό

αποτέλεσμα.

6. Ο ΥΠΑΗΕΣ ενημερώνει την ΑΑΔΕ (myData)

16

17 of 40

Simple Sale Transaction

Path address:

localhost:8080/sale

{

"serviceData": {

"host": "192.168.2.220",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"firstByteOriginalTrans": "0",

"uniqueTxnId": "9252e523e1df4064feeb1c83e43d955c",

"amount": "0.20",

"signature": "MEUCIQC/48bfWKHK6pb2AZU4/A10yNzVeCevgNbgyhN2HBwg9AIgYhMpGGxdYrBFrP9tGQLJpbh3pTcggMXxkoIxjta44cc=",

"providersId": "11",

"uniqueEntryNumber": "400013293980417",

"uid": "22ECB6180B3D0E7770EE235A1A3A7CD2EBE23660",

"dateTimeProviderSignature": "20240521094109",

"amountPayable": "20",

"netValue": "0",

"vatValue": "0",

"totalValue": "20",

"eftTerminalId": "8512288",

"posId": "8512288",

"ecrId": "8512288"

}

}

Json Message Response (from POS)

Json Syntax Messages

{

"transactionData": {

"msgType": "210",

"paymentSpecs": "P@1",

"authorizationCode": "001001",

"city": "AMAROYSION",

"msgOptions": "0003",

"amountPayable": "20",

"mid": "624330972",

"cardExpiryDate": "261130",

"txnDateTime": "20240314154105",

"responseCodeMessage": "Approved",

"responseCode": "00",

"merchantName": "Novidea",

"uniquePaymentIdECR": "tr2;109;000001;000001;001001",

"referenceNumber": "001001",

"sn": "1640000000",

"acquirerName": "WORLDLINE/EUROBANK",

"applicationName": "Debit Mastercard",

"msgCode": "00",

"batchNumber": "001",

"amount": "0.20",

"address": "AGIOY KONSTANTINOY 50 MAROYSI",

"eftTerminalId": "8512288",

"cardType": "MASTERCARD",

"length": "0364",

"sessionId": "008311",

"numberOfPostdatedInstallments": "0000",

"accountNumber": "5351 42** **** 1221",

"tc": "03000000303000",

"token": "",

"transactionType": "101",

"bankId": "026",

"go4moreProducts": "",

"numberOfInstallments": "",

"phone": "6971234567",

"uniquePaymentId": "tr1;109;000000001001;001001",

"tlvData": "TL0022TN00TT1419700101000000",

"posTerminalVersion": "7.0.0",

"aid": ""

},

"error": "null"

}

17

18 of 40

Sale with installments Transaction

Path address:

localhost:8080/sale

Json Message Request:

{

"serviceData": {

"host": "192.168.2.220",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"firstByteOriginalTrans": "0",

"uniqueTxnId": "9252e523e1df4064feeb1c83e43d955c",

"tlvData" : "TL0007NI03005",

"amount": "0.20",

"signature": "MEUCIQC/48bfWKHK6pb2AZU4/A10yNzVeCevgNbgyhN2HBwg9AIgYhMpGGxdYrBFrP9tGQLJpbh3pTcggMXxkoIxjta44cc=",

"providersId": "11",

"uniqueEntryNumber": "400013293980417",

"uid": "22ECB6180B3D0E7770EE235A1A3A7CD2EBE23660",

"dateTimeProviderSignature": "20240521094109",

"amountPayable": "20",

"netValue": "0",

"vatValue": "0",

"totalValue": "20",

"eftTerminalId": "8512288",

"posId": "8512288",

"ecrId": "8512288"

}

}

Json Message Response (from POS)

{

"transactionData": {

"msgType": "210",

"paymentSpecs": "P@1",

"authorizationCode": "001001",

"city": "AMAROYSION",

"msgOptions": "0003",

"amountPayable": "20",

"mid": "624330972",

"cardExpiryDate": "261130",

"txnDateTime": "20240314154105",

"responseCodeMessage": "Approved",

"responseCode": "00",

"merchantName": "Novidea",

"uniquePaymentIdECR": "tr2;109;000001;000001;001001",

"referenceNumber": "001001",

"sn": "1640000000",

"acquirerName": "WORLDLINE/EUROBANK",

"applicationName": "Debit Mastercard",

"msgCode": "00",

"batchNumber": "001",

"amount": "0.20",

"address": "AGIOY KONSTANTINOY 50 MAROYSI",

"eftTerminalId": "8512288",

"cardType": "MASTERCARD",

"length": "0364",

"sessionId": "008311",

"numberOfPostdatedInstallments": "0000",

"accountNumber": "5351 42** **** 1221",

"tc": "03000000303000",

"token": "",

"transactionType": "101",

"bankId": "026",

"go4moreProducts": "",

"numberOfInstallments": "05",

"phone": "6971234567",

"uniquePaymentId": "tr1;109;000000001001;001001",

"tlvData": "TL0025TN03001TT1419700120032831",

"posTerminalVersion": "7.0.0",

"aid": ""

},

"error": "null"

}

Json Syntax Messages

18

19 of 40

Void Transaction

Json Message Response (from POS)

Json Syntax Messages

Path address:

localhost:8080/fullvoid

Json Message Request:

{

"serviceData": {

"host": "192.168.2.220",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"firstByteOriginalTrans": "0",

"uniqueTxnId": "79a221cf33d44f6cf6a941458485adc0",

"uniqueIntegratorId": "3fc45e044ab14ff0b1a2a77a52927149",

"amount": "0.20",

"referenceNumber": "001001",

"signature": "MEYCIQDRjDclKhsrtv0mIvaaMtfKTrBcOds+BfgRWffq3pfyUgIhAMkFCieEGBevMg+zV7+iOdp5IM2xKwfTNW3WBgAeooPt",

"providersId": "11",

"uniqueEntryNumber": "400013293980417",

"uid": "22ECB6180B3D0E7770EE235A1A3A7CD2EBE23660",

"dateTimeProviderSignature": "20240521094109",

"amountPayable": "20",

"netValue": "0",

"vatValue": "0",

"totalValue": "20",

"eftTerminalId": "8512288",

"posId": "8512288",

"ecrId": "8512288"

}

}

{

"transactionData": {

"eftTerminalId": "8512288",

"msgType": "210",

"authorizationCode": "001002",

"amountPayable": "20",

"cardType": "MASTERCARD",

"length": "0189",

"sessionId": "008354",

"accountNumber": "5351 42** **** 1221",

"responseCodeMessage": "Approved",

"txnDateTime": "20240314154105",

"token": "",

"responseCode": "00",

"uniquePaymentIdECR": "tr2;109;000001;000002;001002",

"referenceNumber": "001002",

"uniquePaymentId": "tr1;109;000000001002;001002",

"tlvData": "TL0022TN00TT1419700101000000",

"msgCode": "04",

"batchNumber": "001"

},

"error": "null"

}

19

20 of 40

Refund Transaction

Path address:

localhost:8080/refund

Json Message Request:

{

"serviceData": {

"host": "192.168.2.220",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"firstByteOriginalTrans": "0",

"uniqueTxnId": "367f7ff38ecb466bd83a04fb7ddfd3a4",

"uniqueIntegratorId": "9dfedf4311324647bff848844f3fa0a1",

"amount": "0.25",

"tlvData": "TL0010OR06001001",

"signature": "MEUCIBKXI84w7iCztF6IrV+itu4Y+LtNRxzOan+hWnaVdfYxAiEAkBfU61b5Xm9DUdWbXPM5QDmk4RuzY/wj1CnoSROfzXY=",

"providersId": "11",

"uniqueEntryNumber": "400013293980417",

"uid": "22ECB6180B3D0E7770EE235A1A3A7CD2EBE23660",

"dateTimeProviderSignature": "20240521094109",

"amountPayable": "25",

"netValue": "0",

"vatValue": "0",

"totalValue": "25",

"eftTerminalId": "8512288",

"posId": "8512288",

"ecrId": "8512288"

}

}

Json Message Response (from POS)

{

"transactionData": {

"msgType": "210",

"paymentSpecs": "P@1",

"city": "AMAROYSION",

"authorizationCode": "001002",

"msgOptions": "0003",

"amountPayable": "100",

"mid": "933021054",

"cardExpiryDate": "261130",

"txnDateTime": "20240314154105",

"responseCodeMessage":"Approved",

"merchantName": "Novidea",

"responseCode": "00",

"uniquePaymentIdECR": "tr2;109;000001;000002;001002",

"referenceNumber": "001002",

"sn": "1640000000",

"applicationName": "Debit Mastercard",

"msgCode": "20",

"acquirerName": "WORLDLINE/EUROBANK",

"batchNumber": "001",

"amount": "0.25",

"address": "AGIOY KONSTANTINOY 50 MAROYSI",

"eftTerminalId":"8512288",

"length": "0396",

"cardType": "MASTERCARD",

"sessionId": "008367",

"accountNumber": "5351 42** **** 1221",

"numberOfPostdatedInstallments": "0000",

"token": "",

"tc": "03000000303000",

"transactionType": "201",

"bankId": "026",

"go4moreProducts": "",

"uniquePaymentId": "tr1;109;000000001002;001002",

"phone": "6971234567",

"tlvData": "TL0022TN00TT1419700101000000",

"numberOfInstallments": "",

"posTerminalVersion": "7.0.0",

"aid": ""

},

"error": "null"

}

Json Syntax Messages

20

21 of 40

Normal Preauth

Path address:

localhost:8080/normalpreauth

Json Message Request:

{

"serviceData": {

"host": "192.168.2.220",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"uniqueTxnId": "3e1376be7fbf434dfb5af13f4a18c6b5",

"amount": "30.00"

}

}

Json Message Response (from POS)

{

{

"transactionData": {

"msgType": "110",

"paymentSpecs": "PN1",

"city": "HRAKLEION",

"authorizationCode": "320257",

"msgOptions": "0003",

"mid": "0023839673",

"cardExpiryDate": "2310",

"responseCodeMessage": "Approved",

"responseCode": "00",

"merchantName": "CARDLINK S.A.",

"referenceNumber": "746003",

"sn": "1490204937",

"msgCode": "00",

"applicationName": "",

"acquirerName": " ALPHA BANK/NEXI",

"batchNumber": "000746",

"amount": "30.00",

"address": "ANTYPA MARINOY 41 45 HRAKLEIO",

"eftTerminalId": "8512288",

"cardType": "MASTERCARD",

"length": "0323",

"sessionId": "475295",

"numberOfPostdatedInstallments": "0000",

"accountNumber": "5167 32** **** 8351",

"tc": "1434084BB5889060",

"token": "",

"transactionType": "PRE_AUTH ",

"bankId": "011",

"numberOfInstallments": "00",

"phone": "2106100670",

"tlvData": "TL0025TN03003TT1420221114155648",

"posTerminalVersion": "5.5.0 ",

"aid": ""

},

"error": "null"

}}

Json Syntax Messages

21

22 of 40

Normal Preauth Completion

Path address:

localhost:8080/normalpreauth

Json Message Request:

{

"serviceData": {

"host": "192.168.2.234",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"uniqueTxnId": "3e1376be7fbf434dfb5af13f4a18c6b5",

"amount": "30.00",

"referenceNumber": "001001",

"authorizationCode": "001001",

"uid": "22ECB6180B3D0E7770EE235A1A3A7CD2EBE23660",

"uniqueEntryNumber": "400013293980417",

"dateTimeProviderSignature": "20240521094109",

"amountPayable": "3000",

"netValue": "0",

"vatValue": "0",

"totalValue": "3000",

"posId": "8209062",

"providersId": "11",

"signature": "MEUCIQCUr9dRdXY2DuuKKOnbdO9+Xn4ofMyUzQsg4YjB/BgfmAIgMymiwJplRfL4taWJYrzlTKk0AtcFZWTyjTlV8dFHEyc="

}

}

Json Message Response (from POS)

{

"transactionData": {

"msgType": "110",

"paymentSpecs": "P@1",

"city": "HRAKLEION",

"authorizationCode": "002001",

"msgOptions": "0003",

"amountPayable": "3000",

"mid": "933021054",

"cardExpiryDate": "261130",

"txnDateTime": "20240314154105",

"responseCodeMessage": "Approved",

"merchantName": "CARDLINK S.A",

"responseCode": "00",

"uniquePaymentIdECR": "tr2;109;000002;000001;002001",

"referenceNumber": "002001",

"sn": "1640000000",

"applicationName": "Debit Mastercard",

"msgCode": "80",

"acquirerName": "WORLDLINE/EUROBANK",

"batchNumber": "002",

"amount": "30.00",

"address": "ANTYPA MARINOY 41 45 HRAKLEIO",

"eftTerminalId": "8512288",

"length": "0410",

"cardType": "MASTERCARD",

"sessionId": "008444",

"accountNumber": "5351 42** **** 1221",

"numberOfPostdatedInstallments": "0000",

"token": "",

"tc": "03000000303000",

"transactionType": "PRE AUTH COMPLETION",

"bankId": "026",

"uniquePaymentId": "tr1;109;000000002001;002001",

"phone": "6971234567",

"tlvData": "TL0022TN00TT1419700101000000",

"numberOfInstallments": "",

"posTerminalVersion": "7.0.0",

"aid": ""

},

"error": "null"

}

Json Syntax Messages

22

23 of 40

Reconciliation

Path address:

localhost:8080/reconciliation

Json Message Request:

{

"serviceData":{

"host":"192.168.2.234",

"port":"4000",

"ecrid":"77618446"

},

"transactionData":{

"uniqueTxnId":"WGKWiWNNpfPBWYLFuTSTOvqgmVwHUPLB",

"reconciliationMode" : 0,

"batchNumber" : "000000"

}

}

Json Message Response (from POS)

{

"transactionData": {

"batchTotals": "000",

"msgType": "510",

"eftTerminalId": "77618446",

"length": "0058",

"sessionId": "008425",

"batchOriginalAmount": "0.00",

"batchNetAmount": "0.00",

"responseCodeMessage": "Approved",

"responseCode": "00",

"tlvData": "",

"batchTotalCounter": "2",

"msgCode": "20",

"reconciliationMode": "0",

"batchNumber": "001"

},

"error": "null"

}

Json Syntax Messages

23

24 of 40

Merchant Info

Path address:

localhost:8080/merchantinfo

Json Message Request:

{

"serviceData":{

"host":"192.168.2.223",

"port":"4000",

"ecrid":"8512288"

},

"transactionData":

{}

}

Json Message Response (from POS)

{

"transactionData": {

"vatRegNo": "",

"msgType": "810",

"address": "41-45 Marinou Antipa",

"eftTerminalId": "000077400039",

"town": "Athens",

"postalCode": "00000 ",

"length": "0092",

"sessionId": "000019",

"mcc": "4121",

"responseCode": "00",

"merchantName": "Cardlink Test",

"msgCode": "10"

},

"error": "null"

}

Json Syntax Messages

24

25 of 40

Register Receipt

Path address:

localhost:8080/regreceipt

Json Message Request:

{

"serviceData": {

"host": "192.168.2.228",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"uniqueTxnId": "3e09a3ce327242f48dc872b6b6ea22bd",

"amount": "0.20",

"txnDateTime": "20240521094109",

"operatorNum": "1",

"rcptNum": "1",

"customDataRR": "",

"foodService": "0",

"uid": "22ECB6180B3D0E7770EE235A1A3A7CD2EBE23660",

"dateTimeProviderSignature": "20240521094109",

"amountPayable": "20",

"netValue": "0",

"vatValue": "0",

"totalValue": "20",

"posId": "8209062",

"ecrId": "8209062",

"signature": "MEQCIBj/53OJp22MIBRYix64Zav/ZZWCjx7Q2yTwGjBoLq6SAiAW29xOvKwou20IY3tYpPZvuKSLOkPO5uG3S3jPoKkuow==",

"uniqueEntryNumber": "400013293980417",

"providersId": "11"

}

}

Json Message Response (from POS)

{

"transactionData": {

"length": "0017",

"msgType": "610",

"sessionId": "008523",

"msgCode": "40",

"responseCode": "00"

},

"error": "null"

}

Json Syntax Messages

25

26 of 40

Resend All - Start (Step 1)

Path address:

localhost:8080/resendall/start

Json Message Request:

{

"serviceData": {

"host": "192.168.2.228",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"dateTimeRA": "20240521094109",

"ecrId": "8512288"

}

}

Json Message Response (from POS)

Json Syntax Messages

{

"transactionData": {

"totalTxnsCount": "000001",

"msgType": "650",

"length": "0024",

"resendStatus": "00",

"sessionId": "008554",

"msgCode": "00"

},

"error": "null"

}

26

27 of 40

Json Syntax Messages

Resend All - Next (Step 2)

Path address:

localhost:8080/resendall/next

Json Message Request:

{

"serviceData": {

"host": "192.168.2.228",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"dateTimeRA": "20240521094109",

"ecrId": "8512288",

"resendSessionId": "008554"

}

}

Json Message Response (from POS)

{

"transactionData": {

"amount": "1.00",

"msgType": "650",

"authorizationCode": "002002",

"signature": "MEQCIBj/53OJp22MIBRYix64Zav/ZZWCjx7Q2yTwGjBoLq6SAiAW

29xOvKwou20IY3tYpPZvuKSLOkPO5uG3S3jPoKkuow==",

"length": "0212",

"sessionId": "008560",

"responseCodeMessage": "Approved",

"txnDateTime": "19700101000000",

"responseCode": "00",

"uniquePaymentIdECR": "tr2;109;000002;000002;002002",

"ecrId": "",

"uniquePaymentId": "tr1;109;000000002002;002002",

"resendStatus": "02",

"msgCode": "10",

"ecrToken": ""

},

"error": "null"

}

27

28 of 40

Json Syntax Messages

Resend All - Finish (Step 3)

Path address:

localhost:8080/resendall/finish

Json Message Request:

{

"serviceData": {

"host": "192.168.2.228",

"port": "4000",

"ecrid": "8512288"

},

"transactionData": {

"dateTimeRA": "20240521094109",

"ecrId": "8512288",

"resendSessionId": "008566"

}

}

Json Message Response (from POS)

{

"transactionData": {

"ecrId": "8209062",

"msgType": "650",

"length": "0025",

"resendStatus": "00",

"sessionId": "008569",

"msgCode": "20"

},

"error": "null"

}

28

29 of 40

Πιθανά Προβλήματα - Firewall

Σε περίπτωση που το Service ενώ είναι σε κατάσταση Running και το τερματικό δεν λαμβάνει κάποιο request, θα πρέπει να γίνει έλεγχος αν υπάρχει exception στο firewall. Αν δεν υπάρχει ακολουθούμε τα παρακάτω βήματα

Βήμα 1. Αναζήτηση από το windows search “ Allow an app through windows firewall”.

Βήμα 2. Επιλέγουμε Change Settings.

Βήμα 3. Αν δεν υπάρχει στην λίστα το “Java(TM) Platform SE Binary” με τικαρισμένο private και Public, τότε επιλέγουμε “Allow another app…”

29

30 of 40

Πιθανά Προβλήματα - Firewall

Βήμα 4. Επιλέγουμε Browse ώστε να αναζητήσουμε το java.exe αρχείο apo to JDK 11.0.11 που εγκαταστήσαμε στην αρχή.

Βήμα 5. Βρίσκουμε το Path του JDK 11.0.11 και επιλέγουμε από το φάκελο bin το αρχείο Java.exe.

30

31 of 40

Πιθανά Προβλήματα - Firewall

Βήμα 6. Επιλέγουμε Add.

Βήμα 7. Επιβεβαιώνουμε ότι το private και το public είναι τικαρισμένο.

31

32 of 40

 

  • ECR2EFTWEB requests documentation

https://docs.google.com/document/d/1184YdeYYlalDHuOloes50nRg8_N0Pov9/edit?usp=sharing&ouid=107184250549508406083&rtpof=true&sd=true

Links

32

33 of 40

ECR 2 EFT WEB REMOVE BASKET DB

Cardlink |

34 of 40

Ανοίγουμε τα Services του υπολογιστή και επιλέγουμε να σταματήσουμε το Ecr2EftWeb Service. Το Status θα είναι κενό.

Προσωρινή Παύση του Ecr2EftWeb Service

34

35 of 40

Για την αφαίρεση του basket θα πρέπει να ακολουθήσουμε το παρακάτω βήμα:�Μέσω του file explorer, πληκτρολογούμε στο file path %programdata% -> επιλέγουμε τον φάκελο Sonoma -> Ecr2EftWeb -> και ανοίγουμε με notepad++ το application.properties.

Διαγράφουμε τις γραμμές από 1 έως 5:

spring.datasource.driver-class-name=org.h2.Driver

spring.datasource.url=jdbc:h2:${ProgramData}/Sonoma/Ecr2EftWEB/basketdb/ecr2eftweb;AUTO_SERVER=TRUE;

spring.datasource.username=ecr2eftweb

spring.datasource.password=ecr2eftweb

spring.jpa.hibernate.ddl-auto=update

Αφαίρεση Βάσης Δεδομένων Basket ECR 2 EFT Web

35

36 of 40

Τελική Μορφή Αρχείου Application.properties

Προσθέτουμε τα πεδία CORS Policy Configuration

allowOrigins.paths=*

allowOrigins.enabled=true

allowOrigins.mapping=/**

Έπειτα αποθηκεύουμε το αρχείο.

36

37 of 40

Ανοίγουμε τα Services του υπολογιστή και επιλέγουμε να εκκινήσουμε το Ecr2EftWeb Service. Το Status θα είναι “Running”.

Εκκίνηση του Ecr2EftWeb Service

37

38 of 40

Ενοποίηση Απόδειξης Ταμειακού & Τερματικού (Pos)

Cardlink |

39 of 40

Ενοποίηση Απόδειξης – Τι κερδίζω;

Σκοπός του Project είναι η μείωση εκτύπωσης ενός μεγάλου μέρους των αποδείξεων από το τερματικό (Pos).

Ποιο είναι το όφελος;

  • Μείωση Χρόνου Αναμονής Του Πελάτη.
  • Ταχύτερη Εξυπηρέτηση Των Πελατών.
  • Μείωση Κατανάλωσης Χαρτιού – Think Green
  • Ενιαία Απόδειξη Ταμειακού με Τερματικού (Pos)
  • Μικρότερο Maintenance του Τερματικού

39

40 of 40

40