Integracja API

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]));
?>