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
Next revision Both sides next revision
lt:xmlcore [2020/07/21 13:25]
robertas
lt: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://​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) ====+ 
 +==== 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://​login.directo.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://​login.directo.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.2. Informacijos siuntimas į Directo (IN) ====+
  
-Duomenys siunčiami naudojant POST metodą.+==== 2.3. Informacijos siuntimas į Directo (IN) ====
  
-Užpildomi trys formos kintamieji:​ +Duomenys siunčiami naudojant ''​form/​urlencoded''​ POST metodą.
-  * 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://​login.directo.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
Linija 55: 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 68: Linija 87:
 </​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 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 92: 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 102: 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.3. HTML forma ====+==== 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 133:
 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 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">​
Linija 129: Linija 151:
  
 ==== 2.4. Pavyzdys PHP kalba ==== ==== 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** **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 139: Linija 164:
 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 150: Linija 176:
    
 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 161: Linija 187:
  
 **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'
 +$key = '​2852DD553B767B463C807ADB36B5BB2F';​ 
 + 
 +$xmldata =  <<<​XML 
 +<?xml version="​1.0"​ encoding="​utf-8"?>​
 <invoice AppKey="​1234567879012345678790"​ InvoiceNr="​123" ​ <invoice AppKey="​1234567879012345678790"​ InvoiceNr="​123" ​
       InvoiceDate="​2015-06-07"​ CustomerCode="​CUST001">​       InvoiceDate="​2015-06-07"​ CustomerCode="​CUST001">​
Linija 169: Linija 199:
       <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 179: Linija 210:
 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>​
lt/xmlcore.txt · Keista: 2023/09/15 15:27 vartotojo jaroslav