|
|
(Nu s-au afișat 2 versiuni intermediare efectuate de același utilizator) |
Linia 1: |
Linia 1: |
− | 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»'''.
| + | {{critical | text = ATENTIE: Vectorul de initializare pentru AES este: <span class="code">285c02831e028bff.</span>}} |
− | | |
− | *Cererile sunt construite in format JSON:
| |
− | *Fiecare camp utilizat de API Livrari Online are un nume de forma f_nume_camp. De exemplu:
| |
− | | |
− | <source lang="php">
| |
− | {"loapi":
| |
− | {"f_login":0192022210,
| |
− | "f_request":"39795057696e61727a744",
| |
− | "f_secure":"BI6LOK68S\/1v8v+hKNjHiDo3lbZfACR19fYWPWDwBbzqe8bCu\/ThSy9F8=" } }
| |
− | </source>
| |
− | | |
− | *Numele campurilor este “'''case sesitive'''”.
| |
− | *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]
| |
− | | |
− | | |
− | | |
− | 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 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'''.
| |
− | | |
− | {{critical | text = ATENTIE: Vectorul de initializare pentru AES este: <span class="code">285c02831e028bff.</span>}} {{warning | text = ATENTIE: Vectorul de initializare pentru AES este: <span class="code">285c02831e028bff.</span>}} {{style | text = ATENTIE: Vectorul de initializare pentru AES este: <span class="code">285c02831e028bff.</span>}} {{notice | text = ATENTIE: Vectorul de initializare pentru AES este: <span class="code">285c02831e028bff.</span>}} | |
− | | |
− | <br/>Exemplu de functii in php care realizeaza incriptarile AES si RSA:
| |
− | | |
− | <source lang="php">
| |
− | 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)));
| |
− | }
| |
− | </source>
| |
− | | |
− | Campul '''f_secure''' contine '''cheia AES generata random''' incriptata cu '''algoritmul RSA''' si transformata in '''base64'''.
| |
− | | |
− | <source lang="php">
| |
− | //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));
| |
− | }
| |
− | </source>
| |
− | | |
− | '''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: <source lang="php">
| |
− | { "loapi":
| |
− | { "f_awb_collection":
| |
− | [ "AWB number 1", "AWB number n" ]
| |
− | }
| |
− | }
| |
− | </source>
| |
− | | |
− | Eroarea la inregistrarea livrarii in systemul Livrari Online va contine "status": "error" si mesajul de eroare explicit: <source lang="php">
| |
− | { "loapi":
| |
− | {"status": "error"
| |
− | , "message": "ERROR: 23503: insert violates foreign key constraint"
| |
− | }
| |
− | }
| |
− | </source>
| |