Cum să accesați tarifele mai multor transportatori de transport printr-un singur API (cu API-ul de livrare gratuită)
Publicat: 2017-02-27
Ultima actualizare - 24 februarie 2020
În acest articol, veți înțelege cum să accesați acest API și să obțineți tarife interne și internaționale pentru pachetul dvs. de la diferiți transportatori, cum ar fi FedEx, UPS și USPS. Trebuie doar să specificați adresa expeditorului, adresa destinatarului, tipul de serviciu și detaliile de autorizare pentru transportatorul specific ca date JSON criptate.
Pentru a utiliza acest API, trebuie să vă înregistrați pe http://shippingapi.storepep.com și să primiți o cheie API gratuită în e-mail, trebuie doar să furnizați id-ul de e-mail în timpul înscrierii.
GET : Lista serviciilor disponibile
1: Obțineți toate serviciile FedEx disponibile:
Comandă : curl http://shippingapi.storepep.com/api/shippings/fedex-services
Ieșire :
{
"FEDEX_1_DAY_FREIGHT":"FEDEX 1 DAY FREIGHT",
"FEDEX_2_DAY":"FEDEX 2 DAY",
"FEDEX_2_DAY_AM":"FEDEX 2 DAY AM",
"FEDEX_2_DAY_FREIGHT":"FEDEX 2 DAY FREIGHT",
"FEDEX_3_DAY_FREIGHT":"FEDEX 3 DAY FREIGHT",
"FEDEX_DISTANCE_DEFERRED":"FEDEX DISTANCE DEFERRED",
"FEDEX_EXPRESS_SAVER":"FEDEX EXPRESS SAVER",
"FEDEX_FIRST_FREIGHT":"FEDEX FIRST FREIGHT",
"FEDEX_FREIGHT_ECONOMY":"FEDEX FREIGHT ECONOMY",
"FEDEX_FREIGHT_PRIORITY":"FEDEX FREIGHT PRIORITY",
"FEDEX_GROUND":"FEDEX GROUND",
"FEDEX_NEXT_DAY_AFTERNOON":"FEDEX NEXT DAY AFTERNOON",
"FEDEX_NEXT_DAY_EARLY_MORNING":"FEDEX NEXT DAY EARLY MORNING",
"FEDEX_NEXT_DAY_END_OF_DAY":"FEDEX NEXT DAY END OF DAY",
"FEDEX_NEXT_DAY_FREIGHT":"FEDEX NEXT DAY FREIGHT",
"FEDEX_NEXT_DAY_MID_MORNING":"FEDEX NEXT DAY MID MORNING",
"FIRST_OVERNIGHT":"FIRST OVERNIGHT",
"GROUND_HOME_DELIVERY":"GROUND HOME DELIVERY",
"EUROPE_FIRST_INTERNATIONAL_PRIORITY":"EUROPE FIRST INTERNATIONAL PRIORITY",
"INTERNATIONAL_ECONOMY":"INTERNATIONAL ECONOMY",
"INTERNATIONAL_ECONOMY_FREIGHT":"INTERNATIONAL ECONOMY FREIGHT",
"INTERNATIONAL_FIRST":"INTERNATIONAL FIRST",
"INTERNATIONAL_PRIORITY":"INTERNATIONAL PRIORITY",
"INTERNATIONAL_PRIORITY_FREIGHT":"INTERNATIONAL PRIORITY FREIGHT",
"PRIORITY_OVERNIGHT":"PRIORITY OVERNIGHT",
"SAME_DAY":"SAME DAY",
"SAME_DAY_CITY":"SAME DAY CITY",
"SMART_POST":"SMART POST",
"STANDARD_OVERNIGHT":"STANDARD OVERNIGHT"
}
2: Obțineți toate serviciile UPS disponibile:
Comandă : curl http://shippingapi.storepep.com/api/shippings/ups-services
Ieșire :
{
'01': 'UPS Next Day Air',
'02': 'UPS Second Day Air',
'03': 'UPS Ground',
'07': 'UPS Worldwide Express',
'08': 'UPS Worldwide Expedited',
'11': 'UPS Standard',
'12': 'UPS Three-Day Select',
'13': 'UPS Next Day Air Saver',
'14': 'UPS Next Day Air Early AM',
'54': 'UPS Worldwide Express Plus',
'59': 'UPS Second Day Air AM',
'65': 'UPS Saver',
'82': 'UPS Today Standard',
'83': 'UPS Today Dedicated Courier',
'84': 'UPS Today Intercity',
'85': 'UPS Today Express',
'86': 'UPS Today Express Saver',
'92': 'UPS SurePost (USPS) < 1lb', '93': 'UPS SurePost (USPS) > 1lb',
'94': 'UPS SurePost (USPS) BPM',
'95': 'UPS SurePost (USPS) Media'
}
3: Obțineți toate serviciile USPS disponibile:
Comandă : curl http://shippingapi.storepep.com/api/shippings/usps-services
Ieșire :
{
'First Class>LETTER':'First Class>LETTER',
'First Class>FLAT':'First Class>FLAT',
'First Class>PARCEL':'First Class>PARCEL',
'First Class>POSTCARD':'First Class>POSTCARD',
'First Class>PACKAGE SERVICE':'First Class>PACKAGE SERVICE',
'First Class Commercial>PACKAGE SERVICE':'First Class Commercial>PACKAGE SERVICE',
'First Class HFP Commercial>PACKAGE SERVICE':'First Class HFP Commercial>PACKAGE SERVICE',
'Priority':'Priority',
'Priority Commercial':'Priority Commercial',
'Priority Cpp':'Priority Cpp',
'Priority HFP Commercial':'Priority HFP Commercial',
'Priority HFP Cpp':'Priority HFP Cpp',
'Priority Mail Express':'Priority Mail Express',
'Priority Mail Express Commercial':'Priority Mail Express Commercial',
'Priority Mail Express Cpp':'Priority Mail Express Cpp',
'Priority Mail Express HFP':'Priority Mail Express HFP',
'Priority Mail Express HFP Commercial':'Priority Mail Express HFP Commercial',
'Standard Post':'Standard Post',
'Retail Ground':'Retail Ground',
'Media':'Media',
'Library':'Library',
'Online Plus':'Online Plus',
'12':'Global Express Guaranteed',
'1':'Priority Mail Express International',
'2':'Priority Mail International',
'9':'Priority Mail International Medium Flat Rate Box',
'11':'Priority Mail International Large Flat Rate Box',
'16':'Priority Mail International Small Flat Rate Box',
'15':'First Class Package International Service'
}
POST: Rates API
Pentru a folosi Rates API mai întâi trebuie să înțelegem structura acestei solicitări API
Nume | Descriere |
---|---|
Common_Params | Conține elemente interioare comune tuturor companiilor de transport maritim |
Common_Params >mediu | pentru modul de testare: sandbox, pentru modul de producție: live |
Common_Params >emailid | Id-ul de e-mail înregistrat pentru acest API |
Common_Params >cheie | Cheia API primită în timpul înregistrării |
Common_Params >gazdă | Opțional (numele dvs. de gazdă) |
Common_Params >os | Opțional (detaliile sistemului dvs. de operare) |
Common_Params >Shipper_PersonName | Numele expeditorului |
Common_Params >Shipper_CompanyName | Compania expeditorului |
Common_Params >Shipper_PhoneNumber | Numărul de telefon al expeditorului |
Common_Params >Shipper_Address_StreetLines | Adresa stradală a expeditorului |
Common_Params >Shipper_Address_City | Orașul expeditorului |
Common_Params >Shipper_Address_StateOrProvinceCode | Codul de stat/provincie al expeditorului (*nu mai mult de două litere) |
Common_Params >Shipper_Address_PostalCode | Codul poștal al expeditorului |
Common_Params >Shipper_Address_CountryCode | Codul de țară al expeditorului (*doar cod de două litere) |
Common_Params >Recipient_PersonName | Numele destinatarului |
Common_Params >Recipient_CompanyName | Firma destinatarului |
Common_Params >Recipient_PhoneNumber | Numărul de telefon al destinatarului |
Common_Params >Recipient_Address_StreetLines | Adresa stradală a destinatarului |
Common_Params >Recipient_Address_City | Orașul destinatarului |
Common_Params >Recipient_Address_StateOrProvinceCode | Codul de stat/provincie al destinatarului () |
Common_Params >Recipient_Address_PostalCode | Codul poștal al destinatarului |
Common_Params >Recipient_Address_CountryCode | Codul de țară al destinatarului |
Common_Params >Recipient_Address_CountryName | Numele țării destinatarului |
Common_Params >Recipient_Address_Residential | Adevărat/Fals (este adresa de domiciliu a destinatarului) |
Common_Params >fedex_key | Cheie primită de la FedEx |
Common_Params >fedex_password | Parola FedEx |
Common_Params >fedex_account_number | Numărul de cont FedEx |
Common_Params >fedex_meter_number | Numărul contorului FedEx |
Common_Params >ups_key | Cheia primită de la UPS |
Common_Params >ups_password | parola UPS |
Common_Params >ups_account_number | Numărul de cont UPS |
Common_Params >ups_username | Nume de utilizator primit de la UPS |
Common_Params >usps_username | nume de utilizator USPS |
Request_Array | Acest obiect conține cereri pentru mai multe companii și mai multe pachete |
Request_Array > Matrice de solicitare | Mai multe cereri transmise într-o singură matrice |

Structura cererii (ca în Request_Array )
Nume | Descriere |
---|---|
Cerere | Conține elemente interioare comune tuturor transportatorilor (companii de transport maritim) |
Solicitare >id | Orice ID unic pentru a identifica acest pachet (ID-ul acestui element de matrice) |
Solicitare >companie | Numele transportatorului (de exemplu: „fedex”, „ups”, „usps”) pentru a obține tarife de la aceste companii pentru acest pachet |
Solicitare >Unități_greutate | Unitatea de greutate (în prezent este acceptată doar „LB”) |
Solicitare >ServiceType | Cod de serviciu pentru serviciul de transport specific pentru care este necesară tariful. Consultați documentația API a operatorilor. |
Solicitare >RateRequestTypes | „NONE” pentru tarifele specifice contului și „LIST” pentru tarifele cu amănuntul |
Solicitați >pachete |
Exemplu de JSON (înainte de criptare) :
{ „Common_Params”: { „mediu”: „cutie cu nisip”, "emailid": "[email protected]", „cheie”: „b52ee1f3ab8454589d6a9bd5018d60be”, "gazdă": "www.storepep.com", "os": "Windows NT 6.3 build 9600 (Windows 8.1 Home) i586", „Shipper_PersonName”: „JOE CHRIST”, "Shipper_CompanyName": "COMPANYA MEA", „Shipper_PhoneNumber”: „0123456789”, „Shipper_Address_StreetLines”: „SILK BOARD”, „Shipper_Address_City”: „COLUBUS”, „Shipper_Address_StateOrProvinceCode”: „OH”, „Shipper_Address_PostalCode”: „43218”, „Shipper_Address_CountryCode”: „SUA”, "Recipient_PersonName": "Numele destinatarului", „Recipient_CompanyName”: „XYZ”, „Recipient_PhoneNumber”: „0123456789”, „Recipient_Address_StreetLines”: „123 , XYZ ROAD”, „Recipient_Address_City”: „”, „Recipient_Address_StateOrProvinceCode”: „WA”, „Recipient_Address_PostalCode”: „98503”, „Recipient_Address_CountryCode”: „SUA”, „Recipient_Address_CountryName”: „Statele Unite (SUA)”, „Recipient_Address_Residential”: „fals”, "fedex_key": "UzxdpT3cy7UDF3Vl", "fedex_password": "I1IWFyvBz34QnJOwqZyBn9oll", "fedex_account_number": "110087444", "fedex_meter_number": "128768444", "ups_key": "DCEF2E428E10BBB7", "ups_password": "Q1w2e3r4t5o5", "ups_account_number": "189Y5A", "ups_username": "iahtai21", "usps_username": "806XDDAP3116", "usps_password": "516GD04CJ256" }, „Request_Array”: [ { "id": "53:1", "companie": [ "usps" ], "Weight_Units": "LB", „ServiceType”: „Prioritate”, „RateRequestTypes”: „NIMIC”, „pachete”: [ { „greutate”: 2, "unitate": "LBS", „Descriere”: „Pachetul meu”, „nr_pachete”: 1, „SequenceNumber”: 1 } ] }, { "id": "53,37:1", "companie": [ "fedex" ], "Weight_Units": "LB", „ServiceType”: „FEDEX_GROUND”, „RateRequestTypes”: „NIMIC”, „pachete”: [ { „greutate”: 1,5, "unitate": "LBS", „Descriere”: „Pachetul meu”, „nr_pachete”: 1, „SequenceNumber”: 3 } ] } ] }
După generarea unui astfel de obiect JSON, trebuie să codificați acest obiect folosind cheia API unică. Vă oferim algoritmul de codificare mai jos, astfel încât să vă fie ușor să continuați.
Funcție PHP pentru a codifica această solicitare JSON
<?php codificare funcție($key,$data) { $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $key256 = $key; $iv = '1156651@Xadapter'; mcrypt_generic_init($cipher, $key256, $iv); $cipherText256 = mcrypt_generic($cipher,$date ); mcrypt_generic_deinit($cipher); $cipherHexText256 =bin2hex($cipherText256); returnează $cipherHexText256; } ?>
Apoi, puneți acest obiect codificat într-un alt obiect JSON (cu două elemente, „emailid” și „data”) și trimiteți-l la server.
<?php $req=matrice(); $req['emailid']='[email protected]'; ID-ul dvs. de e-mail înregistrat în API $apikey='b52ee1f3ab8454589d6a9bd5018d60be'; CHEIA dumneavoastră înregistrată API $req['data']=$this->encode($apikey,$JSON_Req); $conținut =json_encode($req); ?>
Solicitarea JSON finală arată astfel:
{"emailid":"[email protected]", "date":"" }
Trimiteți acest obiect JSON la server.
Aruncați o privire la exemplul de mai jos pentru a înțelege cum să trimiteți cererea în PHP:
$curl = curl_init("http://shippingapi.storepep.com/api/shippings/rates");
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, adevărat);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Tipul conținut: aplicație/json"));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POST, adevărat);
curl_setopt($curl, CURLOPT_POSTFIELDS, $conținut ); // acesta este $conținutul pe care l-am creat în codul de mai sus
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$răspuns = json_decode($json_response, adevărat);
print_r($răspuns);