[ "registered" => true, "shortMessage" => "Czynny", ], 'N' => [ "registered" => false, "shortMessage" => "Niezarejestrowany", ], 'Z' => [ "registered" => true, "shortMessage" => "Zwolniony" ], 'I' => [ "registered" => false, "shortMessage" => "Niepoprawny NIP" ], ]; if (is_array($vatResult)) $vatResult = (object) $vatResult; if ((!is_object($vatResult)) || (!isset($results[$vatResult->Kod]))) { $result = [ 'registered' => null, 'shortMessage' => 'Nieznany rezultat', 'message' => 'Nieznany rezultat', ]; } else { $result = [ 'registered' => $results[$vatResult->Kod]['registered'], 'shortMessage' => $results[$vatResult->Kod]['shortMessage'], 'message' => $vatResult->Komunikat, ]; } return (object) $result; } private static function validateNIP(&$nip) { $prefix = substr($nip, 0, 2); if (!is_numeric($prefix)) $nip = substr($nip, 2); else $prefix = null; if ($prefix && $prefix != "PL") return false; if (strlen($nip) != 10 || (!is_numeric($nip))) return false; $control = (($nip[0] * 6 + $nip[1] * 5 + $nip[2] * 7 + $nip[3] * 2 + $nip[4] * 3 + $nip[5] * 4 + $nip[6] * 5 + $nip[7] * 6 + $nip[8] * 7) % 11 ) % 10; return ($control == $nip[9]); } public function getVATStatus($nip) { if (!self::validateNIP($nip)) return self::respond(['Kod' => 'I', 'Komunikat' => 'Niepoprawny NIP']); try { $result = $this->soap->SprawdzNIP($nip); } catch (Exception $e) { return self::respond(); } return self::respond($result); } function __construct() { $this->soap = new SoapClient("https://sprawdz-status-vat.mf.gov.pl/?wsdl"); } function __destruct() { unset($this->soap); } }