Επανακλήσεις
Λάβετε υπογεγραμμένα, αδύναμα συμβάντα διακομιστή σε διακομιστή και ολοκληρωμένα αποτελέσματα ασυγχρονισμού.
Επανακλήσεις
Διαμόρφωση διεύθυνσης URL επιστροφής κλήσης Προφίλ → Επιστροφές κλήσεων και ασύγχρονα αποτελέσματα. Το Model Gate στέλνει HTTPS POST αιτήματα για ενεργοποιημένες ειδοποιήσεις λογαριασμού και ολοκληρωμένα αιτήματα συμπερασμάτων εγγενούς ασυγχρονισμού. Η παράδοση επανάκλησης είναι ανεξάρτητη από την επεξεργασία συμπερασμάτων και εκτελείται μέσω μιας αποκλειστικής ανθεκτικής ουράς εργαζομένων Model Gate.
URL επιστροφής κλήσης και ασφάλεια εξερχόμενων
Χρησιμοποιήστε ένα δημοσίως προσβάσιμο τελικό σημείο HTTPS. Η επικύρωση διεύθυνσης URL επιστροφής κλήσης είναι ένα εξερχόμενο όριο ασφαλείας. Το Loopback, το ιδιωτικό, το τοπικό σύνδεσμο, το NAT κατηγορίας φορέα, η τεκμηρίωση/δοκιμή, η πολλαπλή μετάδοση, το απροσδιόριστο και το δεσμευμένο εύρος IP απορρίπτονται. Το όνομα κεντρικού υπολογιστή επικυρώνεται κατά την αποθήκευση και ξανά κατά την παράδοση. οι ανακατευθύνσεις επικυρώνονται εκ νέου. Μην κατευθύνετε επανακλήσεις σε εσωτερικές υπηρεσίες ή ανακατευθύνετε σε ιδιωτικά δίκτυα.
Φάκελος κοινής εκδήλωσης
Κάθε επανάκληση χρησιμοποιεί τον ίδιο φάκελο:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id είναι σταθερό για κάθε επανάληψη ενός λογικού συμβάντος. Κατάργηση διπλότυπων παραδόσεων από event_id; μην συνάγετε ταυτότητα συγκρίνοντας το υπόλοιπο ωφέλιμο φορτίο. occurred_at είναι UTC RFC3339. Τα ωφέλιμα φορτία ενδέχεται να αποκτήσουν επιπλέον πεδία με την πάροδο του χρόνου, επομένως οι καταναλωτές πρέπει να αγνοούν άγνωστα πεδία.
Κάθε παράδοση περιλαμβάνει επίσης το ίδιο αναγνωριστικό συμβάντος X-Model-Gate-Event-ID.
Κατάλογος εκδηλώσεων
account.balance_low
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"balance": "10.1234567890",
"threshold": "20.0000000000",
"currency": "USD"
}
}
key.spend_limit_threshold_reached
{
"event_id": "01J...",
"event": "key.spend_limit_threshold_reached",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"key_id": "KEY_PUBLIC_ID",
"key_name": "Bank integration",
"usage": "80.1234567890",
"spend_limit": "100.0000000000",
"threshold_percent": 80,
"currency": "USD"
}
}
group.spend_limit_threshold_reached
Το ωφέλιμο φορτίο χρησιμοποιεί group_id, group_name, ακριβής-δεκαδικός usage, ακριβής-δεκαδικός spend_limit, ακέραιος threshold_percent, και currency = "USD".
request.completed
{
"event_id": "01J...",
"event": "request.completed",
"occurred_at": "2026-08-28T07:00:00.123456Z",
"data": {
"request_id": "01J...",
"status": "completed",
"response_status": 200,
"response": {"id":"msg_...","type":"message"}
}
}
response_status είναι μηδενικό όταν δεν υπάρχει κατάσταση HTTP upstream. Τα αποτελέσματα ασυγχρονισμού που απέτυχαν/ακυρώθηκαν/έληξαν μπορεί να περιλαμβάνουν data.error.
Οι οικονομικές αξίες στα ωφέλιμα φορτία επανάκλησης είναι ακριβείς δεκαδικές συμβολοσειρές. δεν είναι τιμές εμφάνισης στρογγυλεμένες με UI.
Οι ειδοποιήσεις κατωφλίου επανοπλίζονται αφού η παρακολουθούμενη τιμή εξέλθει από την κατάσταση κατωφλίου. Ο εργάτης κατωφλίου αξιολογεί τις συνθήκες περίπου μία φορά το λεπτό, έξω από τη θερμή διαδρομή συμπερασμάτων, επομένως οι επανακλήσεις κατωφλίου δεν αποτελούν σήμα διέλευσης χιλιοστού του δευτερολέπτου σε πραγματικό χρόνο.
Μορφή αιτήματος
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Event-ID: 01J...
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Επαλήθευση υπογραφής
Υπολογίστε το HMAC-SHA256 πάνω από την ακριβή συμβολοσειρά <timestamp>.<raw_body> χρησιμοποιώντας το μυστικό επανάκλησης που δημιουργήθηκε στο Προφίλ. Το πλήρες μυστικό εμφανίζεται μόνο όταν δημιουργείται ή περιστρέφεται και αποθηκεύεται κρυπτογραφημένο σε κατάσταση ηρεμίας. Συγκρίνετε την δεκαεξαδική υπογραφή σε σταθερό χρόνο και απορρίψτε τις χρονικές σημάνσεις έξω από το αποδεκτό παράθυρο επανάληψης. Η χρονική σήμανση HMAC είναι συγκεκριμένη για μια προσπάθεια παράδοσης. ο event_id παραμένει σταθερό σε όλες τις επαναλήψεις.
Παράδοση, απάντηση και επανάληψη
Οποιοδήποτε HTTP 2xx η απάντηση αποδέχεται το συμβάν. HTTP 200 με άδειο σώμα συνιστάται. Τα σφάλματα μεταφοράς, τα χρονικά όρια και κάθε απάντηση που δεν είναι 2xx είναι αποτυχίες.
Κάθε εκδήλωση έχει το πολύ 6 προσπάθειες συνολικά: η αρχική προσπάθεια συν πέντε επαναλήψεις. Οι αποτυχημένες προσπάθειες 1–5 ακολουθούνται από 5 δευτερόλεπτα, 30 δευτερόλεπτα, 2 λεπτά, 10 λεπτά και 1 ώρα. Κάθε προσπάθεια έχει και ένα δύσκολο 15 δευτερολέπτων συνολικό τάιμ άουτ. Μετά την έκτη αποτυχημένη προσπάθεια το συμβάν γίνεται τερματικό failed και δεν υπάρχει περαιτέρω αυτόματη επανάληψη. Οι μπαγιάτικες αξιώσεις εργαζομένων επιστρέφονται αυτόματα στη διαρκή ουρά.
Μην εκτελείτε μακροχρόνιες εργασίες πριν απαντήσετε. Επαληθεύστε την υπογραφή, συνεχίστε/αντιτυπώστε έως event_id, επιστροφή 2xxκαι επεξεργάζονται ασύγχρονα.