Hardii Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Καλησπέρα, κάνω ένα eshop με wordpress (woocommerce) αυτή την περίοδο και θέλω να βάλω την πληρωμή με πιστωτική κάρτα. Μίλησα με την τράπεζα κτλπα και μου δώσαν οδηγίες (ένα αρχειο pdf 70 σελίδες) για το πως να στηθεί η σύνδεση μεταξύ του eshop και του checkout της τράπεζας (πειραιώς) και ήθελα να ρωτήσω αν ξέρετε κάποιον πιο εύκολο τρόπο για την σύνδεση αυτή ή μήπως κάποιος έχει κάνει ήδη κάτι ανάλογο πριν αρχίσω και μπλέκω με τον κώδικα να μ βοηθήσει. Ευχαριστώ εκ των προτέρων.
fouros Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Διαλέγεις τραπεζα και επιλέγεις http://www.webit.bz/wordpress-%CE%B5%CE%BD%CF%8C%CF%84%CE%B7%CF%84%CE%B5%CF%82-%CF%80%CE%BB%CE%B7%CF%81%CF%89%CE%BC%CE%AE%CF%82-c-23_24.html Δες και την επιλογη του vivapayments γιατι η τραπεζα μεχρι να σε εγκρινει θα παρει κανα μηνα εως και τρεις. 1
Hardii Δημοσ. 25 Απριλίου 2014 Μέλος Δημοσ. 25 Απριλίου 2014 Υπάρχει άλλος τρόπος εκτός απο το woocommerce winbank της webit? Δεν ήταν δικιά μου επιλογή η πειραώς και δεν υπάρχει περίπτωση να την αλλαξουν.
cyclo Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Υπάρχει άλλος τρόπος εκτός απο το woocommerce winbank της webit? Δεν ήταν δικιά μου επιλογή η πειραώς και δεν υπάρχει περίπτωση να την αλλαξουν. να υλοποιήσεις ένα gateway μεταξύ του API της τράπεζας και του site σου 1
angmar Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Δεν είμαι σίγουρος ότι το πας εκεί, αλλά προληπτικά ας το πώ. Τσάμπα αυτό το πράμα δεν παίζει να το κάνεις, εκτός αν το χεις εσύ ο ίδιος, που μάλλον δεν το χεις, γιατί αλλιώς δε θα ρωτούσες εδώ. Η δική μου πρόταση είναι να βάλεις το PayPal ως ενδιάμεσο, στους premium & business λογαριασμούς το PayPal μπορεί να δεχτεί πληρωμές απευθείας από πιστωτική, χωρίς να χρειάζεται ο επισκέπτης του eshop να έχει λογαριασμό PayPal.
chrism4111 Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 (επεξεργασμένο) να υλοποιήσεις ένα gateway μεταξύ του API της τράπεζας και του site σου Συμφωνώ με τον cyclo... Δεν γνωρίζω για το woocommerce καθώς είχα αναπτύξει παλιότερα ένα Plugin για το winbank Redirect αλλά για το Wp-ecommerce Ξεκίνα να διαβάζεις το Documentation που σου έστειλαν από την τράπεζα.. Λογικά θα ασχοληθείς με το SOAP API της τράπεζας πειραιώς.. Ξεκινάς λοιπόν και κάνεις μια αίτηση για να πάρεις το Ticket. Παίρνοντας το Ticket. Η απάντηση που θα σου έρθει θα περιέχει το Ticket καθώς και άλλες παραμέτρους όπως το ResultCode. Απ οτι θυμάμαι αν το ResultCode = 0 τότε το Τιcketing έγινε με επιτυχία και μπορείς να το χρησιμοποιήσεις για να κάνεις την συναλλαγή.. Σου παραθέτω και ένα παράδειγμα: <?php $POSTAmount = number_format((float) $_POST['Amount'],2); $MerchantReference = $_POST['MerchantReference']; ?> <!-- BEGIN CUSTOM PAYMENT FORM --> <?php // Pull in the NuSOAP code require_once('wp-content/plugins/wp-e-commerce/wpsc-includes/nusoap/nusoap.php'); $client = new nusoap_client('https://paycenter.piraeusbank.gr/services/tickets/issuer.asmx?WSDL','wsdl'); $params = array( "Username" => "", // Στοιχεία του πελάτη σου σίγουρα η τράπεζα του έχει δώσει ένα username & password ( kai nomizo ena merchantid kai ena AcquireId) "Password" => md5(""), "MerchantId" => (int) "", "PosId" => (int) "", "AcquirerId" => (int) "", "MerchantReference" => $MerchantReference, "RequestType" => "02", "ExpirePreauth" => (int) "0", "Amount" => $POSTAmount, "CurrencyCode" => (int) "978", "Installments" => 0, "Bnpl" => 0, "Parameters" => $ParametersValue ); // Call the SOAP method $result = $client->call( 'IssueNewTicket', // method name array("Request" => $params), // input parameters 'http://piraeusbank.gr/paycenter/redirection', //namespace 'http://piraeusbank.gr/paycenter/redirection/IssueNewTicket' // SOAPAction ); //print_r($result); // Βλέπεις το Result foreach($result[IssueNewTicketResult] as $res => $value) { $$res = $value; // Apo8hkeush se omonumes vars. } switch ($ResultCode) { case "0": //echo "<br/><b>Authentication Successfull</b>"; //echo "<br/>Transaction ticket: ".$TranTicket; //echo "<br/>Timestamp: ".$Timestamp; //echo "<br/>Minutes To Expiration: ".$MinutesToExpiration; $_SESSION['Tranticket'] = $TranTicket; // Βάζεις την φόρμα που θα ποστάρει στο paycenter redirect της πειραιώς break; case:!("0"): // Authentication Error //Kapoio minima pou tha vgazeis sto case ayto break; } ?> Βέβαια πριν από αυτό θα πρέπει να φέρνεις όλες τις απαραίτητες πληροφορίες που σου ζητάει η τράπεζα προκειμένου να σου δώσει το Ticket. Αρκετά πρόχειρα σου έγραψα τι περίπου πρέπει να κάνεις.. Σίγουρα δεν είναι κάτι ολοκληρωμένο καθώς έχουμε πολύ καιρό που το έχουμε φτιάξει. Μετά το redirect στην φόρμα της τράπεζας και την αποδοχή πληρωμής του πελάτη η τράπεζα κάνει redirect τον πελάτη σε μια δικιά σου σελίδα οπού εκεί πρέπει να ελέγχεις όλα τα cases, και είναι αρκετά. Επεξ/σία 26 Απριλίου 2014 από chrism4111 3
Hardii Δημοσ. 25 Απριλίου 2014 Μέλος Δημοσ. 25 Απριλίου 2014 @chrism4111, ναι ξεκίνησα να διαβάζω το documentation και αναφέρεται στο SOAP API της τράπεζας. Σε ευχαριστώ για τον κόπο σου και την απάντηση σου. Ελπίζω να με βοηθήσει ο κώδικας σου. Δεν είμαι σίγουρος ότι το πας εκεί, αλλά προληπτικά ας το πώ. Τσάμπα αυτό το πράμα δεν παίζει να το κάνεις, εκτός αν το χεις εσύ ο ίδιος, που μάλλον δεν το χεις, γιατί αλλιώς δε θα ρωτούσες εδώ. Η δική μου πρόταση είναι να βάλεις το PayPal ως ενδιάμεσο, στους premium & business λογαριασμούς το PayPal μπορεί να δεχτεί πληρωμές απευθείας από πιστωτική, χωρίς να χρειάζεται ο επισκέπτης του eshop να έχει λογαριασμό PayPal. Ναι δεν το έχω το θέμα αυτό για αυτό έκανα και την ερώτηση, έστησα το eshop, αλλά το τελευταίο πράγμα που μου έχει μείνει είναι αυτό, το όποίο το δοκιμάζω και πρώτη φορά, και είπα να ρωτήσω μήπως και υπάρχει κάποιος που το έχει κάνει και μπορέσει να βοηθήσει.
chrism4111 Δημοσ. 26 Απριλίου 2014 Δημοσ. 26 Απριλίου 2014 @chrism4111, ναι ξεκίνησα να διαβάζω το documentation και αναφέρεται στο SOAP API της τράπεζας. Σε ευχαριστώ για τον κόπο σου και την απάντηση σου. Ελπίζω να με βοηθήσει ο κώδικας σου. Δεν ήταν και μεγάλος κόπος εάν χρειαστείς οποιαδήποτε βοήθεια στείλε μ, μακάρι να βρώ χρόνο και να μπορέσω να σε βοηθήσω λίγο περισσότερο....
netplayer Δημοσ. 16 Απριλίου 2015 Δημοσ. 16 Απριλίου 2015 "Password" => md5(""), @chrism4111 Αυτό το md5 ήταν life saver. Κάνω Πειραιώς για virtuemart , δεν θυμάμαι σε άλλη υλοποίηση ελληνικής τράπεζας που έχω κάνει να το χρησιμοποιεί και θα κολλούσα κανα αιώνα στο no object reference .. κλπ . Ευχαριστώ πολύ κι εγω για την βοήθεια! YΓ: Μεχρι στιγμης εχω παρατηρησει οτι μερικες ονομασίες των παραμέτρων στο pdf της τραπεζας ειναι λαθος, (βλεπε PosID αντι PosId κλπ) και φυσικά ούτε λόγος γίνεται για το encrypt του password. Απορω πως το ανακάλυψες @chrism4111 , ελπίζω όχι the hard way.
bilios82 Δημοσ. 27 Αυγούστου 2018 Δημοσ. 27 Αυγούστου 2018 @chrism4111 φίλε έκανα λογαριασμό μόνο και μόνο για να σε ευχαριστήσω, απλό και όμορφο κομμάτι κώδικα που για κάποιον που γράφει γενικά php και είναι ενός επιπέδου σχετικού του λύνει ΟΛΟ το θέμα σύνδεσης με την Πειραιώς.. Να σαι καλά, την (παραπανίσια) μπύρα που θα προλάβω να πιω την χαρίζω σε σένα! ;)
xrhstosiak Δημοσ. 28 Αυγούστου 2018 Δημοσ. 28 Αυγούστου 2018 αυτο το δοκιμασες; https://el.wordpress.org/plugins/woo-payment-gateway-for-piraeus-bank/ μια χαρα παιζει οταν δεν σε ενδιαφερουν οι δοσεις 1
korobas Δημοσ. 16 Αυγούστου 2019 Δημοσ. 16 Αυγούστου 2019 Λαμβάνω σφάλμα κατα την έκδοση του ticket Array ( [faultcode] => soap:Client [faultstring] => Server was unable to read request. ---> There is an error in XML document (1, 850). ---> Instance validation error: '' is not a valid value for RecurringIndType. [detail] => ) H απάντηση της τράπεζας ήταν: Έχουν προστεθεί κάποια επιπλέον elements στο WSDL. Αυτό που σας δημιουργεί πρόβλημα είναι το <RecurringInd>. Το συγκεκριμένο element είναι nillable και κατά συνέπεια μπορείτε είτε να μην το αποστείλετε καθόλου είτε να στείλετε null value (οπότε μετά το serialization σε μας θα φθάσει <RecurringInd xsi:nil="true" />). Δεν στέλνω πουθενά Reccuringind όμως (ούτε με αναζήτηση το βρίσκω πουθενά σε κανένα αρχείο) ... Έχει συναντήσει κανείς παρόμοιο πρόβλημα;
dinko Δημοσ. 28 Αυγούστου 2019 Δημοσ. 28 Αυγούστου 2019 (επεξεργασμένο) Στις 16/8/2019 στις 2:09 ΜΜ, korobas είπε Λαμβάνω σφάλμα κατα την έκδοση του ticket Array ( [faultcode] => soap:Client [faultstring] => Server was unable to read request. ---> There is an error in XML document (1, 850). ---> Instance validation error: '' is not a valid value for RecurringIndType. [detail] => ) H απάντηση της τράπεζας ήταν: Έχουν προστεθεί κάποια επιπλέον elements στο WSDL. Αυτό που σας δημιουργεί πρόβλημα είναι το <RecurringInd>. Το συγκεκριμένο element είναι nillable και κατά συνέπεια μπορείτε είτε να μην το αποστείλετε καθόλου είτε να στείλετε null value (οπότε μετά το serialization σε μας θα φθάσει <RecurringInd xsi:nil="true" />). Δεν στέλνω πουθενά Reccuringind όμως (ούτε με αναζήτηση το βρίσκω πουθενά σε κανένα αρχείο) ... Έχει συναντήσει κανείς παρόμοιο πρόβλημα; το πρόβλημα σου είναι μάλλον γιατί χρησιμοποιείς παλιό soap client πχ nusoap που δεν κάνει σωστά parse τα custom types στη περίπτωση RecurringIndType. άλλαξε τον κώδικα σου σε native php soap client: $soap = new SoapClient("https://paycenter.piraeusbank.gr/services/tickets/issuer.asmx?WSDL"); $params = array( "Username" => "xxxx", "Password" => md5("xxxxx"), "MerchantId" => (int) "xxxxx", "PosId" => (int) "xxxx", "AcquirerId" => (int) "xx", "MerchantReference" => $refid, "RequestType" => "xxx", "ExpirePreauth" => (int) "0", "Amount" => $yourvalue, "CurrencyCode" => (int) "978", "Installments" => 0, "Bnpl" => 0, "Parameters" => '' ); $soap = new SoapClient("https://paycenter.piraeusbank.gr/services/tickets/issuer.asmx?WSDL"); $xml = array('Request' => $params); $result = $soap->IssueNewTicket($xml); Αν έκανες χρήση το $result ως array τώρα πλέον γυρίζει object, οπότε είτε γύρνα τον κώδικα σου σε object references είτε κάνε το object array για να παίξεις out of the box, example: $result = json_encode($result); $result = json_decode($result, true); Επεξ/σία 28 Αυγούστου 2019 από dinko 1
bilios82 Δημοσ. 29 Αυγούστου 2019 Δημοσ. 29 Αυγούστου 2019 Παιδιά και εγώ σήμερα είδα πως σε ένα site που έχω αυτή την σύνδεση με Πειραιώς έχω το ίδιο λάθος.. Array ( [faultcode] => soap:Client [faultstring] => Server was unable to read request. ---> There is an error in XML document (1, 850). ---> Instance validation error: '' is not a valid value for RecurringIndType. [detail] => ) Μπορώ απλά να στέλνω και αυτή την μεταβλητή άδεια να τελειώνω? Τι πρόβλημα είναι αυτό? 1
bilios82 Δημοσ. 29 Αυγούστου 2019 Δημοσ. 29 Αυγούστου 2019 Για μένα έδωσε την λύση ο dinko, απλά ανέβηκα στην php 5.4.45 που έχει enabled τον soap client και άλλαξα 3 γραμμές και πέταξα την nusoap. Verified πως η nusoap έχει θέματα με custom σχήματα. Πολύ ωραίος, θενκς! 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα