Προς το περιεχόμενο

Πρόβλημα με hashkey τράπεζα Πειραιώς


Uberalles_gr

Προτεινόμενες αναρτήσεις

Καλησπέρα σε όλους,

έχω μια custom PHP εφαρμογή όπου υπάρχει η ανάγκη για online πληρωμή και έχω συνδεθεί με την Πειραιώς.

Είμαι στο test environment και όλα μια χαρά. Παίζουν όλα όπως πρέπει ΕΚΤΟΣ από το hash key όπου αυτό που μου στέλνει η τράπεζα όταν η συναλλαγή είναι επιτυχημένη με αυτό που παράγω εγώ ΔΕΝ είναι το ίδιο. Στο pdf με τις οδηγίες, έχουν και ένα παράδειγμα για το πως υπολογίζεται το hash key (έχω κάνει attach τα σχετικά σημεία)

Εγώ χρησιμοποιώ το παρακάτω τρόπο στην PHP

$key = '4236ece6142b4639925eb6f80217122f;99999999;14;Test;389700;MyParam;00;364629;02;1;Success';
$hashkey = strtoupper(hash('sha256', $key));

όπου οι τιμές που έχω είναι αυτές που έχουν στο παράδειγμα η τράπεζα αλλά λένε ότι πρέπει να γυρίζει το 551F158E669965F30BCFA65E558FD4AABB191D394DE39BE2ADFAB416575102D7  όταν εμένα το δικό μου γυρνάει το E427B994D9DEE2C4DBC0C8F357BC319AB0CEAB094A5D7298D2657065DFDFD86E

Τι κάνω λάθος;

Ευχαριστώ,
Βασίλης

1.jpg

2.jpg

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

54 λεπτά πριν, NoD είπε

Πρέπει να κάνεις χρήση της hash_hmac προφανώς και όχι της hash().

Πάλι λάθος μου γυρνάει όταν χρησιμοποιώ το παρακάτω

$key = '4236ece6142b4639925eb6f80217122f;99999999;14;Test;389700;MyParam;00;364629;02;1;Success';
echo strtoupper(hash_hmac('sha256', $key, 'secret'));

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

@Uberalles_gr Σου γυρνάει λάθος γιατί έχεις βάλει αυθαίρετα ένα δικό σου string ('secret') στη θέση του secret.
Στην περίπτωσή σου βάλε όπου secret το Transaction Ticket.
Δηλαδή:

<?php

$concatstring = '4236ece6142b4639925eb6f80217122f;99999999;14;Test;389700;MyParam;00;364629;02;1;Success';
$transticket = '4236ece6142b4639925eb6f80217122f';

$hash_key = strtoupper(hash_hmac('sha256', $concatstring, $transticket, false));

echo $hash_key;

Όσο για το μπαμπουίνο που ζητάει χρήματα, δε θα σχολιάσω. 😛

Επεξ/σία από vadou
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
13 ώρες πριν, vadou είπε

@Uberalles_gr Σου γυρνάει λάθος γιατί έχεις βάλει αυθαίρετα ένα δικό σου string ('secret') στη θέση του secret.
Στην περίπτωσή σου βάλε όπου secret το Transaction Ticket.
Δηλαδή:


<?php

$concatstring = '4236ece6142b4639925eb6f80217122f;99999999;14;Test;389700;MyParam;00;364629;02;1;Success';
$transticket = '4236ece6142b4639925eb6f80217122f';

$hash_key = strtoupper(hash_hmac('sha256', $concatstring, $transticket, false));

echo $hash_key;

Όσο για το μπαμπουίνο που ζητάει χρήματα, δε θα σχολιάσω. 😛

@vadouΕυχαριστώ!

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

Επεξ/σία από Uberalles_gr
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν έχει χρειαστεί να φτιάξω κάποιο subscription based system, οπότε δεν ξέρω να σου πω τι να κάνεις ακριβώς.
Ενδεχομένως το πρώτο πράγμα που θα σκεφτόμουν είναι να χρεώσω το ποσό των 12 μηνών πχ και να το σπάσω σε 12 δόσεις.

Αν ψάξεις για instal(l)ments (δόσεις) ή recurring payments (επαναλαμβανόμενες πληρωμές) φαντάζομαι θα βρεις κάποια λύση.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

11 ώρες πριν, vadou είπε

Δεν έχει χρειαστεί να φτιάξω κάποιο subscription based system, οπότε δεν ξέρω να σου πω τι να κάνεις ακριβώς.
Ενδεχομένως το πρώτο πράγμα που θα σκεφτόμουν είναι να χρεώσω το ποσό των 12 μηνών πχ και να το σπάσω σε 12 δόσεις.

Αν ψάξεις για instal(l)ments (δόσεις) ή recurring payments (επαναλαμβανόμενες πληρωμές) φαντάζομαι θα βρεις κάποια λύση.

Νομίζω ότι αυτό είναι και το πιο εύκολο, δηλαδή χρεώνεις όλο το ποσό αλλά το βάζεις σε δόσεις

Ευχαριστώ

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

3 ώρες πριν, Uberalles_gr είπε

Νομίζω ότι αυτό είναι και το πιο εύκολο, δηλαδή χρεώνεις όλο το ποσό αλλά το βάζεις σε δόσεις

Ευχαριστώ

Εαν εχεις μηνιαια συνδρομη τοτε πας recurring, αν το πας σε δοσεις και καποιος θελει να διακοψει τη συνδρομη, τι θα κανεις; 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

10 ώρες πριν, Predatorkill είπε

Εαν εχεις μηνιαια συνδρομη τοτε πας recurring, αν το πας σε δοσεις και καποιος θελει να διακοψει τη συνδρομη, τι θα κανεις; 

Έχεις ένα δίκιο.

Θα πρέπει να το δω και ίσως θα πρέπει να μιλήσω με τράπεζα να δω εάν υποστηρίζει με κάποιο τρόπο αυτό που θέλω (π.χ επανάληψης πληρωμής)

Ευχαριστώ για τις απαντήσεις σας

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...