» »

Davčne blagajne - PHP

Davčne blagajne - PHP

Strato5 ::

Pozdravljeni,

poigravam se z implementacijo slovenskih davčnih blagajn, ker sem v preteklosti že implementiral davčne blagajne za hrvaško in me je zanimalo kolko bolj bodo uspeli pri nas celoten postopek zakomplicirati.

Na prvi pogled je zadeva zgledala dokaj enostavno ampak ko sem si pripravil primere računov v XML datotekah in se lotil PHP skript za pošiljanje, se mi je zataknilo.
Že če poskušam poslati preprost echo request, dobim odgovor "napačni parametri vnosa" zato me zanima ali delam napako jaz ali je kaj drugega?

PHP koda ki jo uporabljam:
<?php

    $url = 'https://blagajne-test.fu.gov.si:9002/v1/cash_registers';
    $Cert = '/Users/matija/Desktop/TestDB/test-tls.cer';
	$xml_string = file_get_contents('/Users/matija/Desktop/TestDB/echoRequest.xml');
	$xml = new DOMDocument();
	$xml->loadXML($xml_string);

	
    $conn = curl_init();
    $settings = array(
		CURLOPT_URL => $url,
        CURLOPT_CONNECTTIMEOUT_MS => 3000,
        CURLOPT_TIMEOUT_MS => 3000,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => $xml,
		CURLOPT_FRESH_CONNECT => true,
		
        // secure this!
        CURLOPT_SSL_VERIFYHOST => 2,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_CAINFO => $Cert
    );

    curl_setopt_array($conn, $settings);
	
    if ($rawResponse = curl_exec($conn)) {
        print_r($rawResponse);
    } else {
        throw new Exception('CODECURL: ' . curl_error($conn));
    }
	echo "\n".$xml->saveXML();

?>


če bi kdo bil pripravljen mi pomagati streti ta oreh bi bil zelo hvaležen. Pripravljen bi bil tudi deliti končno kodo v obliki knjižnice za slovenske davčne blagajne v PHP, ki bi lahko v prihodnosti marsikomu prišla prav.

za pomoč se vnaprej zahvaljujem

LP, Matija7

EDIT:
tehnične specifikacije in navodila, ki jih je objavil FURS so dostopni na sledečem naslovu: http://datoteke.durs.gov.si/dpr/index.h...

Baja ::

preveri kaj in v kakem formatu pošiljaš podatke v 17. vrstici. mislim da mu xml format ne odgovarja. http://php.net/manual/en/function.curl-..., išči CURLOPT_POSTFIELDS

Strato5 ::

Japto je bil del problema. manjkal mi je header s soapactionom in v postfields sem mogel pasati raw xml string pa je šlo skoz z echo metodo.

sem našel odgovore s pomočjo v eni drugi temi o davčnih blagajnah. Hvala vseeno za pomoč :)

suhipes ::

Pozdravljen Matija,

tudi sam se težko prebijam skozi php za te davčne blagajne. Zanima me kako si popravil zgornjo kodo, da ti deluje, iz tvojega zadnjega posta težko razberem kaj si popravil.

Do sedaj mi je uspelo narediti podpisovanje xml s testnim certifikatom za programerje, ki sem ga pridobil od fursa.
Manjka mi tale echo. No potem pa počasi še naprej.

Bi ti bil zelo hvaležen za pomoč.

lp Sandi

tomo18 ::

Kako konvertirat .p12 certifikat v .cer?

marko35 ::

p12 lahko konvertiras v cer na:
https://www.sslshopper.com/ssl-converte...

Jaz pa imam vprašanje kako bi lahko s PHP jem generiral ZOI?
Je kdo tako dober pa bi lahko prilepil kodo. Menda je že kar nekaj takih, ki jim je ratalo.

Mare

JerKoJ ::

$taxNum = 12345678; //from certificate
$date= date('d.m.Y H:i:s',time());
$invoiceNumber=123;
$businessPremiseID = 'AAA';
$electronicDeviceID = 'BBB';
$amount = 123.45;
$signData = $taxNum.$date.$invoiceNumber.$businessPremiseID.$electronicDeviceID.$amount;
$key = openssl_pkey_get_private('file://mycert.pem',$hiddenPass); //convert from .p12
openssl_sign($signData, $signature, $key, OPENSSL_ALGO_SHA256);
openssl_free_key($key);
$zoi=md5($signature);

marko35 ::

Krasno! Hvala lepa, deluje, sedaj mislim, da je komplet :)

vajenec ::

Na testnem okolju mi deluje vse, se je pa zakompliciralo na produkcijskem - in to s certifikati. Kako (iz česa oz s čim) narediti .pem certifikata za povezavo? Ves čas teži SSL certificate problem: self signed certificate in certificate chain, če naredim cerifikata po navodilu za testno okolje.

vajenec ::

Kolega je izjavil, da je včasih zaradi dreves težko videti gozd. Prav je imel. Uporabniški certifikat in sigov-ca.crt sta dovolj.

brble ::

Zdravo pubeci ino pupe.

Najprej bi se rad zahvalil vsem, ki tako lepo sodelujete na tem forumu. Tudi z vašo pomočjo sem skupaj sestavil to presneto skripto. Ker bi rad prihranil muke vsem, ki se s tem ukvarjate, sem se odločil, da svojo skripto objavim. Skripta pokriva:
- echo sporočilo
- prijavo poslovnega prostora
- prijavo posameznega računa
- se omejuje na operacije prek spletne strani, kar pomeni, da obstaja 1 poslovni prostor in 1 elektronska naprava.

Ker drugega v tem trenutku ne potrebujem, se mi ni dalo pisati naprej. V osnovi je skripta tako narejena, da je nadgradnja precej logična in enostavna. Vse kar vas prosim, je, da če boste skripto (kvalitativno) nadgradili, da mi jo pošljete nazaj, da jo objavim še za vse ostale. Pošljite mi še svoje ime, da ga navedem v avtorstvu.

PHP skripta za potrjevanje računov je dostopna na:

https://github.com/matejpos/PHP-davcne-...

vsepocenv ::

Lep pozdrav je ima kdo komplet kodo od php davcno blagajno


Vredno ogleda ...

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

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344332260 (72263) Macketina
»

Davčna blahajna - PHP - certifikati

Oddelek: Programiranje
51034 (800) app5771283
»

PHP davčna blagajna

Oddelek: Programiranje
188077 (6101) brble
»

online davčne blagajne - plagiat hrvaških?

Oddelek: Loža
2310232 (8782) Matako
»

[java] system.setproperty xml apis vec implementacij naenkrat

Oddelek: Programiranje
52690 (2149) Fizikalko

Več podobnih tem