# Підключення за допомогою Postman

Перед початком підключення рекомендуємо ознайомитись з:

* [Документацією Postman](https://learning.postman.com/labs/postman-api-client/websocket-client/websocket-client-overview/) щодо використання WebSocket.

Для підключення через WebSocket використовується адреса:

```http
wss://api.shaketopay.com.ua/restaurantEntryPoint
```

***

## Авторизація

Передати у header параметр `Authorization` згенерований наступним чином:

"`Basic X`" - у якому `Х` це [`RESTO_ID:SECRET_KEY`](https://docs.expirenza.com/api/integration/prepare) закодоване у base64.

<figure><img src="https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2FzFMZiUsY94lZtQJlGLo1%2F1.png?alt=media&#x26;token=57c69193-6353-499b-b234-9e626cb0f5ab" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
При вдалому підключенні має відобразитись 2 повідомлення у консоль Postman.
{% endhint %}

***

## Приклад запиту - отримання столів

> Перед обробкою запиту переконайтесь,що в Postman встановлено з'єднання по WebSocket.

Зайдіть в [Expirenza admin-panel](https://admin.expirenza.com) у вкладку "Столи та QR-коди "

Консоль Postman має відобразити наступне:

```json
{
    "rID": "2022-11-18 13:18:51.694125371#Lm4R2EQ",
    "operation": "tablesInfo"
}
```

**У окремій вкладці** Postman необхідно викликати [/callback/tablesInfo](https://docs.expirenza.com/api/messages/tableinfo) упродовж 80 секунд.

На момент виклику [/callback/tablesInfo ](https://docs.expirenza.com/api/messages/tableinfo)для форматування заголовку `signature` необхідно використати **Pre-request Script.**

<details>

<summary>Pre-request Script:/callback/tablesInfo</summary>

{% code title="JavaScript" lineNumbers="true" %}

```javascript
var key = "SECRET_KEY";
var body = request.data;
console.log("body ==>" + body);
var hash = CryptoJS.HmacSHA256(body, key);
console.log("hash: " + hash);
var result = hash.toString(CryptoJS.enc.Base64);
console.log("sign result: " + result);
pm.environment.set("signature", result);
```

{% endcode %}

</details>

<figure><img src="https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2FicOsfrRlevLXF2KRSOnQ%2F2.png?alt=media&#x26;token=b0ed3ac6-ace0-4ed6-bbf4-9f646a547bc7" alt=""><figcaption><p>Pre-request Script</p></figcaption></figure>

У Body внести:

{% code title="JSON" lineNumbers="true" %}

```json
{
    "rID": "2022-11-18 13:20:58.329551967#IRuFbD3",
    "tables": [
        {
            "id": "xxx",
            "name": "у камина",
            "number": 12,
            "hallplanId": "Зала 1",
        }
    ]
}
```

{% endcode %}

`rID` - отримати з останнього повідомлення з типом надійшовшого `rID` [**у першій вкладці** Postman.](#avtorizaciya)

<figure><img src="https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2FVXxHpGXA737SESehp0BB%2F3.png?alt=media&#x26;token=9e9b2ab7-3fd1-400b-8383-028265303990" alt=""><figcaption></figcaption></figure>

Додати 2 заголовки у Headers:

* `restoId` - що є [RESTO\_ID](https://docs.expirenza.com/api/integration/prepare).
* `signature` - що сформований у [Pre-request Script](#pre-request-script-callback-tablesinfo).

<figure><img src="https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2FwOpU5DTQXMd0eEtkbqSX%2F4.png?alt=media&#x26;token=a1374aa2-6f3e-4448-9e86-f98215e41f07" alt=""><figcaption><p>Headers</p></figcaption></figure>

***

## Завершення підключення за допомогою Postman

Якщо усі кроки були виконані коректно - в [Expirenza admin-panel](https://admin.expirenza.com) мають з'явитись столи зі сформованого раніше у Postman запиту.

<figure><img src="https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2Fcb5ulokaL8tsomUqwEM9%2F5.png?alt=media&#x26;token=60c097f7-05de-4cd9-8707-cc3381bdc868" alt=""><figcaption><p>Успішно передані столи</p></figcaption></figure>

***
