» »

UPN QR

UPN QR

1
2
»

Utk ::

Mah, če imaš to za nakazovanje sam sebi ali svojim poznanim, ne bo nihče nič reku. Če bi imel s.p. pa ven pošiljal čudne položnice, bi se pa lahko kdo oglasil. Če ni tožnika, ni sodnika, sam sebe pa ne boš tožil.

Ryanair ::

Utk je izjavil:

Mah, če imaš to za nakazovanje sam sebi ali svojim poznanim, ne bo nihče nič reku. Če bi imel s.p. pa ven pošiljal čudne položnice, bi se pa lahko kdo oglasil. Če ni tožnika, ni sodnika, sam sebe pa ne boš tožil.

Res je! :))
Hvala.

lopow ::

vuego je izjavil:

Uporabi https://sourceforge.net/projects/zint/

Ali uporabiš c izvorno kodo ali pa kar kličeš direkt exe:
zint.exe -b 143 --border=5 --scale=3 --binary -i ./UPNQR.txt -o UPNQR.png

Vhodna datoteka je UPNQR.txt
Mora biti enkodirana v ISO 8859-2


Kako pa približno zgleda txt file.
Jaz programiram v pythoni in enostavno vpišem string v txt, vendar mi napiše, da je input too long

mm&r ::

Za en svoj hobi projekt sem si pripravil spletno storitev za generiranje UPN QR kode.
Če se še komu zdi uporabno naj sporoči pripombe, da zadevo naredimo uporabno.

Demo verzija

Mare2 ::

mm&r ::

Dela, vendar je namen uporabe drugačen.

Spletna storitev naj bi bila alternativa temu:
https://upn-qr.si/sl/upn-slika-qr

Torej dilema/odločitev je 300 EUR oz. 1800 EUR plačljiva .NET knjižnjica vs. public web servis.

#000000 ::

Ali ALINET varijanta deluje BP, ker rabim zadevo in bi kr plačal brez problema, če narei QR kodo ?

Baja ::

če rabiš za par položnic je nekje en brezplačen programček.

Mare2 ::

#000000 je izjavil:

Ali ALINET varijanta deluje BP, ker rabim zadevo in bi kr plačal brez problema, če narei QR kodo ?


http://www.zbs-giz.si/system/file.asp?F...

prtenjam ::

Matjaž Prtenjak
https://mnet.si

aljaxus ::

Necro-posting ni glih moja stvar, ma bom malo prekrsil to svoje pravilo...

Pred kratkim sem razvil ter deploy-al https://upn-qr.gitapp.si - preprost HTTP api za preprosto generiranje UPN-QR ter integracijo v zunanje aplikacije / sisteme.
Tako da, v primeru da se kdo najde, ki rabi en tak preprost API, eto, tle je link.
In ce bo iz takega ali drugacnega razloga offline v prihodnosti; tle je source code: https://gitplac.si/aljaxus/upn-qr

Se mi zdi malo zabito da bi se za en simple program ki poenostavlja placevanje (ter tudi preprecuje napake v prepisovanju) placevalo, da se niti ne govori o vec-sto EUR licenci za en .exe ki ga niso posodobili od kar so ga prvic objavli.
Bi morala drzava poskrbet za kej tazga ker je, at this point, javno dobro.

So there you have it, pa LP.

matejtu ::

aljaxus to je top!

samo jaz sem malo majn domač tu.

katero knjižnico bi uporabil za PHP?

hvala za pomoč :)

vuego ::

https://github.com/malamalca/Qr-Code

        $qrDelim = chr(10);
        $qrData = [
            'vodilni_slog' => 'UPNQR',
            'iban_placnika' => '',
            'polog' => '',
            'dvig' => '',
            'referenca_placnika' => '',
            'ime_placnika' => mb_substr($document->receiver->title, 0, 33),
            'ulica_placnika' => mb_substr($document->receiver->street, 0, 33),
            'kraj_placnika' => mb_substr($document->receiver->city, 0, 33),
            'znesek' => sprintf('%011d', $document->total * 100),
            'datum_placila' => '',
            'nujno' => '',
            'koda_namena' => $document->pmt_sepa_type,
            'namen_placila' => mb_substr($document->title, 0, 42),
            'rok_placila' => $document->dat_expire->i18nFormat('dd.MM.yyyy'),
            'iban_prejemnika' => $document->issuer->iban,
            'referenca_prejemnika' => mb_substr(
                $document->pmt_type . $document->pmt_module . $document->pmt_ref,
                0,
                22
            ),
            'ime_prejemnika' => mb_substr($document->issuer->title, 0, 33),
            'ulica_prejemnika' => mb_substr($document->issuer->street, 0, 33),
            'kraj_prejemnika' => mb_substr($document->issuer->city, 0, 33),
        ];

        $checksum = 0;
        foreach ($qrData as $field) {
            $checksum += mb_strlen($field . $qrDelim);
        }
        $qrData['kontrolna_vsota'] = sprintf('%03d', $checksum) . $qrDelim;

        // Combine data to single string
        $qrString = implode($qrDelim, $qrData);

        // Convert data to ISO 8859-2 charset
        $qrString = iconv('UTF-8', 'ISO-8859-2', $qrString);

        // Get byte array of all characters
        $qrString = unpack('C*', $qrString);

        $eci = QrSegment::makeEci(4);
        $segs = QrSegment::makeBytes($qrString);

        $finalQr = QrCode::encodeSegments(
            [$eci, $segs],
            new Ecl(Ecl::MEDIUM),
            15, // min qr version
            15, // max qr version
            -1, // mask auto
            false // boost ecc
        );

        $qrPng = new Png($finalQr); // default 512x512

        ob_start();
        $qrPng->output();
        $qrPng = ob_get_clean();

        return $qrPng;

matejtu ::

vuego hvala za pomoč. nekaj delam narobe. in ne dobim ven te qr kode :(... sem naredil to testno datoteko, prilepil tvojo kodo not in popravil vsebino polj... pa ni tega qr-a :D....

kljuka13 ::

@matejtu, kakšno napako ti pa javi? Si namestil (in vključil!) knjižnico Qr-Code? Ti deluje primer kode iz dokumentacije? Najbolje, da poveš, katero napako točno ti javi.

Zgodovina sprememb…

  • spremenil: kljuka13 ()

matejtu ::

No sej to je najbrž problem. sem jo odzipal ja. Vključil pa.. KAKo? :D javi mi pa da ne najde autoload.php datoteke... ki je seveda ni v knjižnici

probal sem tudi primer kode iz dokumentacije in tudi ne deluje.

Zgodovina sprememb…

  • spremenilo: matejtu ()

matejtu ::

Warning: require_once(/home/netko12/public_html/Qr-Code/vendor/autoload.php): failed to open stream: No such file or directory in /home/netko12/public_html/Qr-Code/testqrkode.php on line 5

Fatal error: require_once(): Failed opening required '/home/netko12/public_html/Qr-Code/vendor/autoload.php' (include_path='.:/opt/cpanel/ea-php74/root/usr/share/pear') in /home/netko12/public_html/Qr-Code/testqrkode.php on line 5

vuego ::

Autoload je del composer platforme, ki se zgenerira samodejno. Knjižnice lahko uporabiš tudi klasično z require/include.

kljuka13 ::

@matejtu, kot je omenil že @vuego, se takšne knjižnico običajno namesti z upraviteljem paketov Composer, ki olajša nameščanje in predvsem poskrbi, da so nameščene vse dodatne knjižnice, ki so potrebne.

K sreči ta knjižnica ne potrebuje drugih, zato jo lahko uporabljaš tudi brez Composerja. V tem primeru moraš sam poskrbeti, da ustrezno vključiš vse potrebne datoteke iz knjižnice.

Spodaj je primer kode, ki bi moral delovati. Seveda ustrezno nastavi pot do datotek iz knjižnice (v tem primeru so v mapi src), če jih imaš kje drugje. Spodnja koda ti mora na ekran izrisati majhno QR-kodo. Če deluje, potem ti mora delovati tudi koda za UPNQR od @vuega.

<?php
use KrivArt\QrCode\Ecl;
use KrivArt\QrCode\QrCode;
use KrivArt\QrCode\QrSegment;
use KrivArt\QrCode\Output\Png;

require_once __DIR__ . '/src/Ecl.php';
require_once __DIR__ . '/src/Mode.php';
require_once __DIR__ . '/src/QrCode.php';
require_once __DIR__ . '/src/QrSegment.php';
require_once __DIR__ . '/src/Output/Formatter.php';
require_once __DIR__ . '/src/Output/Image.php';
require_once __DIR__ . '/src/Output/Png.php';

$text      = 'Hello World';
$errCorLvl = new Ecl(Ecl::LOW);
$qr        = QrCode::encodeText($text, $errCorLvl);
$colors = [
    'backgroundColor' => '#ffffff',
    'foregroundColor' => '#000000'
];

$png = new Png($qr, 512, 512, 20, $colors);

header ('Content-Type: image/png');
$png->output();

vuego ::

Meni direktno KrivArt\QrCode ni spustilo skozi UPNQR validator. Je bil potreben mali popravek, zato fork.

Zgodovina sprememb…

  • spremenil: vuego ()

matejtu ::

Danes se bom malo poigral pa javim o rezultatih. Hvala vsem za pomoč :)

SlimDeluxe ::

Če kdo rabi, smo naredili open source PHP paket za UPN QR generator.
https://github.com/DataLinx/php-upn-qr-...

$QR = new UPNQR();

// Set payer
$QR ->setPayerName("Janez Novak")
    ->setPayerStreetAddress("Lepa ulica 33")
    ->setPayerCity("Koper");

// Set recipient
$QR ->setRecipientIban("SI56020360253863406")
    ->setRecipientName("Podjetje d.o.o.")
    ->setRecipientStreetAddress("Neka ulica 5")
    ->setRecipientCity("Ljubljana");

// Transaction details
$QR ->setAmount(55.58)
    ->setRecipientReference("SI081236-17-34565")
    ->setPurposeCode("GDSV")
    ->setPaymentPurpose("Plačilo spletnega naročila št. 304");

try {
    // Generate QR code image of type svg (use .png for PNG images)
    $QR->generateQrCode("./qrcode.svg");
} catch (Exception $e) {
    throw new Exception("Error generating QR code image: " . $e->getMessage());
}
Desktop: R5 3600X | MSI MPG B550 | RX580 8GB | 32GB DDR4 | be quiet! 650W
Laptop: Lenovo ThinkPad T15 G2 | i7-1165G7 | 32GB DDR4 | 15" FullHD IPS

gdolenc ::

SlimDeluxe je izjavil:

Če kdo rabi, smo naredili open source PHP paket za UPN QR generator.
https://github.com/DataLinx/php-upn-qr-...


$QR = new UPNQR();

// Set payer
$QR ->setPayerName("Janez Novak")
->setPayerStreetAddress("Lepa ulica 33")
->setPayerCity("Koper");

// Set recipient
$QR ->setRecipientIban("SI56020360253863406")
->setRecipientName("Podjetje d.o.o.")
->setRecipientStreetAddress("Neka ulica 5")
->setRecipientCity("Ljubljana");

// Transaction details
$QR ->setAmount(55.58)
->setRecipientReference("SI081236-17-34565")
->setPurposeCode("GDSV")
->setPaymentPurpose("Plačilo spletnega naročila št. 304");

try {
// Generate QR code image of type svg (use .png for PNG images)
$QR->generateQrCode("./qrcode.svg");
} catch (Exception $e) {
throw new Exception("Error generating QR code image: " . $e->getMessage());
}


Tole deluje super. Edino imam težavo, če spremenim iz .svg v .PNG. Kakšen namig?

5erson ::

Čisto na slepo: GD extension imaš?

gdolenc ::

5erson je izjavil:

Čisto na slepo: GD extension imaš?


Sem namestil, pa kljub temu dobim tole napako:

Uncaught Exception: Error generating QR code image: Bacon QR code threw an exception: ImagickPixel::__construct not implemented

clarity99 ::

Zivjo,

a obstaja trenutno kje kak delujoc upn qr validator?

blackbfm ::

clarity99 je izjavil:

Zivjo,

a obstaja trenutno kje kak delujoc upn qr validator?


lahko uporabiš un "uradni" validator, ampak je postopek

naštimaš virtualko ali windows sandbox, izklopiš time sync nastaviš ročno datum nekoliko nazaj, naložiš app v virtualko.. bi moglo delat

Excavator ::

Kot alternativo mogoče uporabiš kar lastno mobilno banko, če ne gre za masovno preverjanje.

SlimDeluxe ::

V našem paketu imaš test v PHPju, ki OCRja in validira QR kodo... Če se boš lotil implementacije validatorja, lahko iz tam kopiraš =)
Desktop: R5 3600X | MSI MPG B550 | RX580 8GB | 32GB DDR4 | be quiet! 650W
Laptop: Lenovo ThinkPad T15 G2 | i7-1165G7 | 32GB DDR4 | 15" FullHD IPS

JanezB70 ::

PHP UPN QR generator
https://github.com/DataLinx/php-upn-qr-...
Z composerjem sem v lokalno okolja XAMPP naloži to php knjižnico, ki generira UPN qr kodo
Naredil sem html vnosni obrazec in PHP skripto

Vedno mi javlja napako: Fatal error: Uncaught Error: Class "datalinx\UPNQR" not found
Ali je to zadevo kdo probal. Sam nisem kaj prida vešč PHP in kako se knjižnice kličejo. Mislil sem, da namestitev to sama ustrezno opravi?

kljuka13 ::

@JanezB70, knjižnico sem ravnokar preizkusil in deluje, le da je primer v dokumentaciji na GitHubu nekoliko pomanjkljivo napisan. Razred UPNQR se namreč nahaja v DataLinx\PhpUpnQrGenerator\UPNQR. Tvoja skripta mora torej zgledati nekako takole:

require __DIR__ . '/vendor/autoload.php';

use DataLinx\PhpUpnQrGenerator\UPNQR;

// Create an instance of the UPNQR class
$QR = new UPNQR();

...

JanezB70 ::

Hvala
Meni niso bile jasne imena map in podmap. Pa sem zaradi pomanjkljivega poznavanja PHP čaral z prilagajanjem imen in ravno to je bil nenehen problem.
Sedaj pa deluje. Sicer samo *.svg *.png pa ne.
Znesek zahteva za ločilo piko sicer javi napako - 10.00.
Kako bi naredil, da se ta slika svg pojavi na vnosnem obrazcu, mogoče malo manjše dimenzije?
To sem nekje v dokumentaciji že videl?

LP

Janez

JanezB70 ::

Uporabi https://sourceforge.net/projects/zint/

Ali uporabiš c izvorno kodo ali pa kar kličeš direkt exe:
zint.exe -b 143 --border=5 --scale=3 --binary -i ./UPNQR.txt -o UPNQR.png
Ali tale zint.exe zgenerira upn qr, ki jo prebere bralik qr banke?

Baja ::

ja, cist vredu jih zgenerira.

JanezB70 ::

Je kje kak primer kako naj izgleda ta vhodna txt. Ali sam prilagodi znesek v predpisan 11 mestni niz in na koncu izračuna kontrolno številko.
Ali pa mora vse to biti predhodno pripravljeno vključno z enkodirano txt v ISO 8859-2.

Jure14 ::

nl = chr(10)
txt = "UPNQR" + nl
txt = txt + "" + nl ; IBAN plačnika
txt = txt + "" + nl ; Polog X
txt = txt + "" + nl ; Dvig X
txt = txt + "" + nl ; Referenca plačnika
txt = txt + Odrezi(DA["NIme"],33) + nl ; Ime plačnika
txt = txt + Odrezi(DA["NNaslov"],33) + nl ; Ulica in št. plačnika
txt = txt + Odrezi(DA["NKraj"],33) + nl ; Kraj plačnika
txt = txt + string(round(DA["Znesek"]*100,0) + nl ; Znesek: ***1.268,74 = 00000126874
txt = txt + "" + nl ; Datum plačila 11.07.2016
txt = txt + "" + nl ; Nujno X
txt = txt + odrezi(DA["Namen_koda"],4) + nl ; Koda namena GDSV
txt = txt + odrezi(DA["Namen"],41) + nl ; Namen plačila Plačilo računa 18/2024
txt = txt + DA["TRokPlacila"] + nl ; Rok plačila 11.04.2024
txt = txt + DA["Psif_banke"]+DA["PTRR"] + nl ; IBAN prejemnika SI56123450253863406
txt = txt + Odrezi(DA["PSklic1"]+DA["PSklic2"],26) + nl ; Referenca prejemnika SI121236-17-345679
txt = txt + Odrezi(DA["PIme"],33) + nl ; Ime prejemnika
txt = txt + Odrezi(DA["PNaslov"],33) + nl ; Ulica in št. prejemnika
txt = txt + Odrezi(DA["PKraj"],33)+nl ; Kraj prejemnika
txt = txt + string(size(txt))+nl ; velikost stringa

stringi so v ISO_8859_2
Ta string(txt) zapišeš v datoteko in kličeš zint.exe

JanezB70 ::

Verjetno je treba ta txt z nečim pripraviti da potem izgleda
nekako:
UPNQR


JANEZ KRANJSKI
NA VEJI 3
1399 SMREKA
10.00


OTHR
ČLANARINA 2023/24
01.05.2024
SI5xxxxxxxxxxxxxx
SI122340040004000
KLUB PODSMREKA
TRG 2
1355 XXXXXX
167
Kako pa izgleda klic zint.exe ?parametri

Jure14 ::

Saj si napisal parametre v svojem zadnjem postu.
Po mojih izkušnjah pomaga, če pišeš celotno pot do datoteke. Ker se exe lahko iz različnih direktorijev izvaja.

Jaz uporabljam te parametre:
-b 143 --binary --sec=2 --vers=15 -i c:\temp\qr.txt -o c:c:\temp\qr.pnq

Zgodovina sprememb…

  • spremenilo: Jure14 ()

JanezB70 ::

Kodo naredi. Bralnik na telefonu jo prebere. Bralnik banke pa ne.

Jure14 ::

Znesek je v napačni obliki.
Mora biti v centih brez decimalk. Glej moj primer in komentar zraven.

Preveri, da za ločilo vrstic uporabljaš chr(10) in ne kombinacijo chr(10)+chr(13)

Preveri, da imaš dovolj novo zint.exe, da pozna način kodiranja 143.
Ker tisti kekci iz BAnke Slovenije oz. njihov podizvajalec za to QR kodo so si izmislili čisto svoj standard za kreiranje te kode. Ker so svoj čas prodajali svoj dll za 1000+ EUR.

Pa za test probaj brez šumnikov.

Zgodovina sprememb…

  • spremenilo: Jure14 ()

JanezB70 ::

Hvala. Zint imam zadnji. Mi je jasno, da moram pripraviti txt v obliki od prve vrstice UPNQR do zadnje z kontrolno številko (po navodilih BS).
Ne vem pa s kom bi generiral to txt kodo po primeru, ki si ga poslal. Nekaj malega poznam VBA in JS, uspel sem narediti tudi qr generator na podlagi PHP knjižnice, ki je omenjena na tem portalu. Probal bi z iz exelove tabele pripraviti txt in potem z cmd klicati zint.
Se opravičujem ker sprašujem stvari, ki so poznavalcem samoumevne.

Jure14 ::

Ne poznam VBAja, ampak za začetek
https://stackoverflow.com/questions/115...
Pa tisto vrstico oFile.WriteLine "test" pač razširiš s stringom z vsebino za QR.

Potem pa zaženeš zint iz VBA:
https://stackoverflow.com/questions/209...

Na koncu pa sliko prebereš iz datoteke:
https://www.mrexcel.com/board/threads/w...

JanezB70 ::

Jure hvala.
Uspel sem z Excel VBA napisati kodo, ki ustvari txt s katero zint ustvari upn qr.
Nisem pa nič kompliciral s kodiranjem ISO_8859_2.
Bere jo tudi bančni bralnik NLB. Poiskati moram v dokumentaciji samo še parameter, ki bi omogočil kreiranje nekoliko manjše slike.

Gospod ::

Lp.

Jure14 ::

Poskusi z --scale parametrom:
https://zint.org.uk/manual/chapter/4
1
2
»


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

QR koda na več naslovnikov

Oddelek: Pomoč in nasveti
7799 (402) Šimpanz
»

'Univerzalna' QR položnico?

Oddelek: Pomoč in nasveti
91965 (1467) Miha 333
»

Program Izpis UPN QR - kako prenesti mape na drug računalnik?

Oddelek: Pomoč in nasveti
131369 (1163) Baja
»

Tiskanje na UPN

Oddelek: Loža
155206 (3794) kitewing
»

UNP QR in Extended Channel Interpretation

Oddelek: Programiranje
132011 (1370) Ahim

Več podobnih tem