# Norēķināšanās loga atvēršana

> Metode book() atver viena pasākuma norēķināšanās logu un pieņem katra izsaukuma ignorēšanas iestatījumus, kā arī klienta kontekstu, ko varat pārsūtīt uz savām sistēmām.

`book()` ir metode, kas atver norēķināšanās logu. Viss pārējais klientā to konfigurē vai uzrauga.

```js
entase.book(eventID);
entase.book(eventID, options);
```

`eventID` ir pārdodamā plānotā pasākuma identifikators. Tas ir tas pats ID, kas izmantots jūsu pasākuma kopīgošanas un iegulšanas kodos.

Izsaukums tiek atgriezts nekavējoties – tas atver paneli vai logu un negaida, līdz apmeklētājs pabeigs darbību. Izmantojiet [notikumus](/developers/js-client/events.md), lai reaģētu uz turpmāko.

## Opcijas

| Nosaukums | Tips | Noklusējums | Apraksts |
|---|---|---|---|
| `checkoutMode` | string | instances vērtība | `'pane'` vai `'popup'` tikai šai rezervācijai. |
| `clientContext` | object | `null` | Patvaļīgi dati, kas tiek nodoti norēķināšanās logam, tiklīdz tas ir gatavs. Skatiet tālāk. |
| `collectConsent` | boolean | instances vērtība | Vai lūgt apmeklētājam pieņemt noteikumu paziņojumu. |
| `backdrop` | boolean | instances vērtība | Vai aptumšot lapu aiz norēķināšanās loga. |
| `backdropColor` | string | instances vērtība | Aptumšotās zonas krāsa. |
| `pane` | object | instances vērtība | `{ width, height }` iekļautajam panelim. |
| `popup` | object | instances vērtība | `{ width, height }` uznirstošajam logam. |

Viss, ko nenorādāt, tiek aizstāts ar vērtību, ar kuru instance tika izveidota, tāpēc katra izsaukuma opcijas papildina iestatījumus, nevis tos pilnībā aizstāj.

```js
entase.book('EVENT_ID', {
  pane: { width: '60vw' },
  backdrop: false,
  clientContext: { source: 'homepage-hero' }
});
```

## Klienta konteksts

`clientContext` ir jūsu pašu definēts objekts. Klients to glabā, līdz norēķināšanās logs signalizē, ka ir gatavs, un pēc tam to nodod tālāk. Izmantojiet to, lai uz norēķināšanās sesiju pārsūtītu informāciju, ko zina tikai jūsu lapa – kura poga tika noklikšķināta, no kuras kampaņas apmeklētājs ieradās, iekšēja klienta atsauce.

Konteksts tiek glabāts katram pasākuma ID atsevišķi, tāpēc, rezervējot divus dažādus pasākumus no vienas lapas, to konteksti paliek nošķirti.

Neievietojiet tajā sensitīvu informāciju. Tā tiek pārsūtīta uz norēķināšanās logu caur pārlūkprogrammu un ir redzama ikvienam, kas pārbauda lapu.

## Vairāku pasākumu atvēršana no vienas lapas

Viena instance apstrādā jebkādu pasākumu skaitu. Izveidojiet to vienreiz un katru reizi nododiet citu ID:

```js
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });

document.querySelectorAll('[data-event-id]').forEach(button => {
  button.addEventListener('click', () => {
    entase.book(button.dataset.eventId, {
      clientContext: { source: button.dataset.source }
    });
  });
});
```

## Pēc klienta instances iznīcināšanas

Izsaucot `book()` instancei, kuru jau esat iznīcinājis, konsolē tiek reģistrēta kļūda un nekas netiek atvērts. Tas ir apzināti – iznīcināta instance vairs neklausās ziņojumus no norēķināšanās loga, tāpēc tās atvērto logu nebūtu iespējams aizvērt vai uzraudzīt. Tā vietā izveidojiet jaunu instanci.

## Norēķināšanās loga aizvēršana

Apmeklētājs norēķināšanās logu aizver pats: nospiežot Escape vai noklikšķinot uz aptumšotās zonas paneļa režīmā, vai izmantojot loga vadīklas uznirstošā loga režīmā. Norēķināšanās logs arī aizveras pats, kad rezervācija ir pabeigta.

Nav publiskas metodes, lai to aizvērtu no sava koda. Ja jums jāzina, kad tas tika aizvērts, klausieties `checkout.closed` notikumu.
