User Tools

Site Tools



lt:xmlcore

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
lt:xmlcore [2020/06/17 13:42] – sukurtas robertaslt:xmlcore [2021/10/08 14:49] jaroslav
Linija 10: Linija 10:
     * Į POST užklausą atsakoma sinchronizuotu XML pranešimu, kurio apdorojimas gali daryti įtaką sėkmingam procesui;     * Į POST užklausą atsakoma sinchronizuotu XML pranešimu, kurio apdorojimas gali daryti įtaką sėkmingam procesui;
     * Duomenų struktūra turi atitikti paruoštą XSD schemą. Pageidaujama reikšmes siųsti atributuose.     * Duomenų struktūra turi atitikti paruoštą XSD schemą. Pageidaujama reikšmes siųsti atributuose.
 +    * Directo dokumentų numerių tipas yra //integer//, tai reiškia, kad didžiausias galimas skaičius yra 2147483647.
  
  
-  * **Endpoint URL:** https://directo.gate.ee/xmlcore/demo_lt_153/xmlcore.asp (Jūsų sukurtam servisui pasikeis tik „demo_lt_153“ dalis).+  * **Endpoint URL:** https://login.directo.ee/xmlcore/demo_lt_153/xmlcore.asp (Jūsų sukurtam servisui pasikeis tik „demo_lt_153“ dalis).
  
-==== 2.1. Informacijos pasiėmimas iš Directo (OUT) ====+ 
 +==== 2.1. Prieiga prie serviso ==== 
 + 
 +Serviso nuorodos yra pasiekiamos ''form/urlencoded'' POST metodu. Autorizacijai reikalingas raktas turi būti perduodamas POST metodu kintamajame KEY siunčiant užklausą. Jei raktas neteisingas arba raktas siunčiamas neteisingu būdu, gaunamas atsakymas: 
 +<code xml><result type="5" desc="Unauthorized"/></code> 
 + 
 +Pavyzdys naudojant cURL: 
 +<code bash> 
 +curl -v -d "key=2852DD553B767B463C807ADB36B5BB2F&what=item&get=1&ts=01.01.2021&code=000001" -H "Content-Type: application/x-www-form-urlencoded" -X POST "https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp" 
 +</code> 
 + 
 + 
 +==== 2.2. Informacijos pasiėmimas iš Directo (OUT) ====
  
 GET metodo atveju bent 3 parametrai turi būti nurodyti: GET metodo atveju bent 3 parametrai turi būti nurodyti:
-  * get=1 +  * **get**=1 
-  * what=SERVISO_KODAS +  * **what**=SERVISO_KODAS 
-  * key=SUGENERUOTAS_RAKTAS+  * **key**=SUGENERUOTAS_RAKTAS
  
 Papildomi parametrai yra derinami individualiai pagal poreikį, integracijos derinimo metu. Papildomi parametrai yra derinami individualiai pagal poreikį, integracijos derinimo metu.
 +
 +<wrap important>
 +Šiuose pavyzdžiuose esančios nuorodos yra iliustracinio pobūdžio. Jokiu būdu negarantuojama, kad šie URL iš tikrųjų atitiks užklausą. Jei užklausos metu duomenys yra gaunami, jie yra 100% fiktyvūs ir nesusiję su jokių tikrų įmonių duomenimis.
 +</wrap>
  
  
-Šio pavyzdžio atveju yra naudjamas **what** = "item" ir **key** reikšmė yra "20DAF3F822B782AF12D1198C23F45604". Esant poreikiui, galite peržiūrėti šio pavyzdinio serviso XSD schemą: [[http://wiki.directo.ee/_media/et/ws_artiklid.xsd|ws_artiklid.xsd]].+Šio pavyzdžio atveju yra naudojamas **what** = "item" ir **key** reikšmė yra "20DAF3F822B782AF12D1198C23F45604". Esant poreikiui, galite peržiūrėti šio pavyzdinio serviso XSD schemą: [[http://wiki.directo.ee/_media/et/ws_artiklid.xsd|ws_artiklid.xsd]].
  
  
 Užklausos pavyzdys, norint gauti visų prekių sąrašą: Užklausos pavyzdys, norint gauti visų prekių sąrašą:
  
-https://directo.gate.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item&key=20DAF3F822B782AF12D1198C23F45604+https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item
  
 Užklausos pavyzdys, norint gauti konkrečios prekės informaciją: Užklausos pavyzdys, norint gauti konkrečios prekės informaciją:
  
-https://directo.gate.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item&code=0000&key=20DAF3F822B782AF12D1198C23F45604+https://login.directo.ee/xmlcore/demo_ee/xmlcore.asp?get=1&what=item&code=0000
  
 +==== 2.3. Informacijos siuntimas į Directo (IN) ====
  
-==== 2.2. Informacijos siuntimas į Directo (IN) ==== +Duomenys siunčiami naudojant ''form/urlencoded'' POST metodą.
- +
-Duomenys siunčiami naudojant POST metodą. +
- +
-Užpildomi trys formos kintamieji: +
-  * put=1 +
-  * what=INVOICE +
-  * xmldata=<?xml version="1.0" encoding="utf-8"?><PAYLOAD>+
  
 +Užpildomi formos kintamieji:
 +  * **put**=1
 +  * **what**=INVOICE
 +  * **key**=SUGENERUOTAS_RAKTAS
 +  * **xmldata**=<?xml version="1.0" encoding="utf-8"?><PAYLOAD>
  
 Šis siuntimas naudojamas, pavyzdžiui, kai pardavimo sąskaita yra sugeneruojama išorinėje sistemoje, kurią reikia perduoti į „Directo“. Šis siuntimas naudojamas, pavyzdžiui, kai pardavimo sąskaita yra sugeneruojama išorinėje sistemoje, kurią reikia perduoti į „Directo“.
  
-Šiame pavyzdyje nurodyti URL ir XML pvz. yra visiškai išgalvoti ir negali būti naudojami testavimui. Testavimas visada atliekamas realiame procese.+<wrap important> 
 +Šiame pavyzdyje nurodyti URL ir XML pavyzdžiai yra visiškai išgalvoti ir negali būti naudojami testavimui. Testavimas visada atliekamas realiame procese. 
 +</wrap>
  
-Tarkime, kad šiuo atveju URL pvz. https://directo.gate.ee/xmlcore/this_is_the_worlds_greatest_company/xmlcore.asp+Tarkime, kad šiuo atveju URL pvz. https://login.directo.ee/xmlcore/this_is_the_worlds_greatest_company/xmlcore.asp
  
 Pavyzdinio serviso XSD schemą:  [[http://wiki.directo.ee/_media/et/xml_in_arved.xsd|xml_in_arved.xsd]]. Pavyzdinio serviso XSD schemą:  [[http://wiki.directo.ee/_media/et/xml_in_arved.xsd|xml_in_arved.xsd]].
Linija 56: Linija 74:
 Pavyzdinis XML: Pavyzdinis XML:
  
-<code>+<code xml>
 <?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
 <invoices> <invoices>
-  <invoice AppKey="1234567879012345678790" InvoiceNr="123" +  <invoice InvoiceNr="123" 
       InvoiceDate="2015-06-07" CustomerCode="CUST001">       InvoiceDate="2015-06-07" CustomerCode="CUST001">
     <lines>     <lines>
Linija 69: Linija 87:
 </code> </code>
  
- +Servisas sinchroniškai grąžins XML atsakymą su pranešimu kas įvyko.
-Servisas sinchroninškai grąžins XML atsakymą su pranešimu kas įvyko.+
  
 Pavyzdžiui įkėlimas buvo sėkmingas ir Directo sąskaitos dokumentui priskyrė numerį 123: Pavyzdžiui įkėlimas buvo sėkmingas ir Directo sąskaitos dokumentui priskyrė numerį 123:
  
-<code>+<code xml>
 <?xml version="1.0" encoding="UTF-8" ?>  <?xml version="1.0" encoding="UTF-8" ?> 
 <results> <results>
Linija 85: Linija 102:
 Pavyzdžiui sąskaita numeriu 123 buvo atmesta, nes Directo sistemoje jau egzistavo sąskaitos dokumentas tokiu numeriu: Pavyzdžiui sąskaita numeriu 123 buvo atmesta, nes Directo sistemoje jau egzistavo sąskaitos dokumentas tokiu numeriu:
  
-<code>+<code xml>
 <?xml version="1.0" encoding="UTF-8" ?>  <?xml version="1.0" encoding="UTF-8" ?> 
 <results> <results>
Linija 94: Linija 111:
 Vienu siuntimu galima įkelti kelias sąskaitas iš karto. Tokiu atveju rezultatas turi būti grąžinamas kiekvienai sąskaitai: Vienu siuntimu galima įkelti kelias sąskaitas iš karto. Tokiu atveju rezultatas turi būti grąžinamas kiekvienai sąskaitai:
  
-<code>+<code xml>
 <?xml version="1.0" encoding="UTF-8" ?>  <?xml version="1.0" encoding="UTF-8" ?> 
 <results> <results>
Linija 104: Linija 121:
 :!: Svarbu sulaukti atsakymo apie sėkmingą įkėlimą. Jeigu tokio rezultato nesulaukiama arba yra gaunama klaida, siuntimą reikia pakartoti ne anksčiau kaip po minutės. :!: Svarbu sulaukti atsakymo apie sėkmingą įkėlimą. Jeigu tokio rezultato nesulaukiama arba yra gaunama klaida, siuntimą reikia pakartoti ne anksčiau kaip po minutės.
  
-==== 2.3HMTL forma ====+==== 2.4HTML forma ====
  
 Parametrai, kuriuos reikia nurodyti: Parametrai, kuriuos reikia nurodyti:
-  * **What** – webserviso pavadinimas. Pvz.: “invoice” jei tai sąskaitos dokumentas.+  * **What** – web serviso pavadinimas. Pvz.: “invoice” jei tai sąskaitos dokumentas.
   * **Put** – statinis. Visada „1“ jei tai importas į Directo.   * **Put** – statinis. Visada „1“ jei tai importas į Directo.
   * **Get** - statinis. Visada „1“ jei tai eksportas iš Directo.   * **Get** - statinis. Visada „1“ jei tai eksportas iš Directo.
 +  * **Key** - web serviso autorizacijos raktas.
   * **Xmldata** – dinaminis. Laukus reiktų derinti, kadangi servisas būtų programuojamas individualiai pagal poreikį.   * **Xmldata** – dinaminis. Laukus reiktų derinti, kadangi servisas būtų programuojamas individualiai pagal poreikį.
  
Linija 115: Linija 133:
 Pavyzdinė užsakymo forma: Pavyzdinė užsakymo forma:
  
-<code> +<code html
-<form method="POST" action="https://directo.gate.ee/xmlcore/demo_lt_153/xmlcore.asp">+<form method="POST" action="https://login.directo.ee/xmlcore/this_is_the_worlds_greatest_company/xmlcore.asp">
  
  <input name="what" value="order">  <input name="what" value="order">
Linija 122: Linija 140:
  <input name="put" value="1">  <input name="put" value="1">
  
- <textarea name="xmldata" rows="10"><orders><order key="asdf12345678" order_time="31.01.2018" number="111222" customer_code="FA" customer_name="TEST TEST pirkejas" customer_order="PORD11111" deliverydate="31.01.2018" paymentterm="10" customer_contact="customer contact" phone="phone" email="email@test.com <mailto:email@test.com> " email_notification="email notification" fax="fax" regno="regno" VATno="vatno" comment="comment" address1="Address1" address2="Address2" address3="Address3" deliveryaddress1="DAddress1" deliveryaddress2="DAddress2" deliveryaddress3="DAddress2" order_type="otype" order_status="ostatus"><line item="109819-0001" variant="Dydziai_a" price="100" discount="15" qty="10" unit="unit" description="item description" comment="comment" supplier="supp" rn="1"></line><line barcode="8714554972899" price="100" discount="15" qty="10" unit="unit" description="item description" comment="comment" supplier="supp" rn="2"></line></order></orders></textarea>+ <input name="key" value="2852DD553B767B463C807ADB36B5BB2F"> 
 + 
 + <textarea name="xmldata" rows="10"><orders><order order_time="31.01.2018" number="111222" customer_code="FA" customer_name="TEST TEST pirkejas" customer_order="PORD11111" deliverydate="31.01.2018" paymentterm="10" customer_contact="customer contact" phone="phone" email="email@test.com <mailto:email@test.com> " email_notification="email notification" fax="fax" regno="regno" VATno="vatno" comment="comment" address1="Address1" address2="Address2" address3="Address3" deliveryaddress1="DAddress1" deliveryaddress2="DAddress2" deliveryaddress3="DAddress2" order_type="otype" order_status="ostatus"><line item="109819-0001" variant="Dydziai_a" price="100" discount="15" qty="10" unit="unit" description="item description" comment="comment" supplier="supp" rn="1"></line><line barcode="8714554972899" price="100" discount="15" qty="10" unit="unit" description="item description" comment="comment" supplier="supp" rn="2"></line></order></orders></textarea>
  
  <input TYPE="submit">  <input TYPE="submit">
  
 </form> </form>
 +</code>
 +
 +
 +==== 2.4. Pavyzdys PHP kalba ====
 +
 +Į servisą  galima kreiptis bet kokia kalba, jeigu ta programavimo kalba yra galimybė padaryti https request‘ą, pateikiame pavyzdį PHP kalba:
 +
 +**OUT**
 +<code php>
 +$url = 'https://login.directo.ee/xmlcore/this_is_the_worlds_greatest_company/xmlcore.asp';
 +$key = '2852DD553B767B463C807ADB36B5BB2F';
 +
 +$ch = curl_init();
 +curl_setopt($ch, CURLOPT_HEADER, 0);
 +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 +curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 +curl_setopt($ch, CURLOPT_URL, $url );
 +curl_setopt($ch, CURLOPT_POSTFIELDS, 'key='.urlencode($key) . '&what=item&get=1&ts=01.01.2021&code=000001' ); 
 +curl_setopt($ch, CURLOPT_POST, 1);
 + 
 +$result = curl_exec($ch);
 + 
 +header('Content-Type: text/html; charset=utf-8');
 + 
 +print '<textarea cols=80 rows=10>' . $result . '</textarea>';
 + 
 +$data = new SimpleXMLElement($result);
 + 
 +print '<pre>';
 +print_r($data);
 +foreach ($data->item as $item) {
 + print 'Code:'.$item['code'] . chr(9) .  '<b>' . $item['name'] . '</b>' . chr(9) .  $item['class'] . '<br>Datafields:<br>';
 + foreach ($item->datafields->data as $df ) {
 + print chr(9) . $df['code'] . ':' . $df['content'] . '<br>';
 + }
 +}
 +</code>
 +
 +
 +**IN**
 +<code php>
 +$url = 'https://login.directo.ee/xmlcore/this_is_the_worlds_greatest_company/xmlcore.asp';
 +$key = '2852DD553B767B463C807ADB36B5BB2F';
 +
 +$xmldata =  <<<XML
 +<?xml version="1.0" encoding="utf-8"?>
 +<invoice AppKey="1234567879012345678790" InvoiceNr="123" 
 +      InvoiceDate="2015-06-07" CustomerCode="CUST001">
 +    <lines>
 +      <line ProductID="KILLERPRODUCT" Quantity="3" UnitPriceWoVAT="123.45"/>
 +      <line ProductID="FREESAMPLE" Quantity="1" UnitPriceWoVAT="0.00"/>
 +    </lines>
 +</invoice>'
 +XML;
 +
 + 
 +$ch = curl_init();
 + 
 +curl_setopt($ch, CURLOPT_HEADER, 0);
 +curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 +curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 +curl_setopt($ch, CURLOPT_URL, $url );
 +curl_setopt($ch, CURLOPT_POST, 1);
 +curl_setopt($ch, CURLOPT_POSTFIELDS, 'key='.urlencode($key).'&xmldata='.urlencode($xmldata).'&put=1&what=invoice' );
 +
 +$result = curl_exec($ch);
 +curl_close($ch);
 + 
 +echo '<pre>';
 + 
 +print '</pre><textarea cols=80 rows=10>' . $result . '</textarea>';
 +
 </code> </code>
lt/xmlcore.txt · Keista: 2023/09/15 15:27 vartotojo jaroslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki