Support » Plugin: Piraeus Bank WooCommerce Payment Gateway » Πρόβλημα κατά την επιτυχημένη παραγγελία

  • Resolved kokorikos

    (@kokorikos)


    Καλησπέρα πριν μερικές μέρες έκανα install το συγκεκριμένο Plugin. Τα url δόθηκαν στη τράπεζα, όλα σωστά και τα permalinks και όλα είναι σωστά ρυθμισμένα. Και response method Get. Τα test cases τα 8 υποχρεωτικά όλα λειτούργησαν σωστά. Στα 7 cases που είναι τα λάθος cases το redirect ήταν σωστό και έβγαζε στον πελάτη ότι η παραγγελία δεν εκτελέστηκε γιατί υπήρξε πρόβλημα. Στην επιτυχημένη παραγγελία όμως ενώ δείχνει πως όλα πήγαν καλώς και πάει email Πληρωμής στον πελάτη, στο redirect δεν γυρνάει στη σωστά ορισμένη Thank you page, αλλά στο checkout, και μέσα στο διαχειριστικό του woocommerce το status της παραγγελίας, από εκκρεμεί πληρωμή γίνεται status αποτυχημένη μεσα σε μερικά δευτερόλεπτα. Επικοινώνησα με τη τράπεζα και είναι όλα σωστά ρυθμισμένα από τη μεριά της. Οπότε θα ήθελα να ρωτήσω και το δημιουργό ή κάποιον άλλο που είχε το ίδιο πρόβλημα με το plugin να μου δώσει μία λύση για το πιθανό πρόβλημα. Έχω background developer οπότε θα καταλάβω απλά δεν μπορώ να το βρώ μόνος μου.Σας ευχαριστώ εκ των προτέρων.

Viewing 14 replies - 1 through 14 (of 14 total)
  • Οπως το λες ακουγετε οτι το προβλημα γινετε οταν τα server της πειραιως στελνουν τα δεδομενα τις παραγγελιας το site σου δεν τα βλεπει/παιρνει.Αρα :

    1)Δες αμα εχεις ενεργοποιημένο το SOAP.Σε πολλά σερβερ δεν ειναι και πρεπει να τους πεις να στο ανοίξουν.
    2)Αμα εχεις firewall μπορει κατι να μπλοκαρει την πειραιως?(λιγο αδυνατο δες και τα αλλα και τελευταίο αυτο , δεν μου εχει γίνει ποτε)
    2)Δες αμα εχεις δώσει σωστά λινκ στην τραπεζα.
    3)Θυμάμαι μου ειχε τυχει και εμενα κατι παρόμιο πολυ παλια και καπως το εφτιαξα με τα permalinks , δεν θυμαμε τι εκανα σε σχεση με αυτο ομως , ψαξτο.

    Καλησπέρα ευχαριστώ για την απάντηση
    1) Είναι ενεργοποιημένο
    2)Δεν παίζει είναι server side αυτό, δεν έχω τέτοια firewall στο site
    3)Σωστά είναι τα links που έχω δώσει εγώ στη τράπεζα
    4)Τα permalinks είναι στο κλασσίκο του wordpress https://www.domain.gr/sample-post/
    και η σελίδα του checkout είναι η κλασσική https://www.domain.gr/checkout

    Κάτι διάβασα σε παρόμοιο πρόβλημα ότι είναι θέμα του Plugin καθώς η πειραιώς έχει αλλάξει το hashkey και το plugin δεν έχει γίνει update.

    Δεν ξέρω δεν μπορω να καταλαβω τι γίνεται.

    Καλησπέρα σας,

    αντιμετωπίζω και εγώ το ίδιο πρόβλημα και κάνοντας ένα Debug στο plugin βρήκα τα παρακάτω: (Διορθώστε με αν δεν έχω καταλάβει κάτι καλά)

    Βλέπω ότι το πρόβλημα στην δικιά μου περίπτωση ξεκινάει στην μέθοδο check_piraeusbank_response όταν η τράπεζα επιστρέφει ότι έχει ολοκληρωθεί σωστά η διαδικασία. Πιο συγκεκριμένα η παράμετρος GET περιέχει τα παρακάτω, που όπως προκύπτει από το PDF της τράπεζας τα στοιχεία(ResultCode,ResponseCode,AuthStatus) είναι σωστά.
    array(13) {
    [“peiraeus”]=> string(7) “success”
    [“StatusFlag”]=> string(7) “Success” [“MerchantReference”]=> string(4) “5512”
    [“HashKey”]=> string(64) “B9D21ADE3D8B029F3FB65904898131B9DB39930E5AEEFE4BC1D63A4CD03006F5”
    [“Parameters”]=> string(0) “”
    [“ResultCode”]=> string(1) “0”
    [“TransactionId”]=> string(8) “94803509” [“SupportReferenceID”]=> string(9) “180856580” [“ApprovalCode”]=> string(6) “479174”
    [“ResponseCode”]=> string(2) “00”
    [“PackageNo”]=> string(1) “1”
    [“AuthStatus”]=> string(2) “03”
    [“ButtonSubmit”]=> string(6) “Submit” }

    Πιο συγκεκριμένα το πρόβλημα εντοπίζεται στη γραμμή if ($conhash != $HashKey) {
    στην οποία οι δύο μεταβλητές έχουν διαφορετική τιμή. Ένα παράδειγμα ενώ το trans_ticket που δημιουργείτε στον πίνακα piraeusbank_transactions κατά την παραγγελία είναι
    3ccbc16b22e3474c961cdb081bf26a86213450245714551649795200180859298031
    στη σύγκριση των μεταβλητών έχουμε,
    $HashKey=125E199488A7FCB9B4B4078A34BD8D36F7E220A5E74945EC19DCA284A45E4555
    $conhash=6790463A7125F4D7CC5E8688C6F2FDAD774B716A0BC1DF60A7ACD34DD32A1C91

    Υπάρχει περίπτωση το πρόβλημα να δημιουργείτε στην γραμμή
    $conhash = strtoupper(hash(‘sha256’, $stcon));

    Επίσης αυτή η σύγκριση (if ($conhash != $HashKey) {) πρέπει αναγκαστικά να υπάρχει;
    Αφαιρώντας αυτόν τον κώδικα, η διαδικασία ολοκληρώνετε κανονικά.

    Ευχαριστώ πολύ.

    Νίκο ευχαριστώ για την παρέμβαση, το hashkey όπως ανέφερα και εγώ πρέπει να είναι το θέμα γιατί η πειραιώς άλλαξε πρόσφατα ενώ το plugin δεν έχει γίνει update. Πρέπει να μας απαντήσει ο δημιουργός του

    Τελικά την έβγαλα την άκρη διαβάζοντας τις οδηγίες της Πειραιώς.

    Δύο αλλαγές χρειάζονται στις παρακάτω γραμμές:
    1.Η γραμμή
    $stcon = $transticket . $this->pb_PosId . $this->pb_AcquirerId . $order_id . $ApprovalCode . $Parameters . $ResponseCode . $SupportReferenceID . $AuthStatus . $PackageNo . $StatusFlag;
    αλλάζει με τη γραμμή
    $stcon = $transticket.’;’ . $this->pb_PosId.’;’ . $this->pb_AcquirerId.’;’ . $order_id.’;’ . $ApprovalCode.’;’ . $Parameters.’;’ . $ResponseCode.’;’ . $SupportReferenceID.’;’ . $AuthStatus.’;’ . $PackageNo.’;’ . $StatusFlag;

    2.Η γραμμή
    $conhash = strtoupper(hash(‘sha256’, $stcon));
    αλλάζει με τη γραμμή
    $conhash = strtoupper(hash_hmac (‘sha256’, $stcon, $transticket));

    Σε εμένα λειτούργησε κανονικά, αν είναι ΟΚ μπορείτε να το περάσετε και σε Update.

    Έκανα τις αντικαταστάσεις που πρότεινες Νίκο αλλά σε μένα παραμένει το πρόβλημα. Στο δοκιμαστικό τεστ το οποίο είναι για επιτυχία με γυρνάει στο checkout που έγινε η παραγγελία και μέσα στο woocommerce στις παραγγελίες την περνάει σαν αποτυχημένη.

    μέσα στο plugin βλέπω έχει redirect για failed transactions, αλλά στο successful δεν έχει redirect στο thank you page

    Plugin Support gibeladakis

    (@gibeladakis)

    Καλή σας μέρα,

    να σας ενημερώσω εκ μέρους της Enartia οτι επικοινωνήσαμε με την τράπεζα ΠΕΙΡΑΙΩΣ και αναμένουμε πληροφορίες σχετικά με το πρόβλημα που μας αναφέρετε.

    θα σας ενημερώσουμε το συντομότερο δυνατό.

    Με εκτίμηση,

    Μπελαδάκης Γιώργος

    Καλημέρα,

    @kokorikos το redirect που λειτουργεί σε αυτή την περίπτωση είναι αυτό που βρίσκετε στο τέλος της μεθόδου.

    Στο πρόσθετο έχεις ορίσει σαν Σελίδα Επιστροφής την “Σελίδα:Ευχαριστούμε για την αγορά”; Τότε είναι που μου βγάζει το μήνυμα ότι η παραγγελία ολοκληρώθηκε επιτυχώς.

    Φιλικά
    Νίκος

    Plugin Author George Kapsalakis

    (@georgekapsalakis)

    Καλησπέρα,

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

    Σε περίπτωση που κάποιος χρειάζεται άμεσα την αλλαγή, μπορεί να κάνει edit το wooshop-piraeus.php αρχείο του plugin και να αντικαταστήσει τις δύο μεταβλητές $stcon και $conhash με το παρακάτω:

    $stcon = $transticket . ‘;’ . $this->pb_PosId . ‘;’ . $this->pb_AcquirerId . ‘;’ . $order_id . ‘;’ . $ApprovalCode . ‘;’ . $Parameters . ‘;’ . $ResponseCode . ‘;’ . $SupportReferenceID . ‘;’ . $AuthStatus . ‘;’ . $PackageNo . ‘;’ . $StatusFlag;

    $conhash = hash_hmac(‘sha256’, $stcon, $transticket, false);

    Καλώς εχόντων των πραγμάτων αύριο θα πραγματοποιήσουμε το update του plugin, ώστε να επιλυθεί το πρόβλημα.

    Με εκτίμηση,
    Γιώργος Καψαλάκης

    Καλησπέρα έχω και εγώ το ίδιο πρόβλημα με τον @kokorikos.
    Εκανα τις αλλαγές που πρότηνε ο @georgekapsalakis αλλά δεν λειτούργησε.
    Περιμένω να το δείτε αύριο
    Ευχαριστώ.

    Plugin Author George Kapsalakis

    (@georgekapsalakis)

    Καλημέρα,

    @miladopo o δαίμων του πληκτρολογίου.
    Άλλαξε το:
    $conhash = strtoupper(hash_hmac(‘sha256’, $stcon, $transticket, false));

    Επομένως Ορθή επανάληψη:
    Οι αλλαγές που πρέπει να γίνουν είναι:
    $stcon = $transticket . ‘;’ . $this->pb_PosId . ‘;’ . $this->pb_AcquirerId . ‘;’ . $order_id . ‘;’ . $ApprovalCode . ‘;’ . $Parameters . ‘;’ . $ResponseCode . ‘;’ . $SupportReferenceID . ‘;’ . $AuthStatus . ‘;’ . $PackageNo . ‘;’ . $StatusFlag;
    $conhash = strtoupper(hash_hmac(‘sha256’, $stcon, $transticket, false));

    Με εκτίμηση,
    Γιώργος Καψαλάκης

    Καλημέρα,
    Ένα μεγάλο ευχαριστώ από εμένα ως junior για την συνέπεια αρχικά και την υποστήριξη σας :).

    Plugin Support gibeladakis

    (@gibeladakis)

    Καλησπέρα σας και σας ευχαριστούμε για τοι μήνυμα σας.

    Σχετικά με το αίτημα σας, να σας ενημερώσουμε πως πριν απο λίγο ανεβάσαμε αναβάθμιση του Plugin.

    Παρακαλώ δοκιμάστε ξανά με το νέο plugin και ακολουθόντας τις αντίστοιχες οδηγίες και αν έχετε πάλι πρόβλημα , μπορείτε να στείλετε αίτημα στο support@papaki.gr αναφέροντας το domain και επισυνάπτοντας και τα αντίστοιχα access logs. Παρακαλώ βάλτε στο subject του email το Ονοματοεπώνυμο μου και “ENARTIA Piraeus Bank WooCommerce Payment Gateway-Plugin ”

    Με εκτίμηση,

    Μπελαδάκης Γιώργος

Viewing 14 replies - 1 through 14 (of 14 total)
  • The topic ‘Πρόβλημα κατά την επιτυχημένη παραγγελία’ is closed to new replies.