Μενού τεκμηρίωσης: Σύνδεση καταστήματος
Σύνδεση καταστήματος
Οδηγοί
Ένα κατάστημα δεν κρατά ποτέ το μυστικό κλειδί του λογαριασμού σας. Ο ιδιοκτήτης του το εγκρίνει σε μια σελίδα του Tallio, και ο διακομιστής του καταστήματος ανταλλάσσει έναν κωδικό μίας χρήσης με τα περιορισμένα κλειδιά του, δεσμευμένα σε έναν έμπορο.
Σε αυτή τη σελίδα
Σημαντικό
Φυλάξτε τα κλειδιά του καταστήματος κρυπτογραφημένα στον διακομιστή του: ποτέ σε URL, σε σελίδα ή στον browser. Ένα περιορισμένο κλειδί (rk_live_…, rk_test_…) ενεργεί μόνο για τον δικό του έμπορο, και μόνο μέσω των λειτουργιών που αναφέρονται παρακάτω.
Η εξουσιοδότηση #
Η «Σύνδεση με το Tallio» είναι εξουσιοδότηση OAuth 2.0 με κωδικό εξουσιοδότησης (authorization code) και PKCE (S256). Ο κωδικός ταξιδεύει μέσω του browser· ο verifier δεν φεύγει ποτέ από τον διακομιστή του καταστήματος, οπότε ένας κωδικός μόνος του είναι άχρηστος.
- Αίτηση. Το κατάστημα κρατά ένα τυχαίο
stateκαι έναcode_verifier(43 έως 128 χαρακτήρες) και στέλνει τον browser του διαχειριστή του στη φιλοξενούμενη σελίδα του Tallio με το challenge. Τοredirect_uriπρέπει να είναι ακριβώς το callback του καταστήματος κάτω από το URL του, τίποτε άλλο. - Συναίνεση. Ο διαχειριστής συνδέεται στο Tallio ή εγγράφεται, και ένας ιδιοκτήτης της ομάδας εγκρίνει το κατάστημα, επιβεβαιώνοντας με δεύτερο παράγοντα ή με νέα σύνδεση. Στην πρώτη σύνδεση πληκτρολογεί επίσης τα φορολογικά στοιχεία της επιχείρησης, και το Tallio δημιουργεί τον έμπορό της.
- Επιστροφή. Ο browser επιστρέφει στο
redirect_uriμε τοcodeκαι το ίδιοstate, ή μεerror=access_deniedόταν ο διαχειριστής ακυρώσει. Ο κωδικός ισχύει 10 λεπτά. - Ανταλλαγή. Ο διακομιστής του καταστήματος καλεί το POST /store_grants/token με τον κωδικό, τον verifier και το ίδιο
redirect_uri, δηλώνοντας τον εαυτό του στοTallio-Store-Url. Η απάντηση, που δίνεται μία φορά, περιέχει τον έμπορο, την ομάδα, τα δύο κλειδιά και τα μυστικά των endpoints webhook του καταστήματος.
Στείλτε τον browser του διαχειριστή στοGET /dashboard/connect-store
?platform=woocommerce
&store_url=https://shop.example
&redirect_uri=https%3A%2F%2Fshop.example%2Fwp-admin%2Fadmin.php%3Fpage%3Dtallio-connect
&state=…
&code_challenge=…
&code_challenge_method=S256
&locale=elΑνταλλάξτε τον κωδικό, από τον διακομιστή του καταστήματοςcurl "$TALLIO_API_URL/v1/store_grants/token" \
-H "Tallio-Store-Url: https://shop.example" \
-H "Content-Type: application/json" \
-d '{"grant_type":"authorization_code","code":"…","code_verifier":"…","redirect_uri":"https://shop.example/wp-admin/admin.php?page=tallio-connect","store_environment":"production"}'Κάθε ανταλλαγή που απορρίπτεται παίρνει το ίδιο 400 invalid_grant, όποια κι αν είναι η αιτία. Μην επαναλαμβάνετε ποτέ μια επιτυχημένη ανταλλαγή: αν ανταλλάξετε ξανά έναν χρησιμοποιημένο κωδικό με τον verifier του, ανακαλούνται τα κλειδιά που έδωσε, αφού μια επανάληψη σημαίνει ότι ο κωδικός διέρρευσε. Αν χαθεί η απάντηση, συνδέστε ξανά το κατάστημα.
Η γλώσσα της φιλοξενούμενης σελίδας #
Περάστε τη γλώσσα του διαχειριστή στο locale (el, fr_FR, en_US): η σελίδα εισόδου και η σελίδα συναίνεσης την ακολουθούν όταν το Tallio την υποστηρίζει, μόνο για εκείνη τη συνεδρία. Μια άγνωστη τιμή ή μια τιμή που λείπει δεν απορρίπτει ποτέ το αίτημα.
Πραγματικά και δοκιμαστικά κλειδιά #
Η ανταλλαγή δίνει πάντα δοκιμαστικό κλειδί, και πραγματικό κλειδί μόνο για κατάστημα σε παραγωγή. Στείλτε το store_environment (production, staging, development, local): οτιδήποτε εκτός από production παίρνει μόνο δοκιμαστικό κλειδί, όπως και ένας host ανάπτυξης (localhost, .test, μια ιδιωτική διεύθυνση, ένα δημόσιο tunnel). Ένα δοκιμαστικό κλειδί εκδίδει μέσω της δοκιμαστικής σύνδεσης του εμπόρου ή, αν δεν υπάρχει, μέσω του sandbox του Tallio.
Το URL του καταστήματος #
Τα κλειδιά ενός καταστήματος είναι δεσμευμένα στο URL του. Στείλτε το στο Tallio-Store-Url σε κάθε κλήση: άλλη τιμή, ή καμία, δίνει 409 store_url_mismatch. Η δέσμευση αυτή εμποδίζει ένα αντίγραφο staging του καταστήματος να εκδίδει πραγματικά παραστατικά με αντιγραμμένες ρυθμίσεις· το URL δεν είναι μυστικό. Όταν το κατάστημα πράγματι μεταφερθεί, ο διαχειριστής του επιβεβαιώνει τη μεταφορά και το κατάστημα στέλνει το νέο του URL στο PUT /store_binding· όσο το κατάστημα έχει πραγματικό κλειδί, μόνο αυτό το κλειδί μπορεί να το μεταφέρει.
Τι μπορεί να καλέσει ένα κλειδί καταστήματος #
Ένα κλειδί καταστήματος φτάνει μόνο στις λειτουργίες του παρακάτω πίνακα, και μόνο για τον δικό του έμπορο: τα ids άλλου εμπόρου απαντούν 404, σαν να μην υπήρχαν. Κάθε άλλη λειτουργία δίνει 403 restricted_key: ένα κλειδί καταστήματος δεν μπορεί να δημιουργήσει εμπόρους, να δει τη λίστα συμβάντων, να διαχειριστεί endpoints webhook ή κλειδιά, ούτε να φτάσει στον διακομιστή MCP.
Όταν το κατάστημα αποσυνδέεται ή το πρόσθετο αφαιρείται, το κατάστημα παραιτείται από κάθε κλειδί με το DELETE /api_keys/current. Ένας ιδιοκτήτης της ομάδας μπορεί επίσης να ανακαλέσει τα κλειδιά του καταστήματος από τον πίνακα ελέγχου· μια νέα σύνδεση αντικαθιστά τα παλιά κλειδιά.
Λειτουργίες κλειδιού καταστήματος #
Παράγεται από το μητρώο λειτουργιών του API, τη λίστα με την οποία το API ελέγχει κάθε κλειδί καταστήματος.