Ο client διανέμεται από το Entase CDN ως ένα μόνο αρχείο. Δεν υπάρχει πακέτο npm, bundle για build ή εξάρτηση που πρέπει να διατηρείτε ενημερωμένη – λαμβάνετε πάντα την τρέχουσα έκδοση.
<script src="https://js.entase.com/client.js"></script>Η φόρτωση του script ορίζει μια καθολική κλάση Entase. Από μόνο του δεν κάνει τίποτε άλλο: δεν εκτελεί αιτήματα δικτύου, δεν αλλάζει το DOM και δεν αποδίδει τίποτα. Όλα ξεκινούν όταν δημιουργήσετε ένα instance.
Δημιουργία instance
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });Δημιουργήστε ένα instance ανά σελίδα και επαναχρησιμοποιήστε το για κάθε event. Ο constructor καταχωρίζει έναν listener message στο window και αρχίζει να ανιχνεύει ποια λειτουργία checkout επιτρέπεται να χρησιμοποιεί το domain σας, επομένως η δημιουργία πολλών instances σημαίνει διπλούς listeners και διπλές κλήσεις ανίχνευσης χωρίς κανένα όφελος.
Κάθε επιλογή έχει προεπιλεγμένη τιμή, επομένως το new Entase() χωρίς ορίσματα είναι έγκυρο – αλλά χωρίς pk ο client δεν μπορεί να επαληθεύσει ότι το domain σας μπορεί να χρησιμοποιήσει ενσωματωμένο checkout και θα καταφεύγει πάντα σε αναδυόμενο παράθυρο. Δείτε τις Λειτουργίες checkout.
Ασύγχρονη φόρτωση του script
Αν φορτώνετε το client.js με async ή defer, η κλάση δεν θα υπάρχει ακόμη όταν εκτελείται το inline script σας. Η βιβλιοθήκη αποστέλλει ένα event entase:ready στο window μόλις φορτωθεί, οπότε περιμένετε γι’ αυτό:
<script src="https://js.entase.com/client.js" async></script>
<script>
let entase = null;
const init = () => { entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' }); };
if (typeof Entase !== 'undefined') init();
else window.addEventListener('entase:ready', init);
</script>Ο έλεγχος typeof πρέπει να γίνεται πρώτα: αν το script έχει ήδη ολοκληρώσει τη φόρτωση, το entase:ready έχει ήδη ενεργοποιηθεί και η αναμονή του θα διαρκούσε για πάντα.
Καθαρισμός
Σε μια εφαρμογή μίας σελίδας, καλέστε το destroy() όταν γίνεται unmount η προβολή στην οποία ανήκει το instance:
entase.destroy();Αυτό καταργεί τους listeners του window που καταχώρισε ο client. Ένα instance που έχει καταστραφεί δεν μπορεί να επαναχρησιμοποιηθεί – η κλήση του book() σε αυτό καταγράφει ένα σφάλμα και δεν κάνει τίποτα. Δημιουργήστε νέο instance αντί γι’ αυτό.
Πολιτική ασφάλειας περιεχομένου
Αν ο ιστότοπός σας στέλνει header Content-Security-Policy, το checkout χρειάζεται:
script-src https://js.entase.com– για τη φόρτωση της βιβλιοθήκης.frame-src https://www.entase.com– το checkout αποδίδεται σε iframe στη λειτουργία pane.connect-src https://www.entase.com– ο client καλεί το Entase API για να προσδιορίσει την επιτρεπόμενη λειτουργία checkout.
Χωρίς το frame-src, η λειτουργία pane δημιουργεί ένα κενό panel. Χωρίς το connect-src, η ανίχνευση λειτουργίας αποτυγχάνει και κάθε checkout ανοίγει ως αναδυόμενο παράθυρο.