Webhooks für neue Bestellungen
Ein Webhook sendet jede neue Bestellung und jede Änderung daran als signierte JSON-Nachricht an Ihr eigenes System. Sie geben Menuthere eine HTTPS-Adresse und ein Geheimnis, und Sie prüfen die Signatur jeder Anfrage. Eine Test-Schaltfläche und ein Zustellprotokoll lassen Sie prüfen, ob es funktioniert.
- Wo
- Set up by Menuthere support
- Tarif
- Das Dashboard sperrt Webhooks nicht nach Tarif.
- Dauer
- 15 Min.
- Aktualisiert
Einen Webhook einrichten
Schritt 1: Dem Support Ihre Adresse senden
Webhooks sind noch nicht im Dashboard, deshalb richtet der Menuthere-Support sie ein. Senden Sie dem Support die Adresse, die Bestellungen empfangen soll. Sie muss mit https:// beginnen und aus dem Internet erreichbar sein. Adressen wie localhost oder ein privates Netzwerk lassen sich nicht aufrufen.
Schritt 2: Das Signaturgeheimnis aufbewahren
Der Support schaltet Bestell-Webhooks ein und gibt Ihnen ein Signaturgeheimnis. Bewahren Sie es nur auf Ihrem Server auf. Damit prüfen Sie, ob jede Anfrage wirklich von Menuthere kam.
Schritt 3: Ein Testereignis anfordern
Bitten Sie den Support, ein Testereignis zu senden. Es sendet ein Beispiel order.created an Ihre Adresse, und das Ergebnis zeigt Delivered mit dem Antwortcode Ihres Endpunkts oder was schiefgelaufen ist.
Was Menuthere sendet
| Ereignis | Gesendet, wenn |
|---|---|
| order.created | Eine Bestellung aufgegeben wird. |
| order.status_updated | Der Status einer Bestellung sich ändert, zum Beispiel angenommen, Essen fertig oder abgeschlossen. |
| payment.status_updated | Eine Bestellung als bezahlt markiert wird oder sich ihre Zahlungsart ändert. |
| delivery.status_updated | Ein Fahrer zugewiesen wird oder sich der Lieferstatus ändert. |
| Header | Wert |
|---|---|
| x-menuthere-event | Der Ereignisname. |
| x-menuthere-timestamp | Unix-Zeit in Sekunden, bei jedem Versuch neu gesetzt. |
| x-menuthere-signature | Ein hexadezimaler HMAC-SHA256 des rohen Anfrage-Bodys, erstellt mit Ihrem Geheimnis. |
Der Body ist ein Umschlag mit event, einer eindeutigen id, created_at und data. Ein Testereignis trägt außerdem "test": true, überspringen Sie es also in Ihrer Küche. Bei order.created enthält data die folgenden Felder.
| Feld | Inhalt |
|---|---|
| order_id, order_number | Die ID der Bestellung und die Nummer, die Ihr Team sieht. |
| status, type, placed_at, currency | Aktueller Status, Bestellart, Zeitpunkt der Bestellung und Währung. |
| totals | subtotal, delivery_charge, packing_charge, gst, discount, grand_total. |
| customer | name, phone, address. |
| table | Tisch-number und -name bei einer Tischbestellung, sonst leer. |
| items | Jede Zeile: name, quantity, unit_price, total_price, variant, notes. |
| notes, payment | Die Notiz des Gastes sowie die Zahlungsart method und ob sie is_paid ist. |
Prüfen und Zuverlässigkeit
- Prüfen Sie die Signatur gegen den rohen Body. Das Parsen und erneute Kodieren des JSON ändert Abstände und Reihenfolge, und die Signatur stimmt nicht mehr.
- Seien Sie idempotent. Dieselbe id kann zweimal ankommen. Nutzen Sie sie, um einen zweiten Küchenbon zu vermeiden.
- Antworten Sie schnell mit einem 2xx. Menuthere wartet 8 Sekunden pro Versuch und versucht es bis zu dreimal, nach 1,5 Sekunden und dann nach 5 Sekunden. Ein Timeout, ein 5xx, ein 408 oder ein 429 wird wiederholt. Jedes andere 4xx gilt als bewusstes Nein und beendet es.
- Prüfen Sie Recent deliveries. Das Panel listet die Versuche der letzten 24 Stunden, die neuesten zuerst, mit Antwortcode und Zeit. Jeder erneute Versuch ist eine eigene Zeile.
Fragen
Kann ich es auf einen Server in meinem eigenen Netzwerk richten?
Kann ich meinem POS mitteilen, dass die Bestellung angenommen wurde?
Wird das Zustellprotokoll ewig aufbewahrt?
Siehe auch
Nicht gefunden? Schreiben Sie an [email protected] oder chatten Sie mit uns, 9 bis 21 Uhr.Hilfe-CenterPreisemenuthere.com
