Zugriff auf Tarife mehrerer Spediteure über eine einzige API (mit kostenloser Versand-API)
Veröffentlicht: 2017-02-27
Zuletzt aktualisiert - 24. Februar 2020
In diesem Artikel erfahren Sie, wie Sie auf diese API zugreifen und nationale und internationale Tarife für Ihr Paket von verschiedenen Versanddienstleistern wie FedEx, UPS und USPS erhalten. Sie müssen lediglich die Absenderadresse, die Empfängeradresse, die Art des Dienstes und die Autorisierungsdetails für den jeweiligen Spediteur als verschlüsselte JSON-Daten angeben.
Um diese API zu verwenden, müssen Sie sich auf http://shippingapi.storepep.com registrieren und erhalten einen kostenlosen API-Schlüssel in Ihrer E-Mail. Sie müssen nur Ihre E-Mail-ID bei der Anmeldung angeben.
GET : Liste der verfügbaren Dienste
1: Holen Sie sich alle verfügbaren FedExServices:
Befehl : curl http://shippingapi.storepep.com/api/shippings/fedex-services
Ausgang :
{
"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: Holen Sie sich alle verfügbaren UPS Services:
Befehl : curl http://shippingapi.storepep.com/api/shippings/ups-services
Ausgang :
{
'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: Holen Sie sich alle verfügbaren USPS-Dienste:
Befehl : curl http://shippingapi.storepep.com/api/shippings/usps-services
Ausgang :
{
'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: Raten-API
Um die Rates API verwenden zu können, müssen wir zuerst die Struktur dieser API-Anforderung verstehen
Name | Beschreibung |
---|---|
Common_Params | Enthält innere Elemente, die allen Reedereien gemeinsam sind |
Common_Params > Umgebung | für Testmodus: Sandbox, für Produktionsmodus: Live |
Common_Params >E-Mail-ID | Für diese API registrierte E-Mail-ID |
Common_Params >Schlüssel | API-Schlüssel, den Sie während der Registrierung erhalten haben |
Common_Params >host | Optional (Ihr Hostname) |
Common_Params >os | Optional (Ihre Betriebssystemdetails) |
Common_Params >Shipper_PersonName | Name des Absenders |
Common_Params >Shipper_CompanyName | Firma des Absenders |
Common_Params >Shipper_PhoneNumber | Telefonnummer des Absenders |
Common_Params >Shipper_Address_StreetLines | Adresse des Absenders |
Common_Params >Shipper_Address_City | Stadt des Absenders |
Common_Params >Shipper_Address_StateOrProvinceCode | Bundesland-/Provinzcode des Absenders (*nicht mehr als zwei Buchstaben) |
Common_Params >Shipper_Address_PostalCode | Postleitzahl des Absenders |
Common_Params >Shipper_Address_CountryCode | Ländercode des Absenders (*nur zweistelliger Code) |
Common_Params >Empfänger_PersonName | Name des Empfängers |
Common_Params >Name des Empfängerunternehmens | Firma des Empfängers |
Common_Params >Recipient_PhoneNumber | Telefonnummer des Empfängers |
Common_Params >Recipient_Address_StreetLines | Adresse des Empfängers |
Common_Params >Recipient_Address_City | Stadt des Empfängers |
Common_Params >Recipient_Address_StateOrProvinceCode | Bundesland/Provinzcode des Empfängers () |
Common_Params >Recipient_Address_PostalCode | Postleitzahl des Empfängers |
Common_Params >Recipient_Address_CountryCode | Ländercode des Empfängers |
Common_Params >Recipient_Address_CountryName | Ländername des Empfängers |
Common_Params >Recipient_Address_Residential | Richtig/Falsch (ist die Wohnadresse des Empfängers) |
Common_Params >fedex_key | Schlüssel von FedEx erhalten |
Common_Params >fedex_passwort | FedEx-Passwort |
Common_Params >fedex_account_number | FedEx-Kontonummer |
Common_Params >fedex_meter_number | FedEx Zählernummer |
Common_Params >ups_key | Schlüssel von UPS erhalten |
Common_Params >ups_passwort | USV-Passwort |
Common_Params >ups_account_number | UPS Kundennummer |
Common_Params >ups_Benutzername | Von UPS erhaltener Benutzername |
Common_Params > usps_Benutzername | USPS-Benutzername |
Request_Array | Dieses Objekt enthält Anforderungen für mehrere Unternehmen und mehrere Pakete |
Request_Array > Array der Anfrage | Mehrere Anforderungen werden in einem Array übergeben |

Struktur der Anfrage (wie in Request_Array )
Name | Beschreibung |
---|---|
Anfrage | Enthält innere Elemente, die allen Spediteuren (Reedereien) gemeinsam sind |
Anfrage >id | Jede eindeutige ID zur Identifizierung dieses Pakets (ID dieses Array-Elements) |
Anfrage >Firma | Name des Spediteurs (z. B. „fedex“, „ups“, „usps“), um Preise von diesen Unternehmen für dieses Paket zu erhalten |
Anfrage >Weight_Units | Gewichtseinheit (derzeit wird nur 'LB' unterstützt) |
Anforderung > Diensttyp | Dienstcode für den spezifischen Dienst des Spediteurs, für den der Tarif erforderlich ist. Siehe die API-Dokumentation der Transportunternehmen. |
Anfrage >RateRequestTypes | „NONE“ für kontospezifische Tarife und „LIST“ für Einzelhandelstarife |
>Pakete anfordern |
Beispiel-JSON (vor der Verschlüsselung) :
{ "Common_Params": { "Umgebung": "Sandkasten", "emailid": "[email protected]", "Schlüssel": "b52ee1f3ab8454589d6a9bd5018d60be", "host": "www.storepep.com", "os": "Windows NT 6.3 Build 9600 (Windows 8.1 Home) i586", "Shipper_PersonName": "JOE CHRIST", "Shipper_CompanyName": "MEIN UNTERNEHMEN", "Shipper_PhoneNumber": "0123456789", "Shipper_Address_StreetLines": "Seidenkarton", "Shipper_Address_City": "COLUMBUS", "Shipper_Address_StateOrProvinceCode": "OH", "Shipper_Address_PostalCode": "43218", "Shipper_Address_CountryCode": "USA", "Recipient_PersonName": "Name des Empfängers", "Recipient_CompanyName": "XYZ", "Recipient_PhoneNumber": "0123456789", "Recipient_Address_StreetLines": "123 , XYZ-STRASSE", "Empfänger_Adresse_Stadt": "", "Recipient_Address_StateOrProvinceCode": "WA", "Recipient_Address_PostalCode": "98503", "Recipient_Address_CountryCode": "USA", "Recipient_Address_CountryName": "Vereinigte Staaten (USA)", "Recipient_Address_Residential": "falsch", "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" }, "Anfrage_Array": [ { "id": "53:1", "Gesellschaft": [ "usps" ], "Weight_Units": "LB", "ServiceType": "Priorität", "RateRequestTypes": "NONE", "Pakete": [ { "Gewicht": 2, "Einheit": "LBS", "Beschreibung": "Mein Paket", "no_of_packages": 1, "Sequenznummer": 1 } ] }, { "id": "53,37:1", "Gesellschaft": [ "fedex" ], "Weight_Units": "LB", "ServiceType": "FEDEX_GROUND", "RateRequestTypes": "NONE", "Pakete": [ { "Gewicht": 1,5, "Einheit": "LBS", "Beschreibung": "Mein Paket", "no_of_packages": 1, "Sequenznummer": 3 } ] } ] }
Nachdem Sie ein solches JSON-Objekt generiert haben, müssen Sie dieses Objekt mit Ihrem eindeutigen API-Schlüssel codieren. Wir stellen den Codierungsalgorithmus unten bereit, damit Sie leicht fortfahren können.
PHP-Funktion zum Codieren dieser JSON-Anfrage
<?php Funktion encode($key,$data) { $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $key256 = $schlüssel; $iv = '1156651@Xadapter'; mcrypt_generic_init($chiffre, $key256, $iv); $cipherText256 = mcrypt_generic($cipher,$data); mcrypt_generic_deinit($chiffre); $cipherHexText256 =bin2hex($cipherText256); gebe $cipherHexText256 zurück; } ?>
Fügen Sie als Nächstes dieses codierte Objekt in ein anderes JSON-Objekt (mit zwei Elementen, „emailid“ und „data“) ein und senden Sie es an den Server.
<?php $req=array(); $req['emailid']='[email protected]'; Ihre API-registrierte E-Mail-ID $apikey='b52ee1f3ab8454589d6a9bd5018d60be'; Ihr API-registrierter SCHLÜSSEL $req['data']=$this->encode($apikey,$JSON_Req); $content =json_encode($req); ?>
Die endgültige JSON-Anforderung sieht folgendermaßen aus:
{"emailid":"[email protected]", "Daten":"" }
Senden Sie dieses JSON-Objekt an den Server.
Sehen Sie sich das folgende Beispiel an, um zu verstehen, wie eine Anfrage in PHP gesendet wird:
$curl = curl_init("http://shippingapi.storepep.com/api/shippings/rates");
curl_setopt($curl, CURLOPT_HEADER, falsch);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, wahr);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/json"));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POST, wahr);
curl_setopt($curl, CURLOPT_POSTFIELDS, $content ); // Dies ist der $content, den wir oben im Code erstellt haben
$json_response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($locke);
$response = json_decode($json_response, true);
print_r($antwort);