e-racuni integracija - PHP

Pozdravljeni.

e-racuni imajo lepo urejen api, kako dela še nisem preverjal. Zanima me, če ima kdo izkušnje, kako to početi s php-jem, konkretno za e-racune?

Zelo bi bil vesel, če bi mi lahko kdo pokazal primer klica PHP v povezavi z e-racuni.com, da ne odkrivam tople vode. Tehnik mi je povedal, da se pošlje XML, lahko pa tudi string in potem e-racuni vrnejo response.

Ima kdo kakšen konkreten primer, kako se to počne z e-računi v PHP-ju?

Zelo bom hvaležen za vaše odgovore.

Hvala.

18 odgovorov

off topic: lahko je najboljsi program... dokler ima IE na screenshotih ga ne bom uporabljal za nic na svetu ;)

3133

Stvar je precej preprosta. Najprej si zamisliva funkcijo, s katero boš opravljal dejanske API klice.

/**
     * calls the E-racuni API and returns the API response
     * @param $post_data
     * @return string
     */
    function callAPI($post_data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://eurofaktura.com/WebServicesSI/API");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/octet-stream", "Content-Length: " . strlen($post_data)));
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);

        $curl_result = @curl_exec($ch);
        $curl_err = curl_error($ch);
        curl_close($ch);

        return $curl_result;
    }

Potem pa samo še sestaviš XML (kar je čisto navaden text), ga shraniš v spremenljivko $postdata, in pokličeš callAPI($postdata).

Primer $post_data spremenljivke:

$post_data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<request>
    <login username=\"{$this->import_setting_username}\" md5pass=\"{$this->import_password_md5}\" token=\"{$this->import_setting_token}\" />
    <method name=\"SalesInvoiceCreate\">
        <parameter name=\"SalesInvoice\">
            <number>{$invoice_number}</number>  
            <date>{$invoice_date}</date>
            <dateOfSupplyFrom>{$invoice_date_supply}</dateOfSupplyFrom>
            <expirationDate>{$invoice_date}</expirationDate>
            <city>Ljubljana</city>
            <isReccurringInvoice>false</isReccurringInvoice>
            <vatTransactionType>{$vat_transaction_type}</vatTransactionType>
            <remarks>{$invoice_remark}</remarks>
            <buyerCode>{$buyer_code}</buyerCode>
            <methodOfPayment>bankTransfer</methodOfPayment>
            <status>issuedInvoice</status>
            <totalCurrency>EUR</totalCurrency>
            <totalAmount>{$total_amount}</totalAmount>
            <totalNetAmount>{$total_net_amount}</totalNetAmount>
            <Items>
                <Item>
                    <description>{$item_description}</description>
                    <amount>{$total_amount}</amount>
                    <price>{$total_net_amount}</price>
                    <netPrice>{$total_net_amount}</netPrice>
                    <netPriceInDocumentCurrency>{$total_net_amount}</netPriceInDocumentCurrency>
                    <currency>EUR</currency>
                    <quantity>1</quantity>
                    <vatTransactionType>{$vat_transaction_type}</vatTransactionType>{$vat_item_data}
                </Item>
            </Items>
        </parameter>
    </method>
</request>";

Pa vso srečo. ;)

8

zakon, bom probal! Hvala.

Micka Kovačeva ... :D

2

Mešetar:
off topic: lahko je najboljsi program... dokler ima IE na screenshotih ga ne bom uporabljal za nic na svetu ;)

Jaz pa Mešetar.com. :)

131

francx:
Jaz pa Mešetar.com. :)

fair enough ;)

2

Mešetar:
off topic: lahko je najboljsi program... dokler ima IE na screenshotih ga ne bom uporabljal za nic na svetu ;)

Saj screenshoti so narejeni v Firefox-u :-)

Ce pogledate CSS, boste videli, da je okvir dodan posebej. Slucajno res zgleda, kot IE, ampak designer uporablja Mac-a tako, da je verjetno samo hotel pokazati, da deluje TUDI na IE od verzije 5.5 dalje in ne samo na FF, Chrome, Safari, Opera, ... ;-)

e-racuni:

Mešetar:
off topic: lahko je najboljsi program... dokler ima IE na screenshotih ga ne bom uporabljal za nic na svetu ;)

Saj screenshoti so narejeni v Firefox-u :-)

Ce pogledate CSS, boste videli, da je okvir dodan posebej. Slucajno res zgleda, kot IE, ampak designer uporablja Mac-a tako, da je verjetno samo hotel pokazati, da deluje TUDI na IE od verzije 5.5 dalje in ne samo na FF, Chrome, Safari, Opera, ... ;-)

haha, pa res...nisem sel za tem, da je locena slika in da je v prikazu programa slider od macOSXa a okvir IE... kakorkoli... ze samo uporaba IEja za okvir sproza bad feelings :)

sem dobil velik minusov, zgleda da je tle velik IE zagovornikov :)

4

Pravzaprav so zagovorniki IE naše stranke, katere uporabljajo naše strani in na njih kupujejo.

Kot razvijalec, ki razvija spletne strani za druge, si s podobnimi izjavami (tudi v eni prejšnjih tem), delaš medvedjo uslugo, saj kdo bi najel razvijalca, ki mu ni mar za cca 33% naših strank?

Pomoje si ravno zaradi tega dobil minuse, in ne zaradi IE borbe proti IE.

2

@Jure Damjan: khm, khm... malo jemljes stvari iz konteksta...
1. nisem razvijalec za najem ;)
2. ce ze, ko delam za koga, vedno poskrbim, da je podprto
3. 33% je uproabnikov IE, ker jim razviajlci dajemo potuho... in se trudimo, da tudi pr njih dela, namesto, da jih komplet ignoriramo

Pravzaprav so zagovorniki IE naše stranke, katere uporabljajo naše strani in na njih kupujejo.

to se ne pomeni, da je kul, da se dela dodatna propaganda IEju

6