連携と API全プラン
新しい注文の Webhook
Webhook は、新しい注文とその変更を、署名付きの JSON メッセージとして自社のシステムに送ります。Menuthere に HTTPS のアドレスとシークレットを渡し、各リクエストの署名を検証します。テストボタンと配信ログで、動作を確認できます。
- 場所
- Set up by Menuthere support
- プラン
- ダッシュボードでは、Webhook はプランによって制限されません。
- 所要時間
- 15分
- 更新日
Webhook を設定する
ステップ 1: サポートにアドレスを送る
Webhook はまだダッシュボードにないため、Menuthere サポートが設定します。注文を受け取るアドレスをサポートに送ってください。https:// で始まり、インターネットから到達できる必要があります。localhost やプライベートネットワークのアドレスは呼び出せません。
ステップ 2: 署名用のシークレットを保管する
サポートが注文の Webhook をオンにし、署名用のシークレットを渡します。サーバー上でのみ保管してください。各リクエストが本当に Menuthere から送られたものかを確認するのに使います。
ステップ 3: テストイベントを依頼する
サポートにテストイベントの送信を依頼します。サンプルの order.created が指定のアドレスに送信され、結果として Delivered とエンドポイントの応答コード、または問題の内容が表示されます。
Menuthere が送る内容
| イベント | 送信されるタイミング |
|---|---|
| order.created | 注文が確定したとき。 |
| order.status_updated | 注文のステータスが変わったとき(承認、料理の準備完了、完了など)。 |
| payment.status_updated | 注文が支払い済みになったとき、または支払い方法が変わったとき。 |
| delivery.status_updated | 配達員が割り当てられたとき、または配送の状態が変わったとき。 |
| ヘッダー | 値 |
|---|---|
| x-menuthere-event | イベント名。 |
| x-menuthere-timestamp | 秒単位の Unix 時間。試行ごとに設定し直されます。 |
| x-menuthere-signature | リクエストの生のボディに対して、シークレットで作成した HMAC-SHA256 の16進数の値。 |
ボディは、event、一意の id、created_at、data を含むエンベロープです。テストイベントには "test": true も付くため、キッチンでは無視してください。order.created の data には、以下の項目が入っています。
| 項目 | 内容 |
|---|---|
| order_id, order_number | 注文の ID と、スタッフに表示される番号。 |
| status, type, placed_at, currency | 現在のステータス、注文タイプ、注文日時、通貨。 |
| totals | subtotal, delivery_charge, packing_charge, gst, discount, grand_total。 |
| customer | name, phone, address。 |
| table | テーブル注文の場合はテーブルの number と name、それ以外は空です。 |
| items | 各行:name, quantity, unit_price, total_price, variant, notes。 |
| notes, payment | お客様のメモと、支払いの method および is_paid(支払い済みかどうか)。 |
検証と信頼性
- 署名は、生のボディに対して確認してください。 JSON を解析して再エンコードすると、スペースや順序が変わり、署名が一致しなくなります。
- 冪等に処理してください。 同じ id が2回届くことがあります。この値を使って、キッチンの伝票が重複しないようにしてください。
- すぐに 2xx で応答してください。 Menuthere は1回の試行につき8秒待ち、最大3回、1.5秒後と5秒後に再試行します。タイムアウト、5xx、408、429 は再試行されます。それ以外の 4xx は意図的な拒否とみなされ、再試行されません。
- Recent deliveries を確認してください。 このパネルには、過去24時間の試行が新しい順に、応答コードと時間とともに表示されます。再試行は、それぞれ別の行になります。
知っておくと便利なことエンドポイントが失敗しても、お客様の注文が止まったり遅れたりすることはありません。
よくある質問
自社ネットワーク内のサーバーを指定できますか?
直接はできません。アドレスは公開された HTTPS である必要があります。localhost やプライベートネットワークのアドレスは拒否されます。
POS に注文が承認されたことを伝えられますか?
はい、API で可能です。API:注文のステータスを更新するをご覧ください。
配信ログはずっと保存されますか?
このパネルには、過去24時間の試行が表示されます。
関連ページ
見つからない場合は [email protected] までメールするか、チャットでお問い合わせください(9:00〜21:00)。ヘルプセンター料金menuthere.com
