Η ομάδα μας είναι διαθέσιμη τώρα και περιμένει το μήνυμά σας. Στείλτε το αίτημά σας και θα το δούμε άμεσα.

OpenCart payments

Πώς λειτουργούν οι πληρωμές Winbank ePay σε OpenCart και γιατί εμφανίζονται missing orders

Στις redirect πληρωμές, το OpenCart στέλνει τον πελάτη στο ασφαλές περιβάλλον της Πειραιώς / Winbank ePay και ενημερώνει την παραγγελία μόνο όταν λάβει έγκυρη επιστροφή στο σωστό success URL.

Τι είναι το redirect payment flow

Στο redirect payment flow, το OpenCart δεν χρεώνει την κάρτα μέσα στο κατάστημα. Το payment extension προετοιμάζει την προσπάθεια πληρωμής και στη συνέχεια μεταφέρει τον πελάτη στο ασφαλές περιβάλλον της Πειραιώς / Winbank ePay.

Το κατάστημα δεν βλέπει στοιχεία κάρτας και δεν ελέγχει το τελικό payment UI της τράπεζας. Η τράπεζα εμφανίζει στον πελάτη το ποσό, τις διαθέσιμες επιλογές πληρωμής και τη διαδικασία επιβεβαίωσης, σύμφωνα με τη σύμβαση του εμπόρου.

Βήμα προς βήμα ροή πληρωμής

Η βασική ροή έχει συγκεκριμένα στάδια. Το κρίσιμο σημείο είναι ότι το OpenCart μαθαίνει το αποτέλεσμα μόνο όταν η τράπεζα επιστρέψει σωστά τα δεδομένα επιβεβαίωσης.

  1. 01

    Ο πελάτης βρίσκεται στο checkout

    Ο πελάτης έχει προϊόντα στο καλάθι και βρίσκεται στο checkout του OpenCart.

  2. 02

    Επιλέγει πληρωμή με κάρτα μέσω Winbank ePay

    Η επιλογή πληρωμής ενεργοποιεί το payment extension που συνδέει το OpenCart με το ePay περιβάλλον.

  3. 03

    Το extension ζητά payment ticket

    Το extension επικοινωνεί με το ePay σύστημα της Πειραιώς και ζητά ένα ticket για το ποσό της συγκεκριμένης παραγγελίας.

  4. 04

    Η Πειραιώς επιστρέφει reference

    Το ePay επιστρέφει ticket ή reference για τη συγκεκριμένη προσπάθεια πληρωμής.

  5. 05

    Το OpenCart κάνει redirect

    Όταν ο πελάτης ολοκληρώσει την παραγγελία, το OpenCart τον μεταφέρει στο ασφαλές περιβάλλον της τράπεζας μαζί με το ticket.

  6. 06

    Ο πελάτης είναι πλέον εκτός καταστήματος

    Από αυτό το σημείο το OpenCart δεν γνωρίζει αν ο πελάτης θα πληρώσει, θα ακυρώσει, θα αποτύχει, θα κλείσει το παράθυρο ή θα εγκαταλείψει τη διαδικασία.

  7. 07

    Η τράπεζα εμφανίζει το αποτέλεσμα

    Αν η πληρωμή ολοκληρωθεί ή ακυρωθεί, το αποτέλεσμα εμφανίζεται στο περιβάλλον της Πειραιώς / Winbank ePay.

  8. 08

    Η Πειραιώς επιστρέφει στο success URL

    Για να ενημερωθεί η παραγγελία, το ePay πρέπει να επιστρέψει τον πελάτη στο σωστό success URL και να στείλει τα απαραίτητα POST δεδομένα.

  9. 09

    Το extension ελέγχει την απάντηση

    Το extension διαβάζει τα POST δεδομένα, ελέγχει αν είναι έγκυρα και αποφασίζει αν πρέπει να ενημερώσει το order status.

  10. 10

    Η παραγγελία ενημερώνεται ή μένει ανοιχτή

    Αν η απάντηση είναι έγκυρη και επιτυχημένη, η παραγγελία ενημερώνεται. Αν δεν υπάρχει έγκυρη επιστροφή, το OpenCart δεν πρέπει να θεωρήσει αυτόματα ότι πληρώθηκε.

Διάγραμμα ροής πληρωμής

Το παρακάτω διάγραμμα δείχνει ποιο σύστημα έχει τον έλεγχο σε κάθε στάδιο της redirect πληρωμής.

  1. 01
    Πελάτης

    Επιλέγει πληρωμή με κάρτα

    Ο πελάτης επιλέγει Winbank ePay στο checkout του OpenCart.

  2. 02
    OpenCart Checkout

    Ζητά προετοιμασία πληρωμής

    Το checkout καλεί το payment extension για να προετοιμάσει την προσπάθεια πληρωμής.

  3. 03
    Winbank ePay Extension

    Στέλνει ποσό και στοιχεία παραγγελίας

    Το extension στέλνει στο ePay τα στοιχεία που χρειάζονται για το ticket.

  4. 04
    Πειραιώς / Winbank ePay

    Επιστρέφει payment ticket

    Η τράπεζα επιστρέφει reference για αυτή τη συγκεκριμένη προσπάθεια.

  5. 05
    Πελάτης

    Πατά ολοκλήρωση παραγγελίας

    Ο πελάτης επιβεβαιώνει ότι θέλει να συνεχίσει προς πληρωμή.

  6. 06
    OpenCart Checkout

    Κάνει redirect με το ticket

    Το κατάστημα μεταφέρει τον πελάτη στο περιβάλλον της τράπεζας.

  7. 07
    Πειραιώς / Winbank ePay

    Εμφανίζει τη σελίδα πληρωμής

    Ο πελάτης βλέπει ποσό, επιλογές και βήματα επιβεβαίωσης στην τράπεζα.

  8. 08
    Πελάτης

    Ολοκληρώνει ή ακυρώνει

    Ο πελάτης πληρώνει, ακυρώνει, αποτυγχάνει ή εγκαταλείπει τη διαδικασία.

  9. 09
    Πειραιώς / Winbank ePay

    Επιστρέφει στο success URL

    Το ePay πρέπει να επιστρέψει τον πελάτη και τα POST δεδομένα στο σωστό URL του καταστήματος.

  10. 10
    Winbank ePay Extension

    Ελέγχει τα POST δεδομένα

    Το extension ενημερώνει την παραγγελία μόνο όταν λάβει έγκυρη επιβεβαίωση.

  11. 11
    OpenCart

    Εμφανίζει success ή επαναφορά στο καλάθι

    Αν η επιβεβαίωση είναι έγκυρη, ο πελάτης βλέπει σελίδα επιτυχίας. Αν όχι, η παραγγελία δεν πρέπει να αλλάξει αυθαίρετα.

Πιθανά αποτελέσματα μετά το redirect

Η ίδια αρχική προσπάθεια πληρωμής μπορεί να καταλήξει σε διαφορετική εικόνα μέσα στο OpenCart, ανάλογα με το αν επιστρέφει σωστά η απάντηση της τράπεζας.

Ο πελάτης μεταφέρεται από το OpenCart στο Winbank ePay με payment ticket.
Έγκυρη επιστροφή

Η παραγγελία ενημερώνεται

Το ePay στέλνει έγκυρο POST στο success URL και το extension αλλάζει το order status σύμφωνα με το αποτέλεσμα.

Μη έγκυρη απάντηση

Η παραγγελία δεν αλλάζει

Αν λείπουν ή δεν επαληθεύονται τα POST δεδομένα, το extension πρέπει να αγνοήσει το request.

Χωρίς επιστροφή

Μπορεί να μείνει missing order

Αν ο πελάτης κλείσει το παράθυρο ή δεν επιστρέψει σωστά, το OpenCart μπορεί να μη λάβει αποτέλεσμα και χρειάζεται χειροκίνητος έλεγχος.

Γιατί εμφανίζονται missing orders στο OpenCart

Το OpenCart μπορεί να δημιουργήσει ή να κρατήσει προσωρινά την παραγγελία πριν επιβεβαιωθεί η πληρωμή. Αυτό επιτρέπει στο checkout να έχει order reference όσο ο πελάτης μεταφέρεται στην τράπεζα.

Αν ο πελάτης φύγει προς το ePay αλλά δεν επιστρέψει σωστά στο κατάστημα, το OpenCart δεν λαμβάνει την τελική επιβεβαίωση και δεν μπορεί να αλλάξει αξιόπιστα την κατάσταση της παραγγελίας.

  • Η παραγγελία μπορεί να υπάρχει στη βάση δεδομένων.
  • Δεν σημαίνει απαραίτητα ότι πληρώθηκε.
  • Δεν σημαίνει απαραίτητα ότι η πληρωμή απέτυχε.
  • Σημαίνει ότι το κατάστημα δεν έλαβε την τελική έγκυρη επιβεβαίωση.
  • Ο διαχειριστής πρέπει να ελέγξει το ePay περιβάλλον ή το email επιβεβαίωσης της τράπεζας.

Γιατί το κατάστημα δεν γνωρίζει πάντα το αποτέλεσμα της πληρωμής

Μετά το redirect, ο πελάτης βρίσκεται στο περιβάλλον της τράπεζας. Το OpenCart δεν εκτελεί πλέον τη διαδικασία πληρωμής και δεν έχει πρόσβαση στο τι κάνει ο πελάτης εκεί.

Αν δεν γίνει σωστά η επιστροφή στο success URL, το κατάστημα δεν λαμβάνει το POST request με το αποτέλεσμα. Σε αυτή την περίπτωση δεν μπορεί να γνωρίζει αυτόματα αν η πληρωμή ολοκληρώθηκε, ακυρώθηκε ή εγκαταλείφθηκε.

Τι είναι το success URL και γιατί είναι σημαντικό

Το success URL είναι η διεύθυνση του OpenCart στην οποία επιστρέφει η Πειραιώς μετά τη διαδικασία πληρωμής. Εκεί το ePay στέλνει τα response δεδομένα που χρειάζεται το extension για να ελέγξει το αποτέλεσμα.

Αν το URL είναι λάθος ή αν κάποιο τεχνικό layer αλλάζει το request, το OpenCart μπορεί να μη λάβει σωστά την επιβεβαίωση ακόμη και όταν ο πελάτης ολοκλήρωσε τη διαδικασία στην τράπεζα.

  • Το success URL πρέπει να είναι το σωστό live URL του καταστήματος.
  • Πρέπει να δέχεται POST requests χωρίς να χάνονται δεδομένα.
  • Πρέπει να έχει έγκυρο SSL certificate.
  • Δεν πρέπει να γίνεται cache το payment callback ή success route.
  • Redirects από HTTP σε HTTPS, non-www σε www ή άλλο canonical path μπορεί να χαλάσουν την επιστροφή αν χάσουν POST data.

Demo και live περιβάλλον

Η Πειραιώς συνήθως ζητά δοκιμαστικές πληρωμές στο demo περιβάλλον για να επιβεβαιωθεί ότι η ροή λειτουργεί σωστά. Όταν δοθούν τα live στοιχεία, η τεχνική ροή παραμένει ίδια, αλλά τα live URLs πρέπει να είναι σωστά δηλωμένα.

Προβλήματα εμφανίζονται συχνά όταν η μετάβαση από demo σε live αλλάζει domain, credentials ή routing χωρίς να ενημερωθεί αντίστοιχα το ePay περιβάλλον.

  • Τα demo URLs μπορεί να έχουν μείνει δηλωμένα στο live περιβάλλον.
  • Το live domain μπορεί να διαφέρει από το demo domain.
  • Το κατάστημα μπορεί να έχει αλλάξει domain ή checkout route.
  • Νέο firewall, cache, CDN ή redirect rule μπορεί να μπλοκάρει την επιστροφή.
  • Το success URL μπορεί να μη δέχεται σωστά POST requests.

Μπορεί να γίνει διπλή πληρωμή;

Σε φυσιολογική ροή, μία προσπάθεια πληρωμής αντιστοιχεί σε ένα συγκεκριμένο ticket ή reference και σε ένα συγκεκριμένο ποσό που εμφανίζεται στο περιβάλλον της Πειραιώς.

Το extension δεν χρεώνει κάρτες απευθείας. Η τελική χρέωση γίνεται στο περιβάλλον της τράπεζας, αφού ο πελάτης δει και επιβεβαιώσει το ποσό.

Δεν είναι σωστό να λέμε ότι διπλή πληρωμή δεν μπορεί να συμβεί ποτέ. Αν ο πελάτης ξεκινήσει δύο ξεχωριστές παραγγελίες ή δύο ξεχωριστές προσπάθειες πληρωμής, μπορεί να υπάρξουν δύο ξεχωριστές κινήσεις επειδή πρόκειται για διαφορετικές διαδικασίες.

  • Για κάθε προσπάθεια, ο πελάτης βλέπει το ποσό στην Πειραιώς πριν επιβεβαιώσει.
  • Το OpenCart δεν μπορεί να χρεώσει κάρτα χωρίς ολοκλήρωση της διαδικασίας στο ePay.
  • Αν υπάρχει αμφιβολία, ο διαχειριστής ελέγχει το ePay admin ή το email επιβεβαίωσης της τράπεζας.

Τι να ελέγξετε όταν η παραγγελία δεν ενημερώνεται

Όταν υπάρχει πληρωμή στην τράπεζα αλλά η παραγγελία δεν φαίνεται ολοκληρωμένη στο OpenCart, ο έλεγχος πρέπει να γίνει με σειρά.

  1. Ελέγξτε αν υπάρχει επιτυχημένη συναλλαγή στο ePay admin.
  2. Ελέγξτε το email επιβεβαίωσης της Πειραιώς.
  3. Ελέγξτε αν η παραγγελία υπάρχει στο OpenCart ως missing order ή χωρίς κατάσταση.
  4. Ελέγξτε αν το success URL είναι σωστό.
  5. Ελέγξτε αν το POST request φτάνει στο κατάστημα.
  6. Ελέγξτε logs του extension, αν υπάρχουν.
  7. Ελέγξτε server error logs.
  8. Ελέγξτε αν firewall, CDN, Cloudflare rule, ModSecurity ή security extension μπλοκάρει το request.
  9. Ελέγξτε αν υπάρχει redirect από HTTP σε HTTPS, non-www σε www ή άλλο canonical redirect που χάνει POST data.
  10. Κάντε νέα demo πληρωμή με τα επίσημα demo στοιχεία της Πειραιώς.
  11. Αν έγιναν αλλαγές σε URLs ή domain, ζητήστε από την τράπεζα να επιβεβαιώσει ότι έχουν ενημερωθεί σωστά.

Σύντομη εξήγηση για πελάτες

Στις πληρωμές με Winbank ePay, ο πελάτης μεταφέρεται από το OpenCart στο ασφαλές περιβάλλον της Πειραιώς για να ολοκληρώσει την πληρωμή. Όσο βρίσκεται εκεί, το κατάστημα δεν γνωρίζει ακόμη αν η πληρωμή ολοκληρώθηκε. Η παραγγελία ενημερώνεται μόνο όταν η Πειραιώς επιστρέψει τον πελάτη στο σωστό success URL και στείλει τα απαραίτητα δεδομένα επιβεβαίωσης. Αν ο πελάτης κλείσει το παράθυρο ή δεν επιστρέψει σωστά στο κατάστημα, η πληρωμή μπορεί να έχει γίνει, αλλά το OpenCart να μη λάβει την επιβεβαίωση. Σε αυτή την περίπτωση χρειάζεται χειροκίνητος έλεγχος στο ePay περιβάλλον ή στα email επιβεβαίωσης της τράπεζας.

Τεχνικοί όροι με απλά λόγια

Redirect
Η μεταφορά του πελάτη από το OpenCart στο ασφαλές περιβάλλον της τράπεζας.
Payment ticket
Το reference που αντιστοιχεί σε μία συγκεκριμένη προσπάθεια πληρωμής.
POST request
Ο τρόπος με τον οποίο το ePay στέλνει δεδομένα αποτελέσματος πίσω στο OpenCart.
Success URL
Η διεύθυνση του καταστήματος όπου επιστρέφει η τράπεζα μετά τη διαδικασία πληρωμής.
Callback / return URL
Γενικός όρος για το URL που δέχεται την επιστροφή ή ειδοποίηση από την πύλη πληρωμών.
Missing order
Παραγγελία που υπάρχει στο OpenCart αλλά δεν έχει λάβει τελική έγκυρη ενημέρωση κατάστασης.
Order status
Η κατάσταση της παραγγελίας, όπως επιτυχημένη, εκκρεμής, ακυρωμένη ή χωρίς τελική ενημέρωση.
Demo credentials
Δοκιμαστικά στοιχεία σύνδεσης για έλεγχο της ροής χωρίς πραγματική παραγωγική λειτουργία.
Live credentials
Παραγωγικά στοιχεία σύνδεσης που χρησιμοποιούνται στο πραγματικό κατάστημα.

Σημαντική σημείωση ασφάλειας

Το payment extension δεν πρέπει να αλλάζει την κατάσταση παραγγελίας αν δεν λάβει έγκυρη απάντηση από το ePay. Αν κάποιος καλέσει απευθείας το success URL χωρίς σωστά POST δεδομένα, το extension πρέπει να αγνοήσει το request και να μην ενημερώσει καμία παραγγελία.

Συχνές ερωτήσεις για Winbank ePay και missing orders

Γιατί η παραγγελία φαίνεται ως missing order;

Συνήθως επειδή το OpenCart δημιούργησε ή κράτησε την παραγγελία πριν λάβει τελική έγκυρη επιβεβαίωση από το ePay.

Σημαίνει ότι ο πελάτης πλήρωσε;

Όχι απαραίτητα. Πρέπει να ελεγχθεί το ePay admin ή το email επιβεβαίωσης της τράπεζας.

Σημαίνει ότι η πληρωμή απέτυχε;

Όχι απαραίτητα. Μπορεί απλώς το OpenCart να μην έλαβε σωστά την επιστροφή από την τράπεζα.

Γιατί το OpenCart δεν ενημερώθηκε;

Μπορεί να μην έγινε σωστά η επιστροφή στο success URL ή να χάθηκε το POST request λόγω λάθος URL, SSL, cache, firewall, redirect ή server error.

Τι γίνεται αν ο πελάτης κλείσει το παράθυρο μετά την πληρωμή;

Η πληρωμή μπορεί να έχει ολοκληρωθεί στην τράπεζα, αλλά το OpenCart μπορεί να μη λάβει την επιβεβαίωση. Χρειάζεται χειροκίνητος έλεγχος.

Ποιος ελέγχει το payment page;

Το τελικό payment page ελέγχεται από την Πειραιώς / Winbank ePay, όχι από το OpenCart ή το extension.

Μπορεί το extension να δει τα στοιχεία κάρτας;

Όχι. Τα στοιχεία κάρτας εισάγονται στο ασφαλές περιβάλλον της τράπεζας.

Μπορεί να γίνει διπλή χρέωση;

Σε φυσιολογική ροή μία προσπάθεια πληρωμής έχει ένα συγκεκριμένο ticket και ποσό. Δύο ξεχωριστές προσπάθειες ή παραγγελίες μπορεί να δημιουργήσουν ξεχωριστές κινήσεις, άρα ο έλεγχος γίνεται στο ePay admin.

Τι πρέπει να κάνω αν υπάρχει πληρωμή στην Πειραιώς αλλά όχι ολοκληρωμένη παραγγελία στο OpenCart;

Ελέγξτε τη συναλλαγή στο ePay admin, τα email επιβεβαίωσης, τα logs του extension και το αν το success URL δέχεται σωστά POST requests.

Πότε χρειάζεται να ξαναγίνουν demo πληρωμές;

Μετά από αλλαγή domain, checkout route, payment extension, credentials, SSL, firewall, CDN, cache ή redirect rules.

Χρειάζεστε έλεγχο πληρωμών στο OpenCart;

Μπορούμε να ελέγξουμε success URL, POST επιστροφές, logs, order statuses και demo/live ρυθμίσεις πριν χαθούν παραγγελίες.

Ζητήστε τεχνικό έλεγχο