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 Both sides next revision
lt:xmlcore [2020/07/28 09:33]
aurelija
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 133: Linija 155:
  
 **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 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 152: 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 163: 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 171: 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 181: 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