Payloady
Každý payload pozná presný formát obsahu, ktorý čítajú telefóny a aplikácie, overuje vstup v konštruktore a má predvolenú citlivosť:
use RoundlyConsulting\Qr\Enums\{SmsFormat, WifiSecurity};
use RoundlyConsulting\Qr\Payloads\{Geo, Otpauth, VCard};
Qr::text('Any text');
Qr::url('https://example.com'); // http/https only by default
Qr::url('mailto:[email protected]', ['mailto']); // opt in to other schemes
Qr::email('[email protected]', 'Hello', 'Body text'); // mailto:
Qr::phone('+421 900 123 456'); // tel:+421900123456
Qr::sms('+421900123456', 'See you at 10', SmsFormat::Smsto);
Qr::wifi('Clinic Guest', 'guest-password', WifiSecurity::Wpa, hidden: false); // WPA (passphrase 8–63 bytes), WEP, SAE (WPA3), None
Qr::vcard(new VCard(
name: 'MVDr. Jana Nováková', // display name (FN)
familyName: 'Nováková', // structured name (N) — how phones file the contact
givenName: 'Jana',
honorificPrefixes: 'MVDr.',
organization: 'VetClinic s.r.o.',
title: 'Veterinarian',
phones: ['+421 900 123 456'],
emails: ['[email protected]'],
url: 'https://example.sk',
address: 'Hlavná 1, Košice',
note: 'Mon–Fri',
));
Qr::geo(48.1486, 17.1077); // geo:48.1486,17.1077Katalóg
| Vstupný bod | Zakóduje sa ako | Citlivosť |
|---|---|---|
Qr::text() | Text tak, ako je (prázdny text je platný symbol). | Public; Secret, ak začína na otpauth:, otpauth-migration: alebo WIFI: |
Qr::url() | URL tak, ako je; http/https, pokiaľ nepovolíte ďalšie schémy. | Public; Secret pre povolenú URL otpauth:, otpauth-migration: alebo WIFI: (pri otpauth uzamknuté) |
Qr::email() | mailto:to?subject=…&body=… (RFC 6068) | Personal |
Qr::phone() | tel:+421… (RFC 3966) | Personal |
Qr::sms() | SMSTO:+421…:msg alebo sms:+421…?body=msg (RFC 5724) | Personal |
Qr::wifi() | WIFI:T:WPA;S:ssid;P:pw;H:true;; | Secret (dá sa znížiť) |
Qr::vcard() | vCard 3.0 (zobrazované a štruktúrované meno, organizácia, funkcia, telefóny, e-maily, URL, adresa, poznámka) | Personal |
Qr::geo() | geo:48.1486,17.1077 (RFC 5870) | Personal |
Qr::otpauth() | URI otpauth:// bez zmeny | Secret (uzamknuté) |
Qr::epc() | SEPA úhrada podľa EPC069-12 v3.1 | Personal |
Qr::payBySquare() | Reťazec PAY by square v base32hex | Personal |
Validácia
- Url — najviac 4096 bajtov, bez riadiacich znakov a medzier, schéma na zozname povolených, pri http(s) povinný hostiteľ; ne-ASCII cesty aj hostitelia sú povolené.
- Email — platná adresa (aj s Unicode); predmet a telo sa percentuálne zakódujú.
- Phone / Sms — oddeľovače (medzera, NBSP, -, ., (, ), /) sa odstránia, potom nasleduje voliteľné + a 3–20 číslic.
- Wifi — SSID 1–32 bajtov; heslo je povinné okrem WifiSecurity::None (kde je zakázané); heslo WPA má 8–63 bajtov (nie znakov).
- VCard — meno 1–255 znakov; e-maily a telefóny sa overujú ako vyššie.
- Geo — konečné súradnice, zemepisná šírka ±90, dĺžka ±180, vo výstupe najviac 7 desatinných miest.
Neplatný vstup vyhodí InvalidPayloadException s $payloadType, $field a kľúčom $reason — správa nikdy neobsahuje samotnú hodnotu.
Mená vo vCard
Pole name vo vCard je zobrazované meno (FN). Zadajte aj jeho časti — familyName, givenName, additionalNames, honorificPrefixes, honorificSuffixes —, aby kontaktové aplikácie zaradili vizitku pod správne meno (N:Nováková;Jana;;MVDr.;). Ak zadáte len name, balík meno nikdy nerozdeľuje odhadom: celé meno sa stane krstným menom (N:;Jana Nováková;;;), ktoré aplikácie zobrazia bez zmeny a zaradia podľa jeho prvého písmena.
Objekty payloadov
Skratky fasády obaľujú triedy payloadov v RoundlyConsulting\Qr\Payloads. Môžete ich vytvoriť priamo a odovzdať do make(), svg() alebo matrix() — Wifi::withHexKey() je dostupné len takto:
use RoundlyConsulting\Qr\Payloads\{Url, Wifi};
// Every payload class can also be built directly and passed to make()/svg()/matrix():
Qr::make(new Wifi('Guest', 'guest-password'));
Qr::make(Wifi::withHexKey('Clinic', $psk)); // raw hex key: 64-digit WPA PSK or 10/26/58-digit WEP key, unquoted
Qr::svg(new Url('https://example.com'));Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.