Tek Bir API Üzerinden Birden Fazla Gönderi Taşıyıcısının Fiyatlarına Nasıl Erişilir (Ücretsiz Gönderi API'si ile)
Yayınlanan: 2017-02-27
Son güncelleme - 24 Şubat 2020
Bu makalede, bu API'ye nasıl erişeceğinizi ve paketiniz için FedEx, UPS ve USPS gibi farklı nakliye şirketlerinden yurt içi ve yurt dışı fiyatları nasıl alacağınızı öğreneceksiniz. Şifrelenmiş bir JSON verisi olarak gönderici adresini, alıcı adresini, hizmet türünü ve belirli taşıyıcı için yetkilendirme ayrıntılarını belirtmeniz yeterlidir.
Bu API'yi kullanmak için http://shippingapi.storepep.com'a kaydolmanız ve e-postanıza ücretsiz bir API anahtarı almanız yeterlidir, kayıt sırasında e-posta kimliğinizi sağlamanız yeterlidir.
GET : Mevcut Hizmetlerin Listesi
1: Mevcut Tüm FedExServices'i Alın:
Komut : curl http://shippingapi.storepep.com/api/shippings/fedex-services
çıktı :
{
"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: Mevcut Tüm UPS Hizmetlerini Alın:
Komut : kıvrılma http://shippingapi.storepep.com/api/shippings/ups-services
çıktı :
{
'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: Mevcut Tüm USPS Hizmetlerini Alın:
Komut : kıvrılma http://shippingapi.storepep.com/api/shippings/usps-services
çıktı :
{
'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: Fiyatlar API'sı
Rates API'yi kullanmak için önce bu API isteğinin yapısını anlamamız gerekir.
İsim | Tanım |
---|---|
Common_Params | Tüm nakliye şirketlerinde ortak olan iç unsurları içerir |
Common_Params >ortam | test modu için: korumalı alan, üretim modu için: canlı |
Common_Params >e-posta kimliği | Bu API için kayıtlı e-posta kimliği |
Common_Params > anahtarı | Kayıt sırasında alınan API Anahtarı |
Common_Params > ana bilgisayar | İsteğe bağlı (ana bilgisayar adınız) |
Common_Params > işletim sistemi | İsteğe bağlı (işletim sistemi ayrıntılarınız) |
Common_Params > Gönderici_KişiAdı | gönderenin adı |
Common_Params >Shipper_CompanyName | gönderenin şirketi |
Common_Params > Gönderici_Telefon Numarası | gönderenin telefon numarası |
Common_Params >Shipper_Address_StreetLines | Gönderenin sokak adresi |
Common_Params >Shipper_Address_City | gönderenin şehri |
Common_Params >Shipper_Address_StateOrProvinceCode | Gönderenin eyalet/il kodu (*iki harften fazla değil) |
Common_Params >Shipper_Address_PostalCode | gönderenin posta kodu |
Common_Params > Gönderici_Adresi_ÜlkeKodu | Gönderenin ülke kodu (*yalnızca iki harfli kod) |
Common_Params >Alıcı_KişiAdı | Alıcının ismi |
Common_Params >Alıcı_ŞirketAdı | alıcının şirketi |
Common_Params >Alıcı_Telefon Numarası | Alıcının telefon numarası |
Common_Params >Recipient_Address_StreetLines | Alıcının sokak adresi |
Common_Params >Recipient_Address_City | alıcının şehri |
Common_Params >Recipient_Address_StateOrProvinceCode | Alıcının eyalet/il kodu () |
Common_Params >Recipient_Address_PostalCode | Alıcının posta kodu |
Common_Params >Alıcı_Adres_ÜlkeKodu | Alıcının ülke kodu |
Common_Params >Alıcı_Adresi_ÜlkeAdı | Alıcının ülke adı |
Common_Params >Recipient_Address_Residential | Doğru/Yanlış (alıcının ikamet adresidir) |
Common_Params > fedex_key | FedEx'ten alınan anahtar |
Common_Params > fedex_password | FedEx şifresi |
Common_Params > fedex_hesap_numarası | FedEx hesap numarası |
Common_Params > fedex_meter_number | FedEx sayaç numarası |
Common_Params > ups_key | UPS'ten alınan anahtar |
Common_Params >ups_password | UPS şifresi |
Common_Params >ups_account_number | UPS hesap numarası |
Common_Params >ups_username | UPS'ten alınan kullanıcı adı |
Common_Params >usps_username | USPS kullanıcı adı |
request_Array | Bu nesne, birden çok şirket ve birden çok paket için istekler içeriyor |
Request_Array > İstek Dizisi | Bir dizide birden çok istek geçti |

İsteğin Yapısı ( Request_Array'de olduğu gibi)
İsim | Tanım |
---|---|
Rica etmek | Tüm taşıyıcılar (nakliye şirketleri) için ortak olan iç unsurları içerir |
istek >kimlik | Bu paketi tanımlayan herhangi bir benzersiz kimlik (bu dizi öğesinin kimliği) |
Talep > şirket | Bu paket için bu şirketlerden ücret almak için nakliye firmasının adı (örneğin: 'fedex', 'ups', 'usps') |
Talep >Ağırlık_Birimleri | Ağırlık birimi (şu anda yalnızca 'LB' desteklenmektedir) |
İstek >Hizmet Türü | Ücretin gerekli olduğu belirli taşıyıcı hizmeti için hizmet kodu. Taşıyıcıların API belgelerine bakın. |
İstek >OranTalepTürleri | Hesaba özel oranlar için 'YOK' ve perakende fiyatlar için 'LİSTE' |
İstek >paketler |
Örnek JSON (Şifrelemeden Önce) :
{ "Common_Params": { "ortam": "korumalı alan", "emailid": "[email protected]", "anahtar": "b52ee1f3ab8454589d6a9bd5018d60be", "host": "www.storepep.com", "os": "Windows NT 6.3 build 9600 (Windows 8.1 Home) i586", "Shipper_PersonName": "JOE CHRIST", "Gönderen_ŞirketAdı": "ŞİRKETİM", "Shipper_PhoneNumber": "0123456789", "Shipper_Address_StreetLines": "İPEK PANO", "Shipper_Address_City": "COLUMBUS", "Shipper_Address_StateOrProvinceCode": "OH", "Shipper_Address_PostalCode": "43218", "Gönderen_Adres_ÜlkeKodu": "ABD", "Alıcı_KişiAdı": "Alıcı Adı", "Alıcı_ŞirketAdı": "XYZ", "Alıcı_TelefonNumarası": "0123456789", "Recipient_Address_StreetLines": "123 , XYZ YOLU", "Alıcı_Adres_Şehir": "", "Alıcı_Adres_EyaletVeyaİlKodu": "WA", "Alıcı_Adres_PostaKodu": "98503", "Alıcı_Adres_ÜlkeKodu": "ABD", "Alıcı_Adres_ÜlkeAdı": "Amerika Birleşik Devletleri (ABD)", "Alıcı_Adres_Konut": "yanlış", "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": [ { "kimlik": "53:1", "şirket": [ "usp" ], "Ağırlık_Birimleri": "LB", "Hizmet Türü": "Öncelik", "RateRequestTypes": "YOK", "paketler": [ { "ağırlık": 2, "birim": "LBS", "Açıklama": "Paketim", "no_of_packages": 1, "Sıra Numarası": 1 } ] }, { "kimlik": "53,37:1", "şirket": [ "Fedex" ], "Ağırlık_Birimleri": "LB", "ServiceType": "FEDEX_GROUND", "RateRequestTypes": "YOK", "paketler": [ { "ağırlık": 1.5, "birim": "LBS", "Açıklama": "Paketim", "no_of_packages": 1, "Sıra Numarası": 3 } ] } ] }
Böyle bir JSON nesnesi oluşturduktan sonra, bu nesneyi benzersiz API Anahtarınızı kullanarak kodlamanız gerekir. Devam etmeniz kolay olsun diye aşağıda Kodlama Algoritmasını sunuyoruz.
Bu JSON isteğini kodlamak için PHP işlevi
<?php fonksiyon kodlaması($anahtar,$veri) { $şifre = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $anahtar256 = $anahtar; $iv = '1156651@Xadapter'; mcrypt_generic_init($şifre, $key256, $iv); $cipherText256 = mcrypt_generic($şifre,$veri); mcrypt_generic_deinit($şifre); $cipherHexText256 =bin2hex($cipherText256); $cipherHexText256 döndür; } ?>
Ardından, bu kodlanmış nesneyi başka bir JSON nesnesine ('emailid' ve 'data' olmak üzere iki öğeyle) koyun ve sunucuya gönderin.
<?php $gerekçe=dizi(); $req['emailid']='[email protected]'; API Kayıtlı E-posta Kimliğiniz $apikey='b52ee1f3ab8454589d6a9bd5018d60be'; API Kayıtlı Anahtarınız $req['data']=$this->encode($apikey,$JSON_Req); $içerik =json_encode($gerekli); ?>
Son JSON isteği şöyle görünür:
{"emailid":"[email protected]", "veri":"" }
Bu JSON nesnesini sunucuya gönderin.
PHP'de nasıl istek gönderileceğini anlamak için aşağıdaki örneğe bir göz atın:
$curl = curl_init("http://shippingapi.storepep.com/api/shippings/rates");
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("İçerik türü: uygulama/json"));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $içerik ); // bu, yukarıdaki kodda oluşturduğumuz $içeriğidir
$json_response = curl_exec($curl);
$durum = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($kıvırma);
$yanıt = json_decode($json_response, true);
print_r($cevap);