JUNIK Booking V2.4 — GUS REGON + wspólny UniOne API key ======================================================= WAŻNE - V2.4 NIE wymaga migracji bazy danych. - Nie nadpisuj swojego config/config.php plikiem config.example.php. - Klucze API pozostają wyłącznie w prywatnym config/config.php na serwerze. WDROŻENIE 1. Zrób kopię aktualnego katalogu junik-booking-staging. 2. Rozpakuj junik-booking-v2.4.zip. 3. Nadpisz pliki aplikacji na stagingu. 4. Zachowaj istniejący config/config.php. 5. Do istniejącego config/config.php dodaj blok `gus` opisany niżej. 6. Upewnij się, że jeden wspólny klucz UniOne znajduje się w `mail.unione_api_key`, a trzy marki mają `transport => unione`. 7. Otwórz formularz rezerwacji, zaznacz fakturę VAT, wpisz poprawny NIP i kliknij „Pobierz dane z GUS”. 8. Wykonaj ten sam test w Panel -> + Nowa rezerwacja. KONFIGURACJA GUS Do głównej tablicy w config/config.php dodaj: 'gus' => [ 'enabled' => true, 'environment' => 'production', 'api_key' => 'TU_WSTAW_PRODUKCYJNY_KLUCZ_GUS', 'production_endpoint' => 'https://wyszukiwarkaregon.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc', 'test_endpoint' => 'https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc', 'timeout_seconds' => 12, 'cache_hours' => 24, 'public_rate_limit_per_10_minutes' => 20, ], KONFIGURACJA UNIONE W `mail` trzymaj jeden klucz globalny: 'unione_api_key' => 'TU_WSTAW_WSPOLNY_UNIONE_API_KEY', A w `mail.brands.pixelplay`, `mail.brands.quizy` i `mail.brands.junik` ustaw: 'transport' => 'unione', Nie trzeba powtarzać API keya w każdej marce. JAK DZIAŁA GUS Przeglądarka wysyła do JUNIK Booking wyłącznie NIP. Backend PHP loguje się do BIR, wyszukuje podmiot i zwraca do formularza publiczne dane firmy. Klucz GUS nigdy nie trafia do HTML ani JavaScriptu. ODPORNOŚĆ - błędny NIP jest odrzucany przed zapytaniem do GUS, - jeżeli GUS nie odpowiada, klient może uzupełnić dane ręcznie, - wynik jest cache'owany, domyślnie przez 24 godziny, - publiczny endpoint ma limit zapytań per IP, - aplikacja nie zapisuje klucza GUS w logach. TESTY PO WDROŻENIU - poprawny NIP: dane uzupełniają się, - błędna suma kontrolna NIP: brak wywołania GUS i czytelny komunikat, - ręczna zmiana pobranych danych nadal jest możliwa, - rezerwacja z fakturą zapisuje pobrane dane tak samo jak wcześniej, - rezerwacja bez faktury działa bez zmian, - ręczna rezerwacja admin/staff ma ten sam przycisk GUS.