A Számla Agent minden kérésnél hitelesít, ami időbe kerül. Ha viszont a kliens visszaküldi az előző válaszban kapott munkameneti sütit (JSESSIONID), a Számlázz.hu a meglévő munkamenetet használja, és gyorsabban válaszol. A süti tárolása a hívó fél dolga. A kasszában ez automatikus.
Node.js szerveren, Bunon vagy Denón nincs teendőd. Az alapértelmezett tároló a memóriában van, és addig él, amíg a folyamat. Ehhez a klienst egyszer hozd létre, és mindenhol ugyanazt használd:
lib/kassza.ts
import { createKassza } from 'kassza'export const kassza = createKassza()
Vercel Functions, AWS Lambda vagy Cloudflare Workers alatt a példányok jönnek-mennek, a memória nem közös. Ilyenkor adj meg közös tárolót a kassza/cookie-stores modulból:
import { Redis } from '@upstash/redis'import { createKassza } from 'kassza'import { upstashRedisCookieStore } from 'kassza/cookie-stores'export const kassza = createKassza({ cookieStore: upstashRedisCookieStore(Redis.fromEnv()),})
content-type: text/plain; charset=UTF-8szlahu_error: Hi%C3%A1nyz%C3%B3%20adat%3A%20ismeretlen%20sz%C3%A1mlasz%C3%A1m%2C%20rendel%C3%A9ssz%C3%A1m%20vagy%20k%C3%BCls%C5%91%20azonos%C3%ADt%C3%B3.szlahu_error_code: 7set-cookie: JSESSIONID=EAE3690A13F0359C1D7A2E50; Path=/szamla; Secure; HttpOnly[ERR] [7] Hiányzó adat: ismeretlen számlaszám, rendelésszám vagy külső azonosító.
2. Számla adatai · válasz, HTTP 200
content-type: text/plain; charset=UTF-8szlahu_error: Hi%C3%A1nyz%C3%B3%20adat%3A%20ismeretlen%20sz%C3%A1mlasz%C3%A1m%2C%20rendel%C3%A9ssz%C3%A1m%20vagy%20k%C3%BCls%C5%91%20azonos%C3%ADt%C3%B3.szlahu_error_code: 7[ERR] [7] Hiányzó adat: ismeretlen számlaszám, rendelésszám vagy külső azonosító.
A munkamenet csak gyorsítás, ezért a tároló hibája nem akaszthatja meg a számlázást. Ha a Redis vagy a KV nem válaszol, a kassza munkamenet nélkül küldi el a kérést. Az adapterek alapból figyelmeztetést írnak a konzolra, ezt az onError opcióval a saját naplódba irányíthatod:
Opció
Alapérték
Leírás
prefix
–
Előtag minden tárolókulcs elé.
timeoutMs
nincs
Ennyi idő után a tároló műveletét sikertelennek veszi.
onError
console.warn
Hívódik, ha a tároló hibát dob vagy túllépi az időkorlátot.
Ha a Számlázz.hu felületén módosítod a fiók adatait, például a cégnevet vagy az e-mail címet, a változás csak új munkamenetben érvényesül. Ilyenkor hívd meg a resetSession() metódust:
await kassza.resetSession()
Ha egyáltalán nem szeretnél munkamenetet, add meg a cookieStore: false opciót. Ekkor minden kérés teljes hitelesítéssel fut, ami nagy forgalomnál érezhetően lassabb.