Cum să accesați tarifele mai multor transportatori de transport printr-un singur API (cu API-ul de livrare gratuită)

Publicat: 2017-02-27
Multi Carrier

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);