Webhook Επαλήθευση υπογραφής & Idempotency

Επαληθεύστε 6MM webhooks Agent με το σώμα της ανεπεξέργαστης αίτησης και τις επαναλήψεις διεργασιών, τα χρονικά όρια και τα επαναλαμβανόμενα συμβάντα χωρίς διπλότυπες επιχειρηματικές ενέργειες.

Προβολή ως Markdown

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

Webhook κεφαλίδες

ΚεφαλίδαΠεριγραφή
X-Agent-Χρονική σήμανσηΧρονική σήμανση Unix σε δευτερόλεπτα.
X-Agent-NonceΠροστασία επανάληψης nonce.
X-Agent-ΥπογραφήHMAC-SHA256 υπογραφή.
timestamp + nonce + rawBody

Χρησιμοποιήστε το ακριβές σώμα του μη επεξεργασμένου αιτήματος που λάβατε πάνω από HTTP κατά την ανακατασκευή της υπογεγραμμένης τιμής. Η ανάλυση και η εκ νέου σειριοποίηση JSON πρώτα μπορεί να αλλάξει το κενό διάστημα ή τη σειρά των πεδίων και να παράγει μια διαφορετική υπογραφή.

Ροή επαλήθευσης

  1. Διαβάστε τις κεφαλίδες χρονικής σήμανσης, nonce και υπογραφής.
  2. Καταγράψτε το μη τροποποιημένο ακατέργαστο σώμα αιτήματος.
  3. Κατασκευάστε timestamp + nonce + rawBody.
  4. Υπολογίστε HMAC-SHA256 με τον σύντροφο API μυστικό.
  5. Συγκρίνετε τις υπογραφές που υπολογίστηκαν και ελήφθησαν χρησιμοποιώντας μια σύγκριση σταθερού χρόνου.
  6. Εφαρμόστε τους εγκεκριμένους ελέγχους χρονικής σήμανσης-φρεσκάδας και μη επαναχρησιμοποίησης.
  7. Αναλύστε και επεξεργαστείτε το συμβάν μόνο μετά την επιτυχία της επαλήθευσης.

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

Παραγγελία idempotency

ΥπόθεσηΧειρισμός
Αρχικό αίτημα μεταφοράςΔημιουργήστε ένα παγκοσμίως μοναδικό agentOrderNo.
HTTP τάιμ άουτΡωτήστε το αρχικό agentOrderNo πριν δημιουργήσετε ένα νέο.
PROCESSING απάντησηΠεριμένετε webhook ή υποβάλετε ερώτημα για την κατάσταση της παραγγελίας.
Επαναλαμβανόμενες webhookΔιαγραφή διπλότυπων με βάση το κλειδί idempotency και την τελική κατάσταση.

Αποθηκεύστε αρκετές πληροφορίες για να αναγνωρίσετε μια επαναλαμβανόμενη παράδοση και να ανακτήσετε με ασφάλεια:

ΠεδίοΣκοπός
Κλειδί συμβάντος ή επιχείρησηςΠροσδιορίζει μοναδικά την ειδοποίηση ή τη λειτουργία.
Αριθμός παραγγελίας συνεργάτηΣυνδέει το συμβάν με το αρχικό αίτημα.
Κατακερματισμός ωφέλιμου φορτίουΒοηθά στον εντοπισμό επαναλαμβανόμενων ωφέλιμων φορτίων σε διένεξη.
Τρέχουσα κατάσταση επεξεργασίαςΔιακρίνει τη ληφθείσα, την επεξεργασία, την επιτυχία και την αποτυχημένη εργασία.
Τελική κατάσταση επιχείρησηςΑποτρέπει την εφαρμογή μιας ενέργειας τερματικού δύο φορές.
Επεξεργασμένη χρονική σήμανσηΥποστηρίζει πολιτικές έρευνας και διατήρησης.

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

Κανόνας χρονικού ορίου και επανάληψης

Ένα χρονικό όριο HTTP δεν αποδεικνύει ότι η αρχική αίτηση απέτυχε. Υποβάλετε ερώτημα στη λειτουργία χρησιμοποιώντας το αρχικό agentOrderNoή περιμένετε να webhookτου , προτού αποφασίσετε εάν απαιτείται άλλη ενέργεια. Η δημιουργία ενός νέου αριθμού επιχειρηματικής παραγγελίας μετά από κάθε χρονικό όριο μπορεί να προκαλέσει διπλές κινήσεις κεφαλαίων.

Λίστα ελέγχου παραγωγής

  • Επαληθεύστε την υπογραφή πριν από JSON ανάλυση ή την επιχειρηματική επεξεργασία.
  • Διατηρήστε το ακατέργαστο σώμα ανεξάρτητα από το αναλυμένο ωφέλιμο φορτίο.
  • Απορρίψτε τα αιτήματα που δεν είναι ενημερωμένα ή έχουν επαναληφθεί σύμφωνα με την εγκεκριμένη πολιτική ενσωμάτωσης.
  • Κάντε την επεξεργασία συμβάντων ασφαλή για επαναλαμβανόμενη παράδοση και παράδοση εκτός παραγγελίας.
  • Καταγράψτε αναγνωριστικά συμβάντων, αριθμούς παραγγελιών συνεργατών, αποτέλεσμα επεξεργασίας και χρόνο αιτήματος.
  • Αποκρύψτε μυστικά και τιμές υπογραφής από αρχεία καταγραφής και συνημμένα υποστήριξης.