Webhook per i nuovi ordini
Un webhook invia ogni nuovo ordine, e ogni sua modifica, al tuo sistema come messaggio JSON firmato. Dai a Menuthere un indirizzo HTTPS e un segreto, poi verifichi la firma su ogni richiesta. Un pulsante di prova e un registro delle consegne ti permettono di controllare che funzioni.
- Dove
- Set up by Menuthere support
- Piano
- La dashboard non blocca i webhook in base al piano.
- Tempo
- 15 min
- Aggiornato
Configura un webhook
Passo 1: Invia il tuo indirizzo all'assistenza
I webhook non sono ancora nella dashboard, quindi li configura l'assistenza Menuthere. Invia all'assistenza l'indirizzo che riceverà gli ordini. Deve iniziare con https:// ed essere raggiungibile da internet. Indirizzi come localhost o di una rete privata non possono essere chiamati.
Passo 2: Conserva il segreto di firma
L'assistenza attiva i webhook degli ordini e ti dà un segreto di firma. Tienilo solo sul tuo server. Lo usi per controllare che ogni richiesta arrivi davvero da Menuthere.
Passo 3: Chiedi un evento di prova
Chiedi all'assistenza di inviare un evento di prova. Invia un order.created di esempio al tuo indirizzo, e il risultato mostra Delivered con il codice di risposta del tuo endpoint, oppure cosa è andato storto.
Cosa invia Menuthere
| Evento | Inviato quando |
|---|---|
| order.created | Viene effettuato un ordine. |
| order.status_updated | Lo stato di un ordine cambia, ad esempio accettato, pronto o completato. |
| payment.status_updated | Un ordine viene segnato come pagato, oppure cambia il suo metodo di pagamento. |
| delivery.status_updated | Viene assegnato un fattorino o cambia lo stato della consegna. |
| Intestazione | Valore |
|---|---|
| x-menuthere-event | Il nome dell'evento. |
| x-menuthere-timestamp | Ora Unix in secondi, impostata di nuovo a ogni tentativo. |
| x-menuthere-signature | Un HMAC-SHA256 esadecimale del corpo grezzo della richiesta, creato con il tuo segreto. |
Il corpo è una busta con event, un id univoco, created_at e data. Un evento di prova contiene anche "test": true, quindi ignoralo nella tua cucina. Per order.created, data contiene i campi seguenti.
| Campo | Contenuto |
|---|---|
| order_id, order_number | L'ID dell'ordine e il numero mostrato al tuo team. |
| status, type, placed_at, currency | Stato attuale, tipo di ordine, ora dell'ordine e valuta. |
| totals | subtotal, delivery_charge, packing_charge, gst, discount, grand_total. |
| customer | name, phone, address. |
| table | number e name del tavolo per un ordine al tavolo, altrimenti vuoto. |
| items | Ogni riga: name, quantity, unit_price, total_price, variant, notes. |
| notes, payment | La nota del cliente, e il method di pagamento e se è is_paid. |
Verifica e affidabilità
- Controlla la firma sul corpo grezzo. Analizzare e ricodificare il JSON cambia spaziatura e ordine, e la firma non corrisponderà.
- Sii idempotente. Lo stesso id può arrivare due volte. Usalo per evitare una seconda comanda in cucina.
- Rispondi con un 2xx in fretta. Menuthere aspetta 8 secondi per tentativo e riprova fino a tre volte, dopo 1,5 secondi e poi 5 secondi. Un timeout, un 5xx, un 408 o un 429 vengono ritentati. Qualsiasi altro 4xx è preso come un no voluto e si ferma.
- Controlla Recent deliveries. Il pannello elenca i tentativi delle ultime 24 ore, dal più recente, con il codice di risposta e l'ora. Ogni nuovo tentativo è una riga a sé.
Domande
Posso indirizzarlo a un server della mia rete?
Posso dire alla mia cassa (POS) che l'ordine è stato accettato?
Il registro delle consegne viene conservato per sempre?
Vedi anche
Non lo trovi? Scrivi a [email protected] o chatta con noi, dalle 9 alle 21.Centro assistenzaPrezzimenuthere.com
