Komunikacja klienta z serwerem odbywa się za pomocą REST API. Jest to prosty i szybki sposób połączenia się i uzyskania żądanych informacji.
Integracja sprowadza się do wywołania poniższego requestu:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://pobierzqr.pl/api/create',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode(array(
'token' => '******',
'format' => 'png',
'size' => '500',
'color' => '000000',
'bgcolor' => 'ffffff',
'style' => 'square',
'margin' => '1',
'data' => array() // zawartość 'data' opisana poniżej
)),
CURLOPT_HTTPHEADER => array(
'Accept: application/json'
)
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
W zależności od potrzeb, należy zastosować jeden z poniższych kodów odpowiedzialnych za zawartość kodu QR jako wartość 'data'.
By QR kod wyświetlił dowolną informację tekstową:
'data' => array(
'type' => 'text',
'content' => '41E78D20-9A78-4640-AA30-1A3CC3FC0474'
)
By QR kod wyświetlił adres URL:
'data' => array(
'type' => 'url',
'address' => 'https://pobierzqr.pl'
)
By QR kod wywołał połączenie telefoniczne:
'data' => array(
'type' => 'phone',
'number' => '+486086729373'
)
By QR kod wywołał wysyłkę wiadomości e-mail:
'data' => array(
'type' => 'email',
'address' => 'info@pobierzqr.pl',
'subject' => 'Zapytanie o fakturę VAT',
'body' => 'Dzień dobry. Czy po zakupie usługi od razu otrzymam fakturę VAT?'
)
By QR kod wywołał wysyłkę wiadomości SMS:
'data' => array(
'type' => 'sms',
'phone' => '+486086729373',
'body' => 'Tak, proszę o wysłanie oferty na usługi internetowe.'
)
By QR kod wywołał połączenie z siecią Wi-Fi:
'data' => array(
'type' => 'wifi',
'network' => 'WPA',
'ssid' => '4270465F-61EC',
'password' => 'B637E666'
)
By QR kod wywołał mapę z lokalizacją:
'data' => array(
'type' => 'geo',
'latitude' => '53.131195',
'longitude' => '23.164405'
)
By QR kod wywołał utworzenie wizytówki kontaktowej:
'data' => array(
'type' => 'vcard',
'contact' => array(
'name' => 'Rafał',
'surname' => 'Kwaśniak'
),
'organization' => 'Red Paprika',
'title' => 'Programista',
'phone' => '+486086729373',
'email' => 'info@pobierzqr.pl',
'address' => array(
'zipcode' => '42-582',
'city' => 'Rogoźnik',
'address' => 'Okrzei 73',
'voivodeship' => 'Śląskie',
'country' => 'Polska'
),
'geo' => array(
'latitude' => '50.382805',
'longitude' => '19.041888'
),
'birthday' => '2000-01-01',
'url' => 'https://pobierzqr.pl',
'note' => 'System generowania kodów QR'
)
By QR kod wywołał utworzenie wydarzenia w aplikacji kalendarzowej:
'data' => array(
'type' => 'vcalendar',
'uid' => 'A37C2FBA-7532-45F1-9892-B395114AD9ED',
'summary' => 'Spotkanie z Klientem',
'location' => 'Warszawa, ul. Jagiellońska 12',
'description' => 'Prezentacja projektu funkcjonalnego.',
'dtstart' => '2025-05-30 12:00',
'dtend' => '2025-05-30 14:00'
)
W odpowiedzi zwracane są dane w formacie JSON:
{
"error": false,
"message": "",
"available": 490,
"base64": "iVBORw0KGgoAAA...uQmCC"
}
Po otrzymaniu danych możliwe jest bezpośrednie wyświetlenie grafiki używając jednego z kodów poniżej, odpowiedniego dla grafiki PNG lub SVG:
<img src="data:image/png;base64,[base64]">
<img src="data:image/svg+xml;base64,[base64]">
By zachować otrzymaną grafikę kodu QR na serwerze, można zastosować jeden z dwóch zapisów, w zależności od rodzaju pliku:
<?php
file_put_contents('qr.png', base64_decode([base64]));
file_put_contents('qr.svg', base64_decode([base64]));
?>
token
Parametr uzyskany po rejestracji.
format
Format wygenerowanego pliku jako źródło PNG lub SVG.
size
Wielkość wygenerowanej grafiki w przedziale od 100 do 1000 pikseli.
color
Wartość parametru HEX dla koloru kodu (domyślnie czarny).
bgcolor
Wartość parametru HEX dla koloru tła (domyślnie białe).
style
Jeden z dwóch dostępnych styli: square oraz round (domyślnie square).
margin
Szerokość marginesu wokół kodu z przedziału od 0 do 10 linii.
data
Odpowiedni dla rodzaju kodu zestaw dedykowanych informacji. Wysłać należy jeden z dostępnego zestawu danych.