Kasutaja tarvikud

Lehe tööriistad



lt:xmlcore

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Lõlita võrdlemise vaatele

Both sides previous revision Previous revision
Next revision
Previous revision
lt:xmlcore [2020/07/28 09:33]
aurelija
lt:xmlcore [2023/09/15 15:27] (esamas)
jaroslav [3. Atsakymų kodai]
Linija 1: Linija 1:
 ======Bendras XML duomenų mainų sąsajos aprašymas====== ======Bendras XML duomenų mainų sąsajos aprašymas======
 +
 +====Bendra informacija====
 +
 +Jei pageidaujama,​ kiekvienoje Directo bazėje galima nustatyti duomenų mainų sąsają, įgalinančią dvipusį duomenų srautą. Svarbu atsiminti, kad sąsaja nėra prieinama pagal numatytuosius nustatymus, tačiau konfigūruojama kiekvienu konkrečiu atveju, atsižvelgiant į konkretaus užduočių rinkinio poreikius. Sąsajos įdiegimas yra apmokamas pagal kainoraštį,​ o apmokėjimo dydis priklauso nuo kiekviena kryptimi judančių duomenų tipų skaičiaus, todėl prieš pradedant darbą, būtina susisiekti su Directo prekybos atstovu ir susitarti dėl tikslių poreikių bei derinti projekto kainą.
  
 Integracijos principai: Integracijos principai:
-    ​* Duomenų formatas XML; +  ​* Duomenų formatas XML; 
-    * Duomenų koduotė UTF-8; +  * Duomenų koduotė UTF-8; 
-    * Metodas informacijai pasiekti HTTPS  (sertifikatas viešai pripažįstamas);​ +  * Metodas informacijai pasiekti HTTPS (sertifikatas viešai pripažįstamas);​ 
-    * GET metodas naudojamas duomenims gauti; +  * GET metodas naudojamas duomenims gauti; 
-    * POST metodas yra naudojamas duomenis išsiųsti;​ +  * POST metodas yra naudojamas duomenis išsiųsti;​ 
-    * Duomenų apsikeitimą visuomet inicijuoja išorinė šalis, nepriklausomai nuo apsikeitimo krypties; +  * Duomenų apsikeitimą visuomet inicijuoja išorinė šalis, nepriklausomai nuo apsikeitimo krypties; 
-    * Į 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. 
 +  * Tuščios (NULL) reikšmės nebus įtraukiamos į XML su lauko pavadinimu. Tą patį darykite ir siųsdami duomenis į Directo - praleiskite laukus, kuriuose turi būti tuščių (NULL) reikšmių. Reikėtų vengti siųsti laukus su tuščia reikšme, kaip pavyzdžiui:​ ''​customer_code = ""''​.
  
 +**Endpoint URL:** [[https://​login.directo.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) ====+ 
 +==== 1. Prieiga prie serviso ==== 
 + 
 +Serviso nuorodos yra pasiekiamos ''​form/​urlencoded''​ POST metodu. Autorizacijai reikalingas raktas turi būti perduodamas POST metodu kintamajame KEY: 2852DD553B767B463C807ADB36B5BB2F 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. Pavydžiai ==== 
 +Toliau pateikti pavyzdžiai turi būti laikomi tik apytiksliais ir svarbu atsiminti, kad konkrečioje kuriamoje sąsajoje beveik tikrai bus naudojamos kitokios **schemos, URL, parametrai, apribojimai,​ žinutės atsakymai ir raktai** nei pateiktos pavyzdyje. 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. 
 +Norėdami išbandyti, naudokite šią formą: [[https://​login.directo.ee/​xmlcore/​demo_ee/​webupload.html]] 
 + 
 + 
 +=== 2.1. 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.
  
 +Šiame pavyzdyje naudojami ''​what=item''​ ir ''​get=1''​. Visi filtrai galimi, jei schemoje yra atitinkamas laukas. Pavyzdžiui,​ "​class",​ "​code",​ "​barcode",​ "​supplier",​ "​supplieritem",​ "​closed",​ "​ts"​ straipsnių aprašomoji struktūros schema: [[https://​login.directo.ee/​xmlcore/​demo_ee /​ws_artiklid.xsd]]
  
-Š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]].+Užklausa prekėms pagal saugojimo datą (ts = Time stamp): [[https://login.directo.ee/​xmlcore/demo_ee/xmlcore.asp?​what=item&​get=1&​ts=01.01.2021]]
  
 +Laiko filtras taip pat gali naudoti laiką taip: & ts = 01.03.2021 12:30 / & ts = 01.03.2021%2012:​30
  
 Užklausos pavyzdys, norint gauti visų prekių sąrašą: Užklausos pavyzdys, norint gauti visų prekių sąrašą:
- +https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&​what=item
-https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&​what=item&​key=20DAF3F822B782AF12D1198C23F45604+
  
 Užklausos pavyzdys, norint gauti konkrečios prekės informaciją:​ Užklausos pavyzdys, norint gauti konkrečios prekės informaciją:​
 +https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&​what=item&​code=0000
  
-https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&what=item&​code=0000&​key=20DAF3F822B782AF12D1198C23F45604+== Pirkėjo išvestis (OUT): ​==
  
-==== 2.2Informacijos siuntimas į Directo (IN) ====+[[https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&what=customer&​ts=01.01.2021]]
  
-Duomenys siunčiami naudojant POST metodą.+Filtro parinkčių pavyzdžiai: ​ "​code",​ "​loyaltycard",​ "​regno",​ "​email",​ "​phone",​ "​closed",​ "​ts"​ pirkėjo struktūros schema: https://​login.directo.ee/​xmlcore/​demo_ee/​ws_customers.xsd
  
-Užpildomi trys formos kintamieji:​ +== Sandėlio kiekio išvestis (OUT):  ==
-  * put=+
-  * what=INVOICE +
-  * xmldata=<?​xml version="​1.0"​ encoding="​utf-8"?><​PAYLOAD>​+
  
 +https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&​what=stocklevel
  
-Šis siuntimas naudojamas, ​pavyzdžiuikai pardavimo sąskaita yra sugeneruojama išorinėje sistemojekurią reikia perduoti į „Directo“.+Filtro parinkčių ​pavyzdžius: "​code"​"​stock"​apibūdinanti sandėlio kiekio schema: https://​login.directo.ee/​xmlcore/​demo_ee/​ws_laoseis.xsdt
  
-Šiame pavyzdyje nurodyti URL ir XML pvz. yra visiškai išgalvoti ir negali būti naudojami testavimui. Testavimas visada atliekamas realiame procese. 
  
-Tarkime, kad šiuo atveju URL pvzhttps://​login.directo.ee/​xmlcore/​this_is_the_worlds_greatest_company/​xmlcore.asp+=== 2.3Informacijos siuntimas į Directo (IN) ===
  
-Pavyzdinio serviso XSD schemą: ​ [[http://​wiki.directo.ee/​_media/​et/​xml_in_arved.xsd|xml_in_arved.xsd]].+Duomenys siunčiami naudojant ''​form/​urlencoded''​ POST metodą. 
 + 
 +Užpildomi formos kintamieji:​ 
 +  * ''​put=1''​ 
 +  * ''​what=INVOICE''​ 
 +  * ''​key=SUGENERUOTAS_RAKTAS''​ 
 +  * ''​xmldata=<?​xml version="​1.0"​ encoding="​utf-8"?><​PAYLOAD>''​ 
 + 
 +Įvesties sąsajoje XML turi būti išsiųstas adresu [[https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp]] POST su kintamaisiais ''​put = 1'',​ ''​key = [appkey value]'',​ ''​what = order''​ (arba ''​what = customer''​ arba ''​what = item''​) ir ''​xmldata = [XML turinys]''​ XML įvestis turi atitikti schemą. 
 + 
 +<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>​ 
 + 
 +**Praktinis pavyzdys** 
 + 
 +Tokio tipo įvestis naudojama, pavyzdžiui,​ kai išorinėje sistemoje generuojami pardavimo užsakymai, kurie turi būti atspindėti Directo. Taip pat, pateikiamas pirkėjų schemos aprašymas. 
 + 
 +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]].
  
 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 68: Linija 110:
 </​code>​ </​code>​
  
-Servisas ​sinchroninškai grąžins XML atsakymą su pranešimu kas įvyko.+Servisas ​sinchroniš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 83: Linija 125:
 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 92: Linija 134:
 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 100: Linija 142:
 </​code>​ </​code>​
  
-:!: 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.+<wrap important>​ 
 +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. ​Reikėtų vengti kelių užklausų siuntimo vienu metu. 
 +</​wrap>​
  
-==== 2.3. HTML forma ====+**Pirkėjo įvesties sąsaja:​** 
 + 
 +Duomenys aprašyti schemoje [[https://​login.directo.ee/​xmlcore/​demo_ee/​xml_IN_kliendid.xsd]] . Duomenų registravimas yra toks pat kaip užsakymų registravimas. XML, kuris atitinka schemą, bet nenaudoja visų galimų atributų, gali atrodyti taip: 
 + 
 +<code xml> 
 +<?​xml ​ version ​"​1.0" ​ encoding = "​utf-8"​ ?>  
 +<​customers > 
 +   <​customer ​ code = "​Customer ​ code1 " name = "​Name" ​ address1 = "​address11" ​ address2 = "​address21" ​ address3 = "​address31" ​ email = " email1 " ​ regno = " regno1 " ​ class = " class1 " ​ type = " 1 " ​ >  
 +  </ customer > 
 +  </ customers > 
 +</​code>​ 
 + 
 +=== 2.4. HTML 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 113: Linija 170:
 Pavyzdinė užsakymo forma: Pavyzdinė užsakymo forma:
  
-<​code>​ +<​code ​html
-<form method="​POST"​ action="​https://​login.directo.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 120: Linija 177:
  <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">​
Linija 128: Linija 187:
  
  
-==== 2.4. Pavyzdys PHP kalba ====+=== 2.5. Pavyzdys PHP kalba ===
  
 Į servisą ​ galima kreiptis bet kokia kalba, jeigu ta programavimo kalba yra galimybė padaryti https request‘ą,​ pateikiame pavyzdį PHP kalba: Į servisą ​ galima kreiptis bet kokia kalba, jeigu ta programavimo kalba yra galimybė padaryti https request‘ą,​ pateikiame pavyzdį PHP kalba:
  
 **OUT** **OUT**
-<​code>​ +<​code ​php
-$url = '​https://​login.directo.ee/​xmlcore/​demo_ee/​xmlcore.asp?​get=1&​what=item&​key=20DAF3F822B782AF12D1198C23F45604';+$url = '​https://​login.directo.ee/​xmlcore/​this_is_the_worlds_greatest_company/​xmlcore.asp'; 
 +$key = '​2852DD553B767B463C807ADB36B5BB2F';
  
 $ch = curl_init();​ $ch = curl_init();​
Linija 141: Linija 201:
 curl_setopt($ch,​ CURLOPT_FOLLOWLOCATION,​ true); curl_setopt($ch,​ CURLOPT_FOLLOWLOCATION,​ true);
 curl_setopt($ch,​ CURLOPT_URL,​ $url ); curl_setopt($ch,​ CURLOPT_URL,​ $url );
-curl_setopt($ch,​ CURLOPT_POST, ​0); +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);​ $result = curl_exec($ch);​
    
Linija 152: Linija 213:
    
 print '<​pre>';​ print '<​pre>';​
-  +print_r($data);​ 
-foreach ($data->items->item as $item) { +foreach ($data->​item as $item) { 
-      print $item['​Code'] . chr(9) .  '<​b>'​ . $item['​Name'] . '</​b>'​ . chr(9) .  $item['​Class'] . '<​br>';​ + print ​'​Code:'​.$item['​code'] . chr(9) .  '<​b>'​ . $item['​name'] . '</​b>'​ . chr(9) .  $item['​class'] . '<​br>​Datafields:​<​br>';​ 
-      foreach ($item->​datafields->​data as $df ) { + foreach ($item->​datafields->​data as $df ) { 
-            print chr(9) . $df['​code'​] . ':'​ . $df['​content'​] . '<​br>';​ + print chr(9) . $df['​code'​] . ':'​ . $df['​content'​] . '<​br>';​ 
-      }+ }
 } }
 </​code>​ </​code>​
Linija 163: Linija 224:
  
 **IN** **IN**
-<​code>​ +<​code ​php
-$xmldata ​= '<'.'?xml version="​1.0"​ encoding="​UTF-8"?>​ +$url = 'https://​login.directo.ee/​xmlcore/​this_is_the_worlds_greatest_company/​xmlcore.asp'
-<​invoice ​AppKey="​1234567879012345678790" ​InvoiceNr="​123" ​+$key = '​2852DD553B767B463C807ADB36B5BB2F';​ 
 + 
 +$xmldata =  <<<​XML 
 +<?xml version="​1.0"​ encoding="​utf-8"?>​ 
 +<invoice InvoiceNr="​123" ​
       InvoiceDate="​2015-06-07"​ CustomerCode="​CUST001">​       InvoiceDate="​2015-06-07"​ CustomerCode="​CUST001">​
     <​lines>​     <​lines>​
Linija 171: Linija 236:
       <line ProductID="​FREESAMPLE"​ Quantity="​1"​ UnitPriceWoVAT="​0.00"/>​       <line ProductID="​FREESAMPLE"​ Quantity="​1"​ UnitPriceWoVAT="​0.00"/>​
     </​lines>​     </​lines>​
-</​invoice>​'+</​invoice>​ 
-  +XML
-$url = '​https://​login.directo.ee/​xmlcore/​this_is_the_worlds_greatest_company/​xmlcore.asp';​+
    
 $ch = curl_init();​ $ch = curl_init();​
 + 
 curl_setopt($ch,​ CURLOPT_HEADER,​ 0); curl_setopt($ch,​ CURLOPT_HEADER,​ 0);
 curl_setopt($ch,​ CURLOPT_RETURNTRANSFER,​ true); curl_setopt($ch,​ CURLOPT_RETURNTRANSFER,​ true);
Linija 181: Linija 247:
 curl_setopt($ch,​ CURLOPT_URL,​ $url ); curl_setopt($ch,​ CURLOPT_URL,​ $url );
 curl_setopt($ch,​ CURLOPT_POST,​ 1); curl_setopt($ch,​ CURLOPT_POST,​ 1);
-  +curl_setopt($ch,​ CURLOPT_POSTFIELDS,​ 'key='​.urlencode($key).'&​xmldata='​.urlencode($xmldata).'&​put=1&​what=invoice'​ ); 
-curl_setopt($ch,​ CURLOPT_POSTFIELDS,​ '​xmldata='​.urlencode($xmldata).'&​put=1&​what=invoice'​ ); +
 $result = curl_exec($ch);​ $result = curl_exec($ch);​
 +curl_close($ch);​
    
-print '<textarea cols=80 rows=10>'​ . $result . '</​textarea>';+echo '<pre>';
    
-curl_close($ch);+print '</​pre><​textarea cols=80 rows=10>'​ . $result . '</​textarea>'​;
  
 </​code>​ </​code>​
 +
 +=== 2.6. Postman ===
 +[[https://​www.postman.com/​|Postman]] aplinkos išvestį ir įvestį galima atsisiųsti [[https://​wiki.directo.ee/​_media/​et/​directo.demo.postman_collection.json|čia]],​ tada importuoti kaip kolekciją į Postman ir ten išbandyti.
 +
 +==== 3. Atsakymų kodai ====
 +
 +| **kodas** |**atsakymas/​Response**|**Paaiškinimas**|**Description**|
 +| 0 | Created |Dokumentas sėkmingai sukurtas |Document successfully created|
 +| 0 | Updated |Dokumentas sėkmingai atnaujintas (jei naudojamas automatinis dokumentų atnaujinimas)| Document successfully updated (if document update feature is used)|
 +| 0 | Confirmed|Dokumentas sėkmingai patvirtintas (jei naudojamas automatinis dokumentų patvirtinimas)|Document successfully confirmed (if auto document confirmation is used)|
 +|  | 
 +| 2 | Too secure location | Informuokite Directo|Please inform Directo|
 +| 3 | Database is moved to a new server. Takes about 15 minutes |Duomenų bazė perkelta į kitą serverį, prašome palaukti 15 minučių|Database has been transferred to another server, please wait 15 minutes|
 +| 4 | Database is closed - user count is zero |Duomenų bazė uždaryta | Database closed|
 +| 5 | Unauthorized | Neteisingas raktas ar neteisingai paduotas raktas (key)|Incorrect key or incorrect given key|
 +| 6 | Invalid user given | Neegzistuojantis darbuotojas| Non-existent user|
 +| 7 | Invalid IP source given | Neegzistuojantis arba apribotas darbuotojas|Non-existent or restricted user|
 +| 8 | Invalid xml given: ... | Klaidingas ar neteisingos struktūros XML (skaityti pranešimo tekstą)|Invalid,​ incorrectly structured XML (please read the message) | 
 +| 9 | Error on import: ... | Klaida susijusi su procedūra, informuokite Directo|An error is related to the procedure, please inform Directo|
 +| 11 | Duplicate | Toks dokumentas jau egzistuoja| Document already exists|
 +| 12 | Missing document identificator | Nenustatytas dokumento unikalus laukas|Document unique field has not been set |
 +| 13 | Missing customer code / Missing customer regno | Nenusiųstas arba nenustatytas pirkėjo unikalus laukas|Customer unique field has not been sent or set|
 +| 14 | Update not allowed | Negalima atnaujinti dokumento (greičiausiai su dokumentu yra kitų susijusių dokumentų)|Unable to update document (if document is commited or has related documents)| ​
 +|  | 
 +| 17 | Document insert failed |Dokumentas nesukurtas, nes nerasta numeracija (nenurodyta,​ nenustatyta,​ pasibaigusi,​...) |Document not created, this is because the number has not been found (not identified, not set up, expired...)|
 +| 18 | uniqueid field not found | Nenustatytas unikalus laukas, reikalingi nustatymai transporto parametruose|Unique field has not been set up, please check transports parameters| ​
 +| 19 | Removal of document not allowed | Dokumento ištrinti nepavyko (gali būti patvirtintas,​ yra susijusių dokumentų,​...)|Failed to delete document (can be confirmed, it has related documents,​...)|
 +| 29 | Not confirmed: ...| Dokumentas nepatvirtintas,​ jei naudojamas automatinis patvirtinimas,​ priežastis pateikta atsakyme|Document not confirmed, reason given in response|
 +|  | 
 +| 30 | Created ​ |Antrinis dokumentas sukurtas sėkmingai (susijusio dokumento: pirkėjo, apmokėjimo,​...)|Related document created successfully|
 +| 30 | Updated |Antrinis dokumentas atnaujintas sėkmingai (susijusio dokumento: pirkėjo, apmokėjimo,​...)|Related document updated successfully| ​
 +| 30 | Confirmed | Antrinis dokumentas patvirtintas sėkmingai (susijusio dokumento: pirkėjo, apmokėjimo,​...)|Related document confirmed successfully|
 +| 31 | ... not found |Klaidos priežastis nurodyta atsakyme (neįvykdyta būtina sąlyga norint sukurti susijusį dokumentą, pvz., klientas, apmokėjimas ir pan.) |The reason for the error is given in the response (prerequisite of creation of related document like customer, payment etc. not met)|
 +| 39 | ... not confirmed: ... | Antrinio dokumento patvirtinti nepavyko (jei naudojamas susijusio dokumento automatinis dokumento patvirtinimas),​ priežastis nurodyrta atsakyme|The related document could not be confirmed (if auto document confirmation for related document is in use), reason is given in the responde|
 +|  | 
 +| 90 | Another request is currently active |Šiuo metu yra vykdoma kita užklausa. Palaukite, kol ankstesnė užklausa bus atlikta prieš siunčiant sekančią užklausą.|Another request is currently active. Please wait until previous request is completed before sending another request.|
 +|  | 
 +| 99 | No processable XML data found for document: ​ ... |Informuokite Directo|Please inform Directo|
lt/xmlcore.1595918033.txt.gz · Keista: 2020/07/28 09:33 vartotojo aurelija