EveryPay REST Service



Σχεδιασμένο για Developers

Καλύψαμε τις ανάγκες που έως σήμερα απαιτούσαν χρόνο και ήταν αρκετά πολύπλοκες ή αδύνατον να αναπτυχθούν.


Έτοιμες βιβλιοθήκες

...για τις περισσότερες πλατφόρμες και γλώσσες, για να μην χρειάζεται να γράψετε σχεδόν καθόλου κώδικα!
Δείτε περισσότερα εδώ.


Ασφάλεια συναλλαγών

Προτεραιότητα στις υπηρεσίες μας έχει η ασφάλεια των συναλλαγών.

Γενικά

Δημιουργήσαμε το API μας βασισμένο στην αρχιτεκτονική REST, όπου όλες οι αποκρίσεις επιτρέφονται ως αντικείμενα JSON.
Για εύκολες δοκιμές και ταυτόχρονα διασφάλιση της ακεραιότητας του κανονικού λογαριασμού η EveryPay υποστηρίζει δοκιμαστικά και κανονικά κλειδιά, που αντιστοιχούν στο δοκιμαστικό και το κανονικό περιβάλλον λειτουργίας. Ο χρήστης μπορεί ταυτόχρονα με την έναρξη χρήσης της κανονικής λειτουργίας να επιστρέφει πάντα στο δοκιμαστικό περιβάλλον, με τα αντίστοιχα δοκιμαστικά του κλειδιά, τα οποία δεν πραγματοποιούν πραγματική συναλλαγή.
Τα παραδείγματα που παρουσιάζονται παρακάτω μπορούν να χρησιμοποιηθούν ως έχουν στον κώδικά σας ή να τρέξουν σε τερματικό αν πρόκειται για curl. Απλά αντικαθιστάται κάθε φορά το κλειδί του παραδείγματος με το δικό σας δοκιμαστικό κλειδί.

Πιστοποίηση χρήστη

Για να πιστοποιηθείται ως χρήστης του EveryPay API, χρειάζεται να χρησιμοποιήσετε το ιδιωτικό σας κλειδί είτε του δοκιμαστικού είτε του κανονικού σας λογαριασμού. Το σύστημα χρησιμοποιεί βασική πιστοποίηση χρήσης του http (HTTP Basic authentication). Το κλειδί σας θα χρησιμεύσει ως το όνομα χρήστη που δηλώνετε κατά τη διαδικασία, ενώ θα αφήνετε κενό τον κωδικό χρήστη.
Χρειάζεται να χρησιμοποιείτε το ιδιωτικό σας κλειδί σε κάθε αίτηση πληρωμής προς το API μας. Με το δημόσιο κλειδί μπορείτε μόνο να δημιουργείτε token για χρήση σε μελλοντικές συναλλαγές - για τις οποίες και πάλι απαιτείται το ιδιωτικό σας κλειδί.
Παράδειγμα πιστοποίησης με το ιδιωτικό κλειδί:
curl https://api.everypay.gr/payments
  -u sk_PqSohnrYrRI1GUKOZvDkK5VVWAhnlU3R:
  // παράμετροι -d key=value
  
// σεττάρισμα του ιδιωτικού σας κλειδιού
Everypay::setApiKey('sk_PqSohnrYrRI1GUKOZvDkK5VVWAhnlU3R');

//  αίτηση πληρωμής
$payment = Payment::create(array(
//παράμετροι key =>  value
));
Παρατηρήστε ότι στην περίπτωση κλήσης του API με curl, η άνω-κάτω τελεία δεν είναι μέρος του κλειδιού, αλλά δίνεται ως διαχωριστικό ανάμεσα στο όνομα χρήστη (κλειδί) και τον κωδικό (κενό).
    Προσοχη:
  • Παρακαλώ διατηρείται τα ιδιωτικά σας κλειδιά ασφαλή και μην τα γνωστοποιείτε σε κανέναν. Αυτά τα ιδιωτικά κλειδιά φέρουν εξαιρετικά απόρρητες πληροφορίες για το λογαριασμό σας και τις συναλλαγές σας.

  • Λόγο ασφάλειας των συναλλαγών, όλες οι αιτήσεις για τις συναλλαγές σας πρέπει να γίνουν μέσω https. Αιτήσεις που γίνονται με κάθε άλλο τρόπο θα αποτυγχάνουν.

  • Oι κωδικοί και ID των token, καρτών, πληρωμών, πελατών κλπ. καθώς και τα δημόσια και ιδιωτικά κλειδιά που φαίνονται στα παραδείγματα είναι τυχαία και δεν έχουν πραγματικό αντίκρυσμα.

Κωδικοί απόκρισης

Το JSON object της απόκρισης της υπηρεσίας περιέχει, στην περίπτωση λάθους, κάποια πεδία που χαρακτηρίζουν την συναλλαγή:

  • το πεδίο status που συμβαδίζει με τους κωδικούς κατάστασης του HTTP

  • το πεδίο code που χαρακτηρίζει μοναδικά το αποτέλεσμα της αίτησης

  • το πεδίο message που επεξηγεί άμεσα την κατάσταση στην οποία βρέθηκε η συναλλαγή

Παράδειγμα απόκρισης λανθασμένης αίτησης:
{
    "error": {
        "status": 400,
        "code": 20008,
        "message": "Card holder name is empty or too long (max. 255 chars)."
    }
}
stdClass Object
(
    [error] => stdClass Object
        (
            [status] => 400
            [code] => 20008
            [message] => Card holder name is empty or too long (max. 255 chars).
        )

)
Μην βασίζεστε μόνο στην περίπτωση που το πεδίο status έχει τιμή 2xx για να θεωρείσετε επιτυχή μια συναλλαγή. Τα παραπάνω ισχύουν όταν όντως υπάρχει σφάλμα στη συναλλαγή, ενώ σε επιτυχή συναλλαγή το πεδίο status φέρει συγκεκριμένη τιμή - για παράδειγμα οι επιστροφές και οι πληρωμές προέγκρισης φέρουν ως status ένα κατάλληλο μήνυμα που φανερώνει το αποτέλεσμα της συναλλαγής.
Περισσότερα για τους κωδικούς απόκρισης στο Πλήρες ευρετήριο ΑPI

Σχεδιασμένο για developers


 



Καθαρό και ορθολογικό API που σας επιτρέπει να επικεντρωθείτε στη δημιουργία και ανάπτυξη των εφαρμογών σας.

Δείτε πόσο απλό είναι:

curl https://api.everypay.gr/payments
  -u sk_PqSohnrYrRI1GUKOZvDkK5VVWAhnlU3R:
  -d card_number=4242424242424242
  -d expiration_year=2018
  -d expiration_month=04
  -d cvv=334
  -d amount=1037
  -d currency=eur
  -d description="Παραγγελία #4357"
  -d holder_name="John Doe"
require_once '../autoload.php';

use Everypay\Everypay;
use Everypay\Payment;

// σεττάρισμα του ιδιωτικού σας κλειδιού
Everypay::setApiKey("sk_PqSohnrYrRI1GUKOZvDkK5VVWAhnlU3R");

//  η χρέωση της κάρτας για 10,37 ευρώ
$payment = Payment::create(array(
  'card_number' => '4242424242424242',
  'expiration_year' => '2018',
  'expiration_month' => '04',
  'cvv' => '334',
  'amount' => '1037', // το ποσό σε λεπτά
  'currency' => 'eur',
  'description' => 'Παραγγελία Νο.4357',
  'holder_name' => 'John Doe')
);

Λειτουργία Button : "Γρήγορο κουμπί"

<form class="payment-card-form" method="POST" action="/cart/step3">
    <script type="text/javascript" class="everypay-script"
        src="https://button.everypay.gr/js/button.js"
        data-key="YOUR_PUBLIC_KEY"
        data-amount="54399"
        data-description="IPHONE 5s METALLIC BLUE">
    </script>
</form>

Με το "γρήγορο κουμπί" γλιτώνετε ώρες δουλειάς αφού σας παρέχει έτοιμη τη φόρμα πληρωμής μέσα σε λίγες γραμμές κώδικα!


Δοκιμάστε το
Μάθετε περισσότερα

Ο λογαριασμός σας


To EveryPay παρέχει μία πολύ ευέλικτη πλατφόρμα διαχείρισης. Μερικές από αυτές που θα δούμε:


Ενεργοποίηση λογαριασμού - δημιουργία εταιρείας

Αφού πραγματοποιήσετε την εγγραφή σας στο EveryPay επισκεφθείτε την καρτέλα με τις εταιρίες σας στην διεύθυνση . Από εκεί μπορείτε να συμπληρώσετε τη φόρμα δημιουργίας νέας εταιρείας όπου θα πρέπει να εισάγετε

  1. το ΑΦΜ της εταιρείας
  2. ένα τηλέφωνο επικοινωνίας (βεβαιωθείτε για δική σας διευκόλυνση οτι είναι το πλέον ενημερωμένο)
  3. και τον τραπεζικό λογαριασμό στον οποίο θα γίνεται κατάθεση των πληρωμών που δέχεται η επιχείρησή σας.

Θα ακολουθήσει μια σύντομη διαδικασία επαλήθευσης των στοιχείων από την EveryPay και αφ'ότου εγκριθεί μπορούν πλέον να πραγματοποιηθούν κινήσεις προς αυτή την εταιρεία.

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


Δημόσιο, Ιδιωτικό και Κοινόχρηστο κλειδί

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

Το Δημόσιο κλειδί χρησιμοποιείται για την ταυτοποίηση της εταιρείας σε κλήσεις μέσω της βιβλιοθήκης Javascript everypay.js ή της λειτουργίας button. Η μόνη λειτουργία που μπορεί να εκτελεστεί με αυτό το κλειδί είναι η έκδοση Τoken.

Το Iδιωτικό κλειδί χρησιμοποιείται για να πραγματοποιούνται όλα τα υπόλοιπα είδη των κινήσεων μέσω API, π.χ Χρέωση, Ανάκτηση δεδομένων κ.ά. Η χρήση του Ιδιωτικού κλειδιού γίνεται μέσα στον κώδικα που εκτελεί η εφαρμογή σας, δηλαδή στον server σας, οπότε θα πρέπει να το "γνωρίζει" μόνο η εφαρμογή σας.

Το Κοινόχρηστο κλειδί (Shared key) προορίζεται για χρήση από πιθανούς συνεργάτες της εταιρείας σας, οι οποίοι επιθυμουν να εκτελούν συναλλαγές μέσω του λογαριασμού σας, για λογαριασμό σας.
Με το συγκεκριμένο κλειδί μπορούν να εκετελεστούν μόνο οι ενέργειες πληρωμής και προέγκρισης πληρωμής.

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


renew
Εικόνα 1: Tα κλεδιά της εταιρείας

Δοκιμαστικές συναλλαγές

Στη διεύθυνση https://sandbox-dashboard.everypay.gr βρίσκεται η δοκιμαστική πλατφόρμα του EveryPay όπου μπορείτε να εκτέλεσετε συναλλαγές σε εικονικό περιβάλλον. Η πλατφόρμα είναι ακριβώς ίδια με την live έκδοση οπότε η μετάβαση σε αυτή γίνεται πολύ εύκολα αλλάζοντας στην εφαρμογή σας μόνο τo Δημόσιo και Ιδιωτικό κλειδί.
Προτείνεται πριν από κάθε νέα χρήση του EveryPay στην εφαρμογή σας να πραγματοποιείτε δοκιμαστικές συναλλαγές στo sandbox περιβάλλον https://sandbox-api.everypay.gr.


Πληρωμή με κάρτα (χρέωση)


Στo κομμάτι αυτό θα δούμε πώς μπορεί να πραγματοποιηθεί μία πληρωμή με κάρτα (χρέωση). Τα απαραίτητα στοιχεία που χρειάζεστε είναι ένα ενεργό token (δείτε εδώ πώς μπορείτε να δημιουργήσετε ένα token) και το ιδιωτικό κλειδί του λογαριασμού σας "PRIVATE_API_KEY".

Μπορείτε να χρησιμοποιήσετε τις έτοιμες βιβλιοθήκες μας σε PHP, όπως και τα παρακάτω παραδείγματα.

Σημαντικό: Προς αποφυγή σφαλμάτων, για τις δοκιμαστικές πληρωμές να χρησιμοποιείτε πάντα τα κλειδιά απο τον λογαριασμό σας στο sandbox https://sandbox-dashboard.everypay.gr και την διεύθυνση https://sandbox-api.everypay.gr για τις κλησεις του api.

Χρέωση κάρτας με χρήση του token

Στη σελίδα επεξεργασίας του token στον web server σας, έχετε το token που δημιουργήθηκε με χρήση της φόρμας από το everypay.js, στην προηγούμενη σελίδα.

Θυμηθείτε: το ιδιωτικό κλειδί δεν πρέπει να βρίσκεται σε δημόσια θέα παρά μόνο στον κώδικα που βρίσκεται εντός του web server σας.

Η χρέωση της κάρτας γίνεται με μια απλή κλήση:

curl https://api.everypay.gr/payments
-u sk_chgRcz8C2UvhytYlzEcS86KpAsHenMOG:
-d token=ctn_497boB69uAPNAhezFOmVuXV2
-d amount=1037
-d currency=eur
-d description="Παραγγελία Νο.7294"
require_once '../autoload.php';

use Everypay\Everypay;
use Everypay\Payment;

// σεττάρισμα του ιδιωτικού σας κλειδιού
Everypay::setApiKey('sk_chgRcz8C2UvhytYlzEcS86KpAsHenMOG');

// παίρνουμε το token από τη φόρμα της προηγούμενης σελίδας
$cardtoken = $_POST['everypayToken'];

//  η χρέωση της κάρτας για 10,37 ευρώ
$payment = Payment::create(array(
  "amount" => 1037, // το ποσό σε λεπτά (10,37€)
  "currency" => "eur", // το νόμισμα
  "token" => $cardtoken,
  "description" => "Παραγγελία Νο.7294"
));

Δημιουργία πελάτη με token κάρτας


Στo κομμάτι αυτό θα δούμε πώς μπορεί να χρησιμεύσει ενα token κάρτας για δημιουργία πελάτη. Το αντικείμενο του πελάτη με τη σειρά του μπορεί να χρησιμοποιηθεί μελλοντικά για πληρωμές προς τον συγκεκριμένο έμπορο, όπως είναι για παράδειγμα οι συνδρομητικές πληρωμές. Τα απαραίτητα στοιχεία που χρειάζεστε είναι ένα ενεργό token κάρτας (δείτε εδώ πώς μπορείτε να δημιουργήσετε ένα token) και το ιδιωτικό κλειδί του λογαριασμού σας "PRIVATE_API_KEY".

Μπορείτε να χρησιμοποιήσετε τις έτοιμες βιβλιοθήκες μας σε PHP, όπως και τα παρακάτω παραδείγματα.

Σημαντικό: Προς αποφυγή σφαλμάτων, για τις δοκιμαστικές πληρωμές να χρησιμοποιείτε πάντα τα κλειδιά απο τον λογαριασμό σας στο sandbox https://sandbox-dashboard.everypay.gr και την διεύθυνση https://sandbox-api.everypay.gr για τις κλησεις του api.

Δημιουργια πελατη με χρήση του token

Στη σελίδα επεξεργασίας του token στον web server σας, έχετε το token που δημιουργήθηκε με χρήση της φόρμας από το everypay.js, στην προηγούμενη σελίδα.

Θυμηθείτε: το ιδιωτικό κλειδί δεν πρέπει να βρίσκεται σε δημόσια θέα παρά μόνο στον κώδικα που βρίσκεται εντός του web server σας.

Η δημιουργια πελατη γίνεται με μια απλή κλήση:

curl https://api.everypay.gr/customers
-u sk_chgRcz8C2UvhytYlzEcS86KpAsHenMOG:
-d token=ctn_497boB69uAPNAhezFOmVuXV2
-d full_name="George Customer"
require_once '../autoload.php';

use Everypay\Everypay;
use Everypay\Customer;

// σεττάρισμα του ιδιωτικού σας κλειδιού
Everypay::setApiKey('sk_chgRcz8C2UvhytYlzEcS86KpAsHenMOG');

// παίρνουμε το token από τη φόρμα της προηγούμενης σελίδας
$cardtoken = $_POST['everypayToken'];

//  η χρέωση της κάρτας για 10,37 ευρώ
$customer = Customer::create(array(
  "token" => $cardtoken,
  "full_name" => "George Customer"
));
Ακόμα, ο πελάτης μπορεί να δημιουργηθεί και ταυτόχρονα με την πρώτη πληρωμή, με αυτό τον token κάρτας - απλά ορίζουμε επιπλέον την παράμετρο create_customer:
curl https://api.everypay.gr/payments
-u sk_chgRcz8C2UvhytYlzEcS86KpAsHenMOG:
-d token=ctn_497boB69uAPNAhezFOmVuXV2
-d amount=1037
-d currency=eur
-d description="Παραγγελία Νο.7294"
-d create_customer=1
require_once '../autoload.php';

use Everypay\Everypay;
use Everypay\Payment;

// σεττάρισμα του ιδιωτικού σας κλειδιού
Everypay::setApiKey('sk_chgRcz8C2UvhytYlzEcS86KpAsHenMOG');

// παίρνουμε το token από τη φόρμα της προηγούμενης σελίδας
$cardtoken = $_POST['everypayToken'];

//  η χρέωση της κάρτας για 10,37 ευρώ
$payment = Payment::create(array(
  "amount" => 1037, // το ποσό σε λεπτά (10,37€)
  "currency" => "eur", // το νόμισμα
  "token" => $cardtoken,
  "description" => "Παραγγελία Νο.7294",
  "create_customer" => 1
));

Τελικά δημιουργείται ένας πελάτης με ένα μοναδικό customer token, πχ cus_b7QO01Ie4csrDAkRjXijK7aM με το οποίο μπορούμε να κάνουμε μελλοντικές πληρωμές, προς τον συγκεκριμένο έμπορο για τον οποιο δημιουργήθηκε αυτός ο πελάτης.

Πληρωμή με αυτόν τον πελάτη. Δείτε