Come accedere alle tariffe di più corrieri di spedizione tramite un'unica API (con API di spedizione gratuita)
Pubblicato: 2017-02-27
Ultimo aggiornamento - 24 febbraio 2020
In questo articolo, imparerai come accedere a questa API e ottenere tariffe nazionali e internazionali per il tuo pacco da diversi corrieri come FedEx, UPS e USPS. Devi solo specificare l'indirizzo del mittente, l'indirizzo del destinatario, il tipo di servizio e i dettagli di autorizzazione per il corriere specifico come dati JSON crittografati.
Per utilizzare questa API, devi registrarti su http://shippingapi.storepep.com e ottenere una chiave API gratuita nella tua e-mail, devi solo fornire il tuo ID e-mail durante la registrazione.
GET : Elenco dei servizi disponibili
1: Ottieni tutti i servizi FedEx disponibili:
Comando : curl http://shippingapi.storepep.com/api/shippings/fedex-services
Uscita :
{
"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: Ottieni tutti i servizi UPS disponibili:
Comando : curl http://shippingapi.storepep.com/api/shippings/ups-services
Uscita :
{
'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: Ottieni tutti i servizi USPS disponibili:
Comando : curl http://shippingapi.storepep.com/api/shippings/usps-services
Uscita :
{
'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: Tariffe API
Per utilizzare l'API Rates prima dobbiamo comprendere la struttura di questa richiesta API
Nome | Descrizione |
---|---|
Common_Params | Contiene elementi interni comuni a tutte le compagnie di navigazione |
Common_Params >ambiente | per modalità test: sandbox, per modalità produzione: live |
Common_Params >emailid | ID e-mail registrato per questa API |
Common_Params >chiave | Chiave API ricevuta durante la registrazione |
Common_Params >host | Facoltativo (il tuo nome host) |
Common_Params >os | Opzionale (i dettagli del tuo sistema operativo) |
Common_Params >Shipper_PersonName | Nome del mittente |
Common_Params >Shipper_CompanyName | Compagnia del mittente |
Common_Params >Shipper_PhoneNumber | Numero di telefono del mittente |
Common_Params >Shipper_Address_StreetLines | Indirizzo del mittente |
Common_Params >Shipper_Address_City | Città del mittente |
Common_Params >Shipper_Address_StateOrProvinceCode | Codice provincia/stato mittente (*non più di due lettere) |
Common_Params >Shipper_Address_PostalCode | Codice postale del mittente |
Common_Params >Shipper_Address_CountryCode | Prefisso del mittente (*solo codice di due lettere) |
Common_Params >Destinatario_PersonName | Nome del destinatario |
Common_Params >Destinatario_CompanyName | Società del destinatario |
Common_Params >Recipient_PhoneNumber | Numero di telefono del destinatario |
Common_Params >Indirizzo_destinatario_StreetLines | Indirizzo del destinatario |
Common_Params >Indirizzo_destinatario_Città | Città del destinatario |
Common_Params >Indirizzo_destinatario_Stato o codice provincia | Codice stato/provincia del destinatario () |
Common_Params >Indirizzo_destinatario_Codice postale | Codice postale del destinatario |
Common_Params >Indirizzo_destinatario_Codice Paese | Prefisso internazionale del destinatario |
Common_Params >Indirizzo_destinatario_nome Paese | Nome del paese del destinatario |
Common_Params >Indirizzo_destinatario_Residenziale | Vero/Falso (è l'indirizzo di residenza del destinatario) |
Common_Params >fedex_key | Chiave ricevuta da FedEx |
Common_Params >fedex_password | Password Fedex |
Common_Params >fedex_account_number | Numero di conto FedEx |
Common_Params >fedex_meter_number | Numero del contatore FedEx |
Common_Params >ups_key | Chiave ricevuta da UPS |
Common_Params >ups_password | Password dell'UPS |
Common_Params >ups_account_number | Numero di conto UPS |
Common_Params >ups_username | Nome utente ricevuto da UPS |
Common_Params >usps_username | Nome utente USPS |
Richiesta_array | Questo oggetto contiene richieste per più aziende e più pacchetti |
Request_Array > Array di richiesta | Richieste multiple passate in un array |

Struttura della richiesta (come in Request_Array )
Nome | Descrizione |
---|---|
Richiesta | Contiene elementi interni comuni a tutti i vettori (compagnie di navigazione) |
Richiedi >id | Qualsiasi ID univoco per identificare questo pacchetto (ID di questo elemento dell'array) |
Richiedi >azienda | Nome del vettore di spedizione (es: 'fedex', 'ups', 'usps') per ottenere le tariffe da queste compagnie per questo pacchetto |
Richiedi >Unità_peso | Unità di peso (attualmente è supportato solo 'LB') |
Richiedi >TipoServizio | Codice di servizio per il servizio di corriere specifico per il quale è richiesta la tariffa. Fare riferimento alla documentazione dell'API dei vettori. |
Richiedi >Tipi di richiesta tariffa | "NESSUNO" per le tariffe specifiche dell'account e "LISTA" per le tariffe al dettaglio |
Richiedi >pacchetti |
Esempio JSON (prima della crittografia) :
{ "Common_Params": { "ambiente": "sabbiera", "emailid": "[email protected]", "chiave": "b52ee1f3ab8454589d6a9bd5018d60be", "host": "www.storepep.com", "os": "Windows NT 6.3 build 9600 (Windows 8.1 Home) i586", "Shipper_PersonName": "JOE CHRIST", "Shipper_CompanyName": "LA MIA AZIENDA", "Shipper_PhoneNumber": "0123456789", "Indirizzo_Shipper_StreetLines": "TRONCHETTO IN SETA", "Shipper_Address_City": "COLUMBUS", "Shipper_Address_StateOrProvinceCode": "OH", "Shipper_Address_PostalCode": "43218", "Shipper_Address_CountryCode": "USA", "Recipient_PersonName": "Nome destinatario", "Recipient_CompanyName": "XYZ", "Numero_telefono_destinatario": "0123456789", "Indirizzo_destinatario_StreetLines": "123 , XYZ ROAD", "Indirizzo_destinatario_città": "", "Recipient_Address_StateOrProvinceCode": "WA", "Recipient_Address_PostalCode": "98503", "Recipient_Address_CountryCode": "USA", "Recipient_Address_CountryName": "Stati Uniti (USA)", "Indirizzo_destinatario_residenziale": "falso", "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" }, "Richiesta_array": [ { "id": "53:1", "azienda": [ "usp" ], "Unità_peso": "LB", "ServiceType": "Priorità", "RateRequestTypes": "NESSUNO", "pacchi": [ { "peso": 2, "unità": "LBS", "Descrizione": "Il mio pacchetto", "nessun_di_pacchetti": 1, "Numero di sequenza": 1 } ] }, { "id": "53,37:1", "azienda": [ "fede" ], "Unità_peso": "LB", "ServiceType": "FEDEX_GROUND", "RateRequestTypes": "NESSUNO", "pacchi": [ { "peso": 1,5, "unità": "LBS", "Descrizione": "Il mio pacchetto", "nessun_di_pacchetti": 1, "Numero di sequenza": 3 } ] } ] }
Dopo aver generato un tale oggetto JSON, devi codificare questo oggetto utilizzando la tua chiave API univoca. Stiamo fornendo l'algoritmo di codifica di seguito, in modo che sia facile per te procedere.
Funzione PHP per codificare questa richiesta JSON
<?php codifica della funzione($chiave,$dati) { $ cifra = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $chiave256 = $chiave; $iv = '1156651@Xadapter'; mcrypt_generic_init($cifra, $chiave256, $iv); $cipherText256 = mcrypt_generic($cifra,$dati); mcrypt_generic_deinit($cifra); $cipherHexText256 =bin2hex($cipherText256); restituisce $cipherHexText256; } ?>
Quindi, inserisci questo oggetto codificato in un altro oggetto JSON (con due elementi, 'emailid' e 'data') e invialo al server.
<?php $richiesta=array(); $req['emailid']='[email protected]'; Il tuo ID e-mail registrato API $apikey='b52ee1f3ab8454589d6a9bd5018d60be'; La tua chiave API registrata $req['data']=$this->encode($apikey,$JSON_Req); $contenuto =json_encode($req); ?>
La richiesta JSON finale ha questo aspetto:
{"emailid":"[email protected]", "dati":"" }
Invia questo oggetto JSON al server.
Dai un'occhiata all'esempio seguente per capire come inviare una richiesta in PHP:
$ curl = curl_init("http://shippingapi.storepep.com/api/shippings/rates");
curl_setopt($ricciolo, CURLOPT_HEADER, falso);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Tipo di contenuto: applicazione/json"));
curl_setopt($ricciolo, CURLOPT_SSL_VERIFYPEER, falso);
curl_setopt($ricciolo, CURLOPT_SSL_VERIFYHOST, falso);
curl_setopt($ricciolo, CURLOPT_POST, vero);
curl_setopt($ricciolo, CURLOPT_POSTFIELDS, $contenuto ); // questo è il contenuto $ che abbiamo creato nel codice sopra
$json_response = curl_exec($ricciolo);
$stato = curl_getinfo($ricciolo, CURLINFO_HTTP_CODE);
curl_close($ricciolo);
$risposta = json_decode($json_response, vero);
print_r($risposta);