Cum se adauga o livrare/Cum se genereaza un AWB: Diferență între versiuni

De la wiki.livrarionline.ro
Salt la: navigare, căutare
m
 
(Nu s-au afișat 14 versiuni intermediare efectuate de alți 2 utilizatori)
Linia 1: Linia 1:
{{mbox | text = Some text.}}
+
Toate cererile API de inregistrare livrari online sunt trimise sistemului Livrari Online in formatul '''«application/x-www-form-urlencoded»''', iar raspunsul serviciului va fi in formatul '''«Content type: text/json»'''.
 +
 
  
Toate cererile API de inregistrare livrari online sunt trimise sistemului Livrari Online in formatul '''«application/x-www-form-urlencoded»''', iar raspunsul serviciului va fi in formatul '''«Content type: text/json»'''.
 
  
 
*Cererile sunt construite in format JSON:
 
*Cererile sunt construite in format JSON:
Linia 15: Linia 15:
 
*Numele campurilor este “'''case sesitive'''”.
 
*Numele campurilor este “'''case sesitive'''”.
 
*Stabiliti metoda '''POST''' pentru trimiterea datelor.
 
*Stabiliti metoda '''POST''' pentru trimiterea datelor.
*Trimiteti datele la adresa URL: [https://api.livrarionline.ro/Lobackend.asmx/GenerateAwb https://api.livrarionline.ro/Lobackend.asmx/GenerateAwb]
+
*Trimiteti datele la adresa URL: [http://api.livrarionline.ro/Lobackend.asmx/GenerateAwb https://api.livrarionline.ro/Lobackend.asmx/GenerateAwb]
  
  
  
Campul '''f_login''' reprezinta '''ID Comerciant''' din sistem [[http://wiki.livrarionline.ro/index.php?title=Interfata_comerciantilor#Info_API.2C_adica_implementarea_modulului_de_shipping_pe_platforma_on-line [Cum se obtin datele pentru API]]].
+
Campul '''f_login''' reprezinta '''ID Comerciant''' din sistem - [[Interfata comerciantilor#Info API.2C adica implementarea modulului de shipping pe platforma on-line|Cum se obtin datele pentru API]] .
  
 
Campul [['''f request''' contine datele despre livrare intr-un '''bloc JSON'''|'''f request''' contine datele despre livrare intr-un '''bloc JSON''']], incriptat cu '''algoritmul AES''' cu o '''cheie de securitate generata aleator''' pentru fiecare cerere trimisa la server; Rezultatul incriptarii '''AES''' este tranformat in '''base64''' si apoi in '''hexa'''.
 
Campul [['''f request''' contine datele despre livrare intr-un '''bloc JSON'''|'''f request''' contine datele despre livrare intr-un '''bloc JSON''']], incriptat cu '''algoritmul AES''' cu o '''cheie de securitate generata aleator''' pentru fiecare cerere trimisa la server; Rezultatul incriptarii '''AES''' este tranformat in '''base64''' si apoi in '''hexa'''.
  
{{mbox | type=critical | text = ATENTIE: Vectorul de initializare pentru AES este:&nbsp;<span style="color: #fff; background-color: #e5d30b; font-family: monospace, monospace; font-size: 1em; line-height: 1.2em; padding: 0.3em 1em;">285c02831e028bff.</span>}} {{mbox | type=critical | text = ATENTIE Vectorul de initializare pentru AES}} {{XSS alert|[[Utilizator:Bycolor.ro|Bycolor.ro]] ([[Discuție Utilizator:Bycolor.ro|discuție]]) 27 septembrie 2013 13:07 (EEST)}}
+
{{notice | text = ATENTIE: Vectorul de initializare pentru AES este:&nbsp;<span class="code">285c02831e028bff.</span>}}
<pre>{{tmbox
 
| text  =
 
Equal sign = and a start and end brace { } work fine as they are.
 
But here is a pipe {{!}} and two end braces }}.
 
And now a pipe and end braces |}}.
 
  
}}
 
</pre>
 
 
<br/>Exemplu de functii in php care realizeaza incriptarile AES si RSA:
 
<br/>Exemplu de functii in php care realizeaza incriptarile AES si RSA:
  

Versiunea curentă din 27 septembrie 2013 20:42

Toate cererile API de inregistrare livrari online sunt trimise sistemului Livrari Online in formatul «application/x-www-form-urlencoded», iar raspunsul serviciului va fi in formatul «Content type: text/json».


  • Cererile sunt construite in format JSON:
  • Fiecare camp utilizat de API Livrari Online are un nume de forma f_nume_camp. De exemplu:
{"loapi":
 {"f_login":0192022210,
 "f_request":"39795057696e61727a744",
 "f_secure":"BI6LOK68S\/1v8v+hKNjHiDo3lbZfACR19fYWPWDwBbzqe8bCu\/ThSy9F8=" } }


Campul f_login reprezinta ID Comerciant din sistem - Cum se obtin datele pentru API .

Campul f request contine datele despre livrare intr-un bloc JSON, incriptat cu algoritmul AES cu o cheie de securitate generata aleator pentru fiecare cerere trimisa la server; Rezultatul incriptarii AES este tranformat in base64 si apoi in hexa.

ATENTIE: Vectorul de initializare pentru AES este: 285c02831e028bff.


Exemplu de functii in php care realizeaza incriptarile AES si RSA:

 private function AESEnc()
 {
 require_once('Crypt/AES_Encryption.php');
 require_once('Crypt/padCrypt.php');

 $this->aes_key = md5(uniqid());
 $this->iv = '285c02831e028bff';
 $aes = new AES_Encryption($this->aes_key, $this->iv, "PKCS7", "cbc");
 $this->f_request = bin2hex(base64_encode($aes->encrypt($this->f_request)));
 }

Campul f_secure contine cheia AES generata random incriptata cu algoritmul RSA si transformata in base64.

 //criptez cheia AES cu RSA
 private function RSAEnc()
 {
 require_once('Crypt/RSA.php');
 $rsa = new Crypt_RSA();
 $rsa->loadKey($this->rsa_key);
 $rsa->setPublicKey();
 $rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
 $this->f_secure = base64_encode($rsa->encrypt($this->aes_key));
 }

Raspunsul sistemului Livrari Online este in formatul JSON.

Inregistrarea cu success a livrarii in systemul Livrari Online la raspunde cu un array de AWB-uri pentru fiecare pachet din livrari:

{ "loapi": 
 { "f_awb_collection": 
 [ "AWB number 1", "AWB number n" ] 
 } 
}

Eroarea la inregistrarea livrarii in systemul Livrari Online va contine "status": "error" si mesajul de eroare explicit:

{ "loapi": 
 {"status": "error"
 , "message": "ERROR: 23503: insert violates foreign key constraint" 
 } 
}