Πίνακας Περιεχομένων

Εισαγωγή

Το module αυτό σας επιτρέπει να χρησιμοποιήσετε τις υπηρεσίες της EuroBank μέσω της Cardlink για να χρεώνετε πιστωτικές κάρτες μέσα από το WHMCS. Η εγκατάσταση και η χρήση του module δεν είναι δύσκολη, αλλά προϋποθέτει πως έχετε κάποιες βασικές γνώσεις για το WHMCS και τη διαδικασία χρήσης του back-office της EuroBank.

Το module αυτό είναι μόνο για το Cardlink, ενώ αν χρησιμοποιείτε το ProxyPay3 θα πρέπει να κατεβάσετε το αντίστοιχο module για ProxyPay3.

Είναι προφανές πως δεν έχω καμία επαγγελματική σχέση με τη EuroBank, την Modirum ή την Cardlink, των οποίων τα σήματα και οι τίτλοι είναι αποκλειστικά δικές τους ιδιοκτησίες αντίστοιχα. Για οποιαδήποτε δυσλειτουργία του module επικοινωνήστε μαζί μας, αλλά για προβλήματα σχετικά με την Τράπεζα θα πρέπει να επικοινωνήσετε με την ίδια την Τράπεζα. Μπορείτε να επικοινωνήσετε μαζί μας στο www.valuehost.com.gr ή στο e-mail support@valuehost.com.gr.

Εγκατάσταση

  1. Αν ανεβάσετε τα αρχεία με FTP, θα πρέπει να τα ανεβάσετε υποχρεωτικά σε BINARY mode και όχι σε ASCII
  2. Βάζετε το efgcardlink.php στον κατάλογο /modules/gateways
  3. Φτιάχνετε τον κατάλογο /modules/gateways/efgcardlink
  4. Βάζετε τα functions.php, checkout.php, processor.php στον κατάλογο /modules/gateways/efgcardlink
  5. Σε περίπτωση που θέλετε να έχετε custom σελίδες επιστροφής, στον παραπάνω κατάλογο βάλτε τα αντίστοιχα αρχεία.
  6. Από το admin panel του WHMCS, πηγαίνετε στο Setup/Payments/Payment Gateways
  7. Επιλέξτε από τη λίστα το EFG Cardlink και πατήστε Activate
  8. Προχωρήστε στην Παραμετροποίηση.

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

Λειτουργία δόσεων

Πέρα από την Παραμετροποίηση που αναφέραμε παραπάνω, θα πρέπει να κάνετε κάποιες αλλαγές και στα templates που χρησιμοποιείτε, ώστε να δώσετε το δικαίωμα στους χρήστες να επιλέξουν αν θέλουν να γίνει η χρέωση με δόσεις ή όχι. Για λόγους αναφοράς, θα περιγράψουμε τις αλλαγές που θα πρέπει να γίνουν στα templates default και web20cart της έκδοσης 5.2.7 του WHMCS, δείγματα από τα οποία μπορείτε να βρείτε και στο zip που κατεβάσατε. Αναλόγως ποια templates χρησιμοποιήτε, κάνετε τις αντίστοιχες αλλαγές. Πρακτικά, αυτό που θα πρέπει να μπει σε όλες τις σελίδες που επιλέγει ο πελάτης μέθοδο πληρωμής, είναι ένα έξτρα πεδίο στη φόρμα της μορφής checkbox με όνομα use_installments και να δημιουργηθεί με javascript ένα αντίστοιχο cookie. Το module στη συνέχεια ελέγχει αυτό το cookie, και σε συνδυασμό με τις παραμέτρους εγκατάστασης, αποφασίζει αν θα κάνει τη χρέωση με δόσεις καθώς και το πλήθος τους.

Αρχικά θα πρέπει να κάνετε μια προσθήκη στο αρχείο γλώσσας, της μεταβλητής:

$_LANG[‘installments’] = ‘Δόσεις’;

Αυτό είναι το λεκτικό που θα εμφανίζεται δίπλα στο checkbox. Σε όλα templates θα πρέπει να μπει το παρακάτω javascript με τη μορφή ακριβώς που βλέπεται το οποίο θα αναφέρουμε στη συνέχεια ως script για λόγους συντομίας:

{literal}
<script language="javascript">
function createInstCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  } else
    var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}
createInstCookie('use_installments','',-1);
</script>
{/literal}

Στη συνέχεια ανοίγετε τα templates (πχ templates/default και templates/orderforms/web20cart):

Αναλόγως ποιο template χρησιμοποιείτε, τροποποιήστε το αντίστοιχο template ώστε να υπάρχει το javascript που δημιουργεί το cookie με το αντίστοιχο checkbox με την ονομασία use_installments. Τα παραπάνω παραδείγματα είναι ενδεικτικά.

Μηνύματα στον χρήστη

Η default λειτουργία του module, είναι πως μετά από κάθε συναλλαγή θα καλεί τη system σελίδα του WHMCS (από το root folder) viewinvoice.php με παραμέτρους id=[Αριθμός Τιμολογίου] και paymentsuccess=true για τις επιτυχείς συναλλαγές και paymentfailed=true για τις ανεπιτυχείς/ακυρωμένες συναλλαγές (πχ: http://www.mysite.gr/whmcs/viewinvoice.php?id=123&paymentsuccess=true). Η σελίδα αυτή εμφανίζει στην ουσία το τιμολόγιο το οποίο έχει ζητηθεί, και με πράσινα γράμματα αναφέρει πως η συναλλαγή είναι επιτυχημένη και με κόκκινα πως έχει αποτύχει ή ακυρώθηκε. Το πως ακριβώς εμφανίζονται αυτά τα δεδομένα, μπορείτε να τα τροποποιήσετε πειράζοντας τα αντίστοιχα templates του WHMCS αλλά αυτή η εργασία δεν καλύπτεται από το κείμενο που διαβάζετε τώρα.

Αν δεν σας καλύπτει αυτός ο τρόπος, υπάρχουν δύο εναλλακτικές, με όποιο συνδυασμό θέλετε. Μπορείτε να καλείτε είτε μια html σελίδα, είτε ένα php script. Το module θα εμφανίσει στο χρήστη το αποτέλεσμα της σελίδας αυτής, αφού κάνει τις απαραίτητες εγγραφές στα logs και τα tables του WHMCS, οπότε το μόνο που θα πρέπει να σας απασχολήσει είναι το αισθητικό κομμάτι σε αυτές τις σελίδες. Αν αφήσετε τα αντίστοιχα πεδία κενά στις ρυθμίσεις του module (success/fail/cancel page), θα εμφανιστούν οι default σελίδες που αναφέραμε παραπάνω. Αν έχετε ορίσει κάποιες σελίδες και για κάποιο λόγο δεν μπορεί το module να τις διαβάσει (πχ λάθος όνομα αρχείου), θα εμφανιστούν οι default σελίδες. Αν το αρχείο που θα βάλετε στις ρυθμίσεις έχει την κατάληξη php, το module θα το χειριστεί σαν php, αλλιώς σαν ένα απλό text αρχείο. ΠΡΟΣΟΧΗ: Τα αρχεία αυτά θα πρέπει να βρίσκονται στον κατάλογο modules/gateways/efgcardlink.

Λεκτικά

Λεκτικό Περιγραφή Ενδεικτική απάντηση
AmountTotalEUR Το συνολικό ποσό του τιμολογίου σε ΕΥΡΩ 52.35
AmountNowEUR Το ποσό της κάθε δόσης, αν η χρέωση έγινε με δόσεις, σε ΕΥΡΩ 15.32
AmountTotalBase Το συνολικό ποσό του τιμολογίου στο βασικό νόμισμα 70.24
AmountNowBase Το ποσό της κάθε δόσης, αν η χρέωση έγινε με δόσεις, στο βασικό νόμισμα 18.52
CurrencyFactor 1 αν χρησιμοποιείτε μόνο ευρώ, αλλιώς η ισοτιμία της συναλλαγής 1.23456
Installments Πλήθος δόσεων (>= 0) 3
InstallmentsYesNo Λεκτικό σχετικά με το αν έγινε χρήση δόσεων2) Ναι
InvoiceNumber Αριθμός του τιμολογίου 100
InvoiceDescription Η περιγραφή του τιμολογίου ValueHost – Τιμολόγιο #123
CustomerFullname Ονοματεπώνυμο πελάτη (από το WHMCS) Γεώργιος Γεωργίου
CustomerEmail Το e-mail του πελάτη client@mail.gr
CustomerIP Η IP του πελάτη 111.222.222.111
CustomerHost Το hostname του πελάτη 4543.dyndsl.ath.forthnet.gr
Fee Το ποσό της προμήθειας της συναλλαγής, στο βασικό νόμισμα 1.32
Status Το αποτέλεσμα της συναλλαγής CAPTURED
EFGCardlinkID Το μοναδικό ID της συναλλαγής που στέλνει η τράπεζα 4567890
TransactionID Το μοναδικό ID της συναλλαγής που στέλνει το module 7726f017efff1926a00871c269d1ccf0
PayMethod Μέθοδος πληρωμής που επιλέχθηκε από τον πελάτη mastercard
PaymentRef Κωδικός έγκρισης της συναλλαγής 123456
RiskScore Δείκτης ρίσκου της συναλλαγής 0
ErrorYesNo Τυχόν μηνύματα λάθους3) Όχι
ErrorMsg Το ποσό της κάθε δόσης, αν η χρέωση έγινε με δόσεις, σε ΕΥΡΩ Comm Error

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

Θα πρέπει όμως να φροντίσετε εσείς μέσα σε αυτή τη σελίδα, να δώσετε τη δυνατότητα στο χρήστη να επιστρέψει στην αρχική σελίδα του site σας ή οπουδήποτε αλλού.

HTML

Το module ψάχνει οπουδήποτε για κάποια λεκτικά, τα οποία θα πρέπει να έχουν στην αρχή και στο τέλος δύο φορές το σύμβολο %, όπως μπορείτε να δείτε και στα ενδεικτικά αρχεία ok.html, nok.html, cancel.html τα οποία περιλαμβάνονται στο zip. Αν για παράδειγμα στο αρχείο αυτό βρεθεί το <html>PayMethod</html> τότε και μόνο τότε θα αντικατασταθεί με την αντίστοιχη τιμή.

Η σελίδα που καλείται απλώς εμφανίζεται και δεν είναι ούτε σε frame ή iframe ή κάτι τέτοιο. Οπως αναφέραμε λοιπόν παραπάνω, θα πρέπει να φροντίσετε εσείς στη σελίδα αυτή να δώσετε τη δυνατότητα στον χρήστη να επιστρέψει στην κεντρική σελίδα του site σας ή κάπου αλλού. Μια γρήγορη λύση, είναι να προσθέσετε μια γραμμή επάνω σαν την <html><META HTTP-EQUIV=“refresh” CONTENT=“3; URL=http://www.mysite.gr/clientarea.php”></html> ή ακόμα και <html><META HTTP-EQUIV=“refresh” CONTENT=“3; URL=http://www.mysite.gr/viewinvoice.php?id=%%InvoiceNumber%%&paymentseuccess=true”></html>. Το νούμερο '3' δίπλα στο CONTENT, σημαίνει μετά από πόσα δευτερόλεπτα ο browser θα πάει στη σελίδα που θέλετε.

PHP

Σε περίπτωση που οι γνώσεις σας το επιτρέπουν, μπορείτε να φτιάξετε ένα δικό σας PHP script που θα κάνει όποια λειτουργεία θέλετε με τα δεδομένα της συναλλαγής. Το module χρησιμοποιεί τη function cURL και καλεί με POST το script που έχετε δηλώσει. Στο script αυτό θα μεταφέρονται τα λεκτικά ως <php>$_POST</php> μεταβλητές. Αν για παράδειγμα στο αρχείο αυτό βρεθεί το <php>$_POST['PayMethod']</php> τότε και μόνο τότε θα έχετε την αντίστοιχη τιμή.

Οτιδήποτε επιστρέψει στην cURL αυτό το script, αυτό είναι και που θα εμφανιστεί στον χρήστη. Οπως αναφέραμε λοιπόν παραπάνω, θα πρέπει να φροντίσετε εσείς στη σελίδα αυτή να δώσετε τη δυνατότητα στον χρήστη να επιστρέψει στην κεντρική σελίδα του site σας ή κάπου αλλού. Μια γρήγορη λύση, είναι να προσθέσετε μια γραμμή επάνω σαν την <html><META HTTP-EQUIV=“refresh” CONTENT=“3; URL=http://www.mysite.gr/clientarea.php”></html> ή ακόμα και <php><META HTTP-EQUIV=“refresh” CONTENT=“3; URL=http://www.mysite.gr/viewinvoice.php?id=<?php echo $_POST[‘InvoiceNumber’]; ?>&paymentseuccess=true”></php>. Το νούμερο '3' δίπλα στο CONTENT, σημαίνει μετά από πόσα δευτερόλεπτα ο browser θα πάει στη σελίδα που θέλετε.

Πολλαπλά νομίσματα

Σε περίπτωση που για κάποιο λόγο στο site σας χρησιμοποιείτε άλλο νόμισμα εκτός του ευρώ, και με την προϋπόθεση πως έχετε στήσει σωστά τις ισοτιμές και τις τιμές των προϊόντων σας, το module θα μετατρέψει την τιμή σε ευρώ σύμφωνα με τη δική σας ισοτιμία, και θα χρεώσει το αντίστοιχο ποσό σε ευρώ, αν βέβαια στην παραμετροποίηση έχετε ρυθμίσει σωστά την επιλογή Convert To For Processing. Αν η συναλλαγή είναι επιτυχής, το module θα μετατρέψει πάλι το ποσό στο βασικό σας νόμισμα, όπως και την προμήθεια, και θα κάνει τις αντίστοιχες εγγαφές στο WHMCS σύμφωνα με αυτό και όχι με το ευρώ.

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

Έλεγχος λειτουργίας

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

Από το admin panel και συγκεκριμένα από την επιλογή Billing/Gateway Log μπορείτε να δείτε αναλυτικότατες πληροφορίες για τις συναλλαγές (επιτυχείς ή μη), οι οποίες σε περίπτωση προβλήματος θα σας βοηθήσουν να λύσετε το πρόβλημα αυτό σε συνεργασία με τους τεχνικούς της EuroBank. Από το Gateway Log επίσης, θα αντλήσετε και τα δεδομένα που θα πρέπει να στείλετε στη EuroBank, ώστε βεβαιωθούν πως έχετε ολοκληρώσει τις δοκιμαστικές λειτουργίες.

Αν έχετε ενεργοποιήσει την επιλογή Enable extended debugging στην παραμετροποίηση, μέσα στον κατάλογο /modules/gateways/efgcardlink θα δημιουργηθεί ένα πάρα πολύ αναλυτικό αρχείο με το όνομα debug.txt, για να δείτε ολόκληρη τη διαδικασία. Το αρχείο αυτό θα το χρειαστούμε κι εμείς, σε περίπτωση που έχετε πρόβλημα με κάποια συναλλαγή.

Παρατηρήσεις

Το module δημιουργεί το table mod_efgcardlink. Στο table αυτό γράφονται διάφορες απαραίτητες πληροφορίες για τις συναλλαγές, και σε ακραία περίπτωση λάθους μπορείτε να ανατρέξετε εκεί για επιπλέον πληροφορίες από το gateway log. Το table αυτό κάθε φορά που εκτελείται οποιαδήποτε λειτουργεία σχετική με πληρωμή στο WHMCS (ανεξάρτητη του module), αδειάζει από τις παλιές εγγραφές (>7 ημέρες) και κάθε φορά που ολοκληρώνεται μία συναλλαγή σβήνει τις εγγραφές. Αυτό σημαίνει πως δεν θα πρέπει να σας απασχολεί το μέγεθός του.

Αν δείτε στα logs μήνυμα πως υπήρξε Possible Fraud, σημαίνει συνέβει κάποιο ή κάποια από τα παρακάτω:

Στις περιπτώσεις αυτές, το module θα εμφανίσει ένα javascript alert box με το περιεχόμενο της μεταβλητής <php>$_LANG[‘efgcardlinkfraud’]</php>4) και θα στείλει τον χρήστη στην κεντρική σελίδα του WHMCS.

Ιστορικό εκδόσεων

1)
Για λεπτομέρειες δείτε τη σελίδα 6 του οδηγού υλοποίησης της Cardlink
2) , 3)
Οι τιμές των μεταβλητών <php>$_LANG[‘yes’]</php> και <php>$_LANG[‘no’]</php> που υπάρχουν ήδη στα default αρχεία γλώσσας
4)
Θα πρέπει να ορίσετε εσείς το λεκτικό στα αρχεία γλώσσας. Πχ: ‘Παρουσιάστηκε κάποιο σοβαρό σφάλμα στη συναλλαγή – Θα επιστρέψετε στην κεντρική σελίδα’