☰ Μενού · Idempotency
Idempotency
Το δίκτυο μπορεί να πέσει στη μέση μιας κλήσης. Κάθε εγγραφή επαναλαμβάνεται με ασφάλεια, ώστε ο πελάτης να μην πάρει ποτέ διπλό cashback για μία απόδειξη.
Αποδείξεις και επισκέψεις: external_id
Τα POST /v1/transactions και POST /v1/visits απαιτούν external_id: το δικό σας id της απόδειξης ή της επίσκεψης. Κάθε external_id εφαρμόζεται μία φορά ανά επιχείρηση. Αν το στείλετε ξανά, λαμβάνετε 200 με το αποθηκευμένο αποτέλεσμα αντί για 201, και τίποτα δεν αλλάζει στην κάρτα. Αυτό ισχύει για πάντα, όχι μόνο για μία ημέρα, οπότε μπορείτε με ασφάλεια να ξαναστείλετε ολόκληρη βάρδια αφού το ταμείο ήταν εκτός σύνδεσης.
Όλα τα υπόλοιπα: Idempotency-Key
Για τις υπόλοιπες εγγραφές (εγγραφή μέλους, εξαργύρωση επιβράβευσης, δημιουργία πιάτου) στείλτε την κεφαλίδα Idempotency-Key με μοναδική τιμή, για παράδειγμα ένα UUID που δημιουργείτε πριν από την πρώτη προσπάθεια. Αποθηκεύουμε την απάντηση για 24 ώρες. Μια επανάληψη με το ίδιο κλειδί και το ίδιο σώμα επιστρέφει αυτή την απάντηση με την κεφαλίδα Idempotent-Replayed: true. Το ίδιο κλειδί με διαφορετικό σώμα απορρίπτεται με 409 idempotency_key_reused.
curl https://loyaltyfy.io/api/v1/members \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 3f6d1c0a-9b0e-4d2b-8e57-enrol-77" \
-d '{ "phone": "+37366791102", "first_name": "Ion", "consent": true }'
# repeat the same call: same body, same status, plus the header
# Idempotent-Replayed: trueΠώς να επαναλαμβάνετε
- Επαναλάβετε σε σφάλματα δικτύου, timeouts,
429,500,502και503. Μην επαναλαμβάνετε άλλα4xx· η απάντηση δεν θα αλλάξει. - Περιμένετε πριν από κάθε επανάληψη και κάθε φορά περισσότερο, για παράδειγμα 1, 2, 4, 8 δευτερόλεπτα.
- Κρατήστε το ίδιο
external_idήIdempotency-Keyσε όλες τις επαναλήψεις μιας λειτουργίας. Νέα τιμή σημαίνει νέα λειτουργία.