Cum se adauga o livrare/Cum se genereaza un AWB: Diferență între versiuni
(Nu s-au afișat 8 versiuni intermediare efectuate de alți 2 utilizatori) | |||
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»'''. | 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 13: | 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: [ | + | *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 [[ | + | 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'''. | ||
− | {{ | + | {{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: | <br/>Exemplu de functii in php care realizeaza incriptarile AES si RSA: |
Versiunea curentă din 27 septembrie 2013 21: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=" } }
- Numele campurilor este “case sesitive”.
- Stabiliti metoda POST pentru trimiterea datelor.
- Trimiteti datele la adresa URL: https://api.livrarionline.ro/Lobackend.asmx/GenerateAwb
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.
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"
}
}