GusApi icon indicating copy to clipboard operation
GusApi copied to clipboard

jaką wartość ma obecny klucz testowy API w GUS-REGON

Open chilek opened this issue 7 years ago • 17 comments

Janusz,

planuję zintegrować GUS-REGON z LMS/LMS+ (http://lms.org.pl / http://github.com/lmsgit/lms) w oparciu o zaprojektowaną przez Ciebie bibliotekę. Próbowałem wykonać testy na podanym przez GUS kluczu testowym API - zwraca błąd "bad user key". Pewnie zmienił się ten klucz - czy wiesz jaka jest obecna, prawidłowa wartość tego klucza?

Pozdrawiam, Tomasz Chiliński

chilek avatar Feb 16 '18 21:02 chilek

Być może problem wynika, ze źle ustawionych adresów endpoint - używasz adresów produkcyjnych a klucza testowego.

Prawidłowe ustawienia dla klucza testowego:

$key = 'abcde12345abcde12345';
$gus = new GusApi(
    $key,
    new \GusApi\Adapter\Soap\SoapAdapter(
        RegonConstantsInterface::BASE_WSDL_URL_TEST,
        RegonConstantsInterface::BASE_WSDL_ADDRESS_TEST
    )
);

Dla produkcji odpowiednio:

RegonConstantsInterface::BASE_WSDL_URL,
RegonConstantsInterface::BASE_WSDL_ADDRESS

johnzuk avatar Feb 16 '18 21:02 johnzuk

@johnzuk tak - to było to. Nie zauważyłem w komentarzu podpowiedzi. Wielkie dzięki. Chętnie ze względów patriotycznych wesprę Twój projekt. W jaki sposób mogę to zrobić?

chilek avatar Feb 16 '18 21:02 chilek

Hej, chyba najlepszą drogą będzie po prostu jakiś symboliczny donate https://www.paypal.me/johnzuk Z góry wielkie dzięki! ;)

johnzuk avatar Feb 18 '18 10:02 johnzuk

Puściłem donation - dzięki za fajny kawałek kodu.

Przy okazji: zauważyłem, że jak szuka się po REGON to odpowiedź nie zawiera NIP (chyba przy każdym zapytaniu tak jest niestety). GUS-REGON jest w stanie odpowiadać zawierając NIP czy nie bardzo?

chilek avatar Feb 19 '18 10:02 chilek

Niestety api zwraca danie bez NIP-u, trzeba użyć, getFullReport tam w zależności od typu raportu powinien znajdować się NIP

johnzuk avatar Feb 19 '18 10:02 johnzuk

@johnzuk spójrz:

	$regonToCheck = '051985520'; //change to valid regon value
	$sessionId = $gus->login();

	$gusReports = $gus->getByRegon($sessionId, $regonToCheck);

	if (count($gusReports) > 1)
		die;

	$gusReport = $gusReports[0];
	$reportType = $mapper->getReportType($gusReport);

	$fullReport = $gus->getFullReport(
		$sessionId,
		$gusReport,
		$reportType
	);

	print_r($fullReport);

Wynik:

SimpleXMLElement Object
(
    [dane] => SimpleXMLElement Object
        (
            [fiz_regon9] => 051985520
            [fiz_nazwa] => "CHILAN" TOMASZ XXXXXXXX
            [fiz_nazwaSkrocona] => SimpleXMLElement Object
                (
                )

            [fiz_dataPowstania] => 2001-02-22
            [fiz_dataRozpoczeciaDzialalnosci] => 2001-02-22
            [fiz_dataWpisuDoREGONDzialalnosci] => SimpleXMLElement Object
                (
                )

            [fiz_dataZawieszeniaDzialalnosci] => SimpleXMLElement Object
                (
                )

            [fiz_dataWznowieniaDzialalnosci] => SimpleXMLElement Object
                (
                )

            [fiz_dataZaistnieniaZmianyDzialalnosci] => 2009-09-21
            [fiz_dataZakonczeniaDzialalnosci] => SimpleXMLElement Object
                (
                )

            [fiz_dataSkresleniazRegonDzialalnosci] => SimpleXMLElement Object
                (
                )

            [fiz_adSiedzKraj_Symbol] => SimpleXMLElement Object
                (
                )

            [fiz_adSiedzWojewodztwo_Symbol] => 20
            [fiz_adSiedzPowiat_Symbol] => 61
            [fiz_adSiedzGmina_Symbol] => 011
            [fiz_adSiedzKodPocztowy] => 15866
            [fiz_adSiedzMiejscowoscPoczty_Symbol] => 0922410
            [fiz_adSiedzMiejscowosc_Symbol] => 0922410
            [fiz_adSiedzUlica_Symbol] => 10013
            [fiz_adSiedzNumerNieruchomosci] => 7
            [fiz_adSiedzNumerLokalu] => 13
            [fiz_adSiedzNietypoweMiejsceLokalizacji] => SimpleXMLElement Object
                (
                )

            [fiz_numerTelefonu] => SimpleXMLElement Object
                (
                )

            [fiz_numerWewnetrznyTelefonu] => SimpleXMLElement Object
                (
                )

            [fiz_numerFaksu] => SimpleXMLElement Object
                (
                )

            [fiz_adresEmail] => SimpleXMLElement Object
                (
                )

            [fiz_adresStronyinternetowej] => SimpleXMLElement Object
                (
                )

            [fiz_adresEmail2] => SimpleXMLElement Object
                (
                )

            [fiz_adSiedzKraj_Nazwa] => SimpleXMLElement Object
                (
                )

            [fiz_adSiedzWojewodztwo_Nazwa] => PODLASKIE
            [fiz_adSiedzPowiat_Nazwa] => m. Białystok
            [fiz_adSiedzGmina_Nazwa] => M. Białystok
            [fiz_adSiedzMiejscowosc_Nazwa] => Białystok
            [fiz_adSiedzMiejscowoscPoczty_Nazwa] => Białystok
            [fiz_adSiedzUlica_Nazwa] => ul. Test-Krucza
            [fizC_dataWpisuDoRejestruEwidencji] => 2001-02-22
            [fizC_numerwRejestrzeEwidencji] => 57823          
            [fizC_OrganRejestrowy_Symbol] => 012206101
            [fizC_OrganRejestrowy_Nazwa] => PREZYDENT MIASTA BIAŁYSTOK
            [fizC_RodzajRejestru_Symbol] => 026
            [fizC_RodzajRejestru_Nazwa] => EWIDENCJA DZIAŁALNOŚCI GOSPODARCZEJ
            [fizC_numerTelefonu] => SimpleXMLElement Object
                (
                )

            [fizC_numerWewnetrznyTelefonu] => SimpleXMLElement Object
                (
                )

            [fizC_numerFaksu] => SimpleXMLElement Object
                (
                )

            [fizC_adresEmail] => SimpleXMLElement Object
                (
                )

            [fizC_adresStronyInternetowej] => SimpleXMLElement Object
                (
                )

        )

)

więc chyba nie zwraca NIP :(

chilek avatar Feb 19 '18 11:02 chilek

Dla osób prawnych zwraca jako praw_nip, a dla fizycznych niestety chyba nie :(

chilek avatar Feb 19 '18 11:02 chilek

Nie chce mi się wierzyć, że niemożliwe jest odczytanie NIP dla osoby fizycznej prowadzącej działalność gospodarczą. Może nie takie zapytanie powinien wystosować w przypadku osoby fizycznej (F)?

chilek avatar Feb 19 '18 17:02 chilek

@johnzuk zgodnie z dokumentacją w przypadku osoby fizycznej (F) można zapytać przez PublDaneRaportFizycznaOsoba (wtedy mamy NIP) i przez PublDaneRaportDzialalnoscFizycznejCeidg (wtedy nie mamy NIP). Czy biblioteka pozwala rozróżnić typ zapytania dla fizycznej?

chilek avatar Feb 19 '18 17:02 chilek

Niestety pola zwracane zależą od wybranego typu raportu, tutaj plik z dokumentacji który zawiera nazwę raportu wraz z przykładowymi zwrotkami: PrzykladoweDaneZwracanePrzezBIR1.txt Typy raportów zmapowane są tutaj: https://github.com/johnzuk/GusApi/blob/master/src/GusApi/ReportTypes.php

johnzuk avatar Feb 19 '18 17:02 johnzuk

No właśnie: w jaki sposób zapytać o REPORT_ACTIVITY_PHYSIC_PERSON gdy mam już ogólny raport z (F)?

chilek avatar Feb 19 '18 17:02 chilek

Hej wystarczy zmienić typ raportu tutaj:

var_dump($gus->getFullReport(
                        $_SESSION['sid'],
                        $gusReport,
                        \GusApi\ReportTypes::REPORT_ACTIVITY_PHYSIC_PERSON
                    ));

johnzuk avatar Feb 19 '18 17:02 johnzuk

To jest to - wtedy mamy NIP:

SimpleXMLElement Object
(
    [dane] => SimpleXMLElement Object
        (
            [fiz_regon9] => 051985520
            [fiz_nip] => 5422456771
            [fiz_nazwisko] => CHILIŃSKI
            [fiz_imie1] => TOMASZ
            [fiz_imie2] => SimpleXMLElement Object
                (
                )

            [fiz_dataZaistnieniaZmiany] => 11-04-2017
            [fiz_podstawowaFormaPrawna_Symbol] => 9
            [fiz_szczegolnaFormaPrawna_Symbol] => 099
            [fiz_formaFinansowania_Symbol] => 1
            [fiz_formaWlasnosci_Symbol] => 214
            [fiz_podstawowaFormaPrawna_Nazwa] => OSOBA FIZYCZNA PROWADZĄCA DZIAŁALNOŚĆ GOSPODARCZĄ
            [fiz_szczegolnaFormaPrawna_Nazwa] => OSOBY FIZYCZNE PROWADZĄCE DZIAŁALNOŚĆ GOSPODARCZĄ
            [fiz_formaFinansowania_Nazwa] => JEDNOSTKA SAMOFINANSUJĄCA NIE BĘDĄCA JEDNOSTKĄ BUDŻETOWĄ LUB SAMORZĄDOWYM ZAKŁADEM BUDŻETOWYM
            [fiz_formaWlasnosci_Nazwa] => WŁASNOŚĆ KRAJOWYCH OSÓB FIZYCZNYCH
            [fiz_dzialalnosciCeidg] => 1
            [fiz_dzialalnosciRolniczych] => 0
            [fiz_dzialalnosciPozostalych] => 0
            [fiz_dzialalnosciZKrupgn] => 0
            [fiz_jednostekLokalnych] => 0
        )

)

chilek avatar Feb 19 '18 17:02 chilek

W wierszach https://github.com/johnzuk/GusApi/blob/master/src/GusApi/ReportTypeMapper.php#L45-L50 mamy dozwolone mapowania (F) na typy raportów.

Dobrze rozumiem, że w zwrotce ogólnej jest sugerowany typ kontenera danych zawierający więcej informacji i ten domyślnie sugerowany dla (F) nie ma NIP?

chilek avatar Feb 19 '18 17:02 chilek

Dorzuciłem coś takiego: https://github.com/lmsgit/lms/blob/master/modules/gusapi.php#L168-L174 czyli:

  1. Najpierw wydaję zapytanie ogólne.
  2. Potem wydaję zapytanie szczegółowe zgodnie z zaleceniem wynikającym z typu kontenera o który mogę odpytać.
  3. Następnie zapytuję z \GusApi\ReportTypes::REPORT_ACTIVITY_PHYSIC_PERSON i tam mam NIP.

chilek avatar Feb 19 '18 17:02 chilek

Mapper działa w oparciu o dokumentację: PowiazanieRaportTyppodmiotuSilos.docx i próbuję dobrać odpowiedni raport na podstawie wartości pól silosID oraz typ.

Opisany przez Ciebie sposób wydaje się być ok

johnzuk avatar Feb 19 '18 17:02 johnzuk

@johnzuk dzięki za wsparcie!

chilek avatar Feb 19 '18 18:02 chilek