エジソンでは、外部アプリケーションとの連携のため、「Webhook機能」を提供しています。
Webhookの詳細情報は【外部サービス連携≫Webhook設定】のWebhook設定画面で確認できます。
注:エジソンからのWebhookには顧客情報が含まれるため、HTTPSによる暗号化通信を強く推奨します。
※Webhookとは
Webhookとは、EDISONEでおこったイベントを外部の別アプリケーションへリアルタイムに情報提供する仕組みです。
■Webhook仕様
<イベント>
EDISONEが外部に送信を行うイベントは以下の3つです。
【 イベント発生 = 送信(データ更新)タイミング】
・reserve.receive:予約受付時
→ 顧客からの予約が入った段階で送信されます。未承認予約、確定予約は問いません。
・reserve.regist:予約登録時
→ 管理画面から予約を登録した際に送信されます。未承認予約、確定予約は問いません。
・reserve.cancel :予約キャンセル時
→ 顧客がエジソン会員ページからキャンセル処理を行った際に送信されます。未承認予約、確定予約は問いません。
<リクエストヘッダ>
EDISONEからのリクエストヘッダには以下の値がセットされています。
【 フィールド名 = 値の内容 】
・Content-Type :application/json
・Content-Length:リクエストボディのバイト長
・User-Agent :edisone
・X-Edisone-Origin-Credential:Webhook設定画面のSignatureの値。各Webhookごとに設定される固有の秘密キーです。
<リクエストボディ>
下記は、予約申請が行われた際に送信されるWebhookのデータ例です。
サンプル(reserve.receive)
{ "object": "event", "type": "reserve.receive", "created": "1442212986", "reserve": { "reservation_id": "7203490-1008067", "start": "2016-05-11 11:00", "end": "2016-05-11 11:30", "menu": "u30abu30c3u30c8", "table": null, "person": null, "staff": "u4f50u85e4", "status": "u672au627fu8a8d", }, "customer": { "last_name": "u30a8u30b8u30bdu30f3", "first_name": "u592au90ce", "kana": "u30a8u30b8u30bdu30f3", "email": "[email protected]", }, }
<HTTPレスポンス>
Webhookは、受信側が応答したステータスコードにより以下の通り動作します。
【 コード = 動作 】
・200:リクエストは正常に処理されたとして終了します。
・4XX:リクエストの再送は行いません。エラー終了します。※2016/6/1現在
・5XX:リクエストの再送は行いません。エラー終了します。※2016/6/1現在