Cara Mengakses Tarif Beberapa Operator Pengiriman melalui API Tunggal (Dengan API Pengiriman Gratis)

Diterbitkan: 2017-02-27
Multi Carrier

Terakhir diperbarui - 24 Februari 2020

Dalam artikel ini, Anda akan memahami cara mengakses API ini dan mendapatkan tarif domestik dan internasional untuk paket Anda dari berbagai operator pengiriman seperti FedEx, UPS, dan USPS. Anda hanya perlu menentukan alamat pengirim, alamat penerima, jenis layanan, dan detail otorisasi untuk operator tertentu sebagai data JSON terenkripsi.

Untuk menggunakan API ini, Anda perlu mendaftar di http://shippingapi.storepep.com dan mendapatkan kunci API gratis di email Anda, Anda hanya perlu memberikan id email Anda saat mendaftar.

DAPATKAN : Daftar Layanan yang Tersedia

1: Dapatkan Semua Layanan FedEx yang Tersedia:
Perintah : curl http://shippingapi.storepep.com/api/shippings/fedex-services

keluaran :
{
"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: Dapatkan Semua Layanan UPS yang Tersedia:
Perintah : curl http://shippingapi.storepep.com/api/shippings/ups-services
keluaran :

{
'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: Dapatkan Semua Layanan USPS yang Tersedia:
Perintah : curl http://shippingapi.storepep.com/api/shippings/usps-services
keluaran :

{
'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'
}

POSTING: Tarif API

Untuk menggunakan Rates API terlebih dahulu kita perlu memahami struktur permintaan API ini

Nama Keterangan
Common_Params Berisi elemen dalam yang umum untuk semua perusahaan pelayaran
Common_Params >lingkungan untuk mode uji: kotak pasir, untuk mode produksi: langsung
Common_Params >emailid Id email terdaftar untuk API ini
Common_Params >kunci Kunci API diterima saat pendaftaran
Common_Params >host Opsional (nama host Anda)
Common_Params >os Opsional (detail sistem operasi Anda)
Common_Params >Shipper_PersonName Nama pengirim
Common_Params >Shipper_CompanyName Perusahaan pengirim
Common_Params >Pengirim_Nomor Telepon Nomor telepon pengirim
Common_Params >Shipper_Address_StreetLines Alamat jalan pengirim
Common_Params >Shipper_Address_City kota pengirim
Common_Params >Shipper_Address_StateOrProvinceCode Kode negara bagian/provinsi pengirim (*tidak lebih dari dua huruf)
Common_Params >Shipper_Address_PostalCode Kode pos pengirim
Common_Params >Shipper_Address_CountryCode Kode negara pengirim (*hanya dua kode huruf)
Common_Params >Recipient_PersonName Nama Penerima
Common_Params >Recipient_CompanyName Perusahaan penerima
Common_Params >Recipient_PhoneNumber Nomor telepon penerima
Common_Params >Recipient_Address_StreetLines Alamat jalan penerima
Common_Params >Recipient_Address_City kota penerima
Common_Params >Recipient_Address_StateOrProvinceCode Kode negara bagian/provinsi penerima ()
Common_Params >Recipient_Address_PostalCode Kode pos penerima
Common_Params >Recipient_Address_CountryCode Kode negara penerima
Common_Params >Recipient_Address_CountryName Nama negara penerima
Common_Params >Recipient_Address_Residential Benar/Salah (adalah alamat tempat tinggal penerima)
Common_Params >fedex_key Kunci diterima dari FedEx
Common_Params > fedex_password Kata sandi FedEx
Common_Params >fedex_account_number Nomor akun FedEx
Common_Params > fedex_meter_number Nomor meteran FedEx
Common_Params >ups_key Kunci diterima dari UPS
Common_Params >ups_password kata sandi UPS
Common_Params >ups_account_number nomor rekening UPS
Common_Params >ups_username Nama pengguna yang diterima dari UPS
Common_Params >usps_username Nama pengguna USPS
Permintaan_Array Objek ini berisi permintaan untuk beberapa perusahaan dan beberapa paket
Request_Array > Array Permintaan Beberapa permintaan diteruskan dalam satu larik

Struktur Permintaan (seperti dalam Request_Array )

Nama Keterangan
Meminta Berisi elemen dalam yang umum untuk semua operator (perusahaan pelayaran)
Permintaan > id Setiap ID unik untuk mengidentifikasi paket ini (ID elemen larik ini)
Permintaan >perusahaan Nama operator pengiriman (misalnya: 'fedex', 'ups', 'usps') untuk mendapatkan tarif dari perusahaan ini untuk paket ini
Permintaan >Berat_Unit Satuan berat (saat ini hanya 'LB' yang didukung)
Permintaan >Jenis Layanan Kode layanan untuk layanan operator tertentu yang tarifnya diperlukan. Lihat dokumentasi API operator.
Permintaan >TipeTingkatPermintaan 'TIDAK ADA' untuk tarif khusus akun dan 'DAFTAR' untuk tarif eceran
Permintaan >paket

Contoh JSON (Sebelum Enkripsi) :
 {
	"Common_Params": {
		"lingkungan": "kotak pasir",
		"emailid": "[email protected]",
		"kunci": "b52ee1f3ab8454589d6a9bd5018d60be",
		"host": "www.storepep.com",
		"os": "Windows NT 6.3 build 9600 (Windows 8.1 Home) i586",
		"Shipper_PersonName": "JOE CHRIST",
		"Shipper_CompanyName": "PERUSAHAAN SAYA",
		"Shipper_PhoneNumber": "0123456789",
		"Shipper_Address_StreetLines": "PAPAN SUTRA",
		"Shipper_Address_City": "COLUMBUS",
		"Shipper_Address_StateOrProvinceCode": "OH",
		"Shipper_Address_PostalCode": "43218",
		"Shipper_Address_CountryCode": "AS",
		"Recipient_PersonName": "Nama Penerima",
		"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": "AS",
		"Recipient_Address_CountryName": "Amerika Serikat (AS)",
		"Recipient_Address_Residential": "salah",
		"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"
	},
	"Array_Permintaan": [
		{
			"id": "53:1",
			"perusahaan": [
				"usps"
			],
			"Berat_Unit": "LB",
			"Jenis Layanan": "Prioritas",
			"RateRequestTypes": "TIDAK ADA",
			"paket": [
				{
					"berat": 2,
					"satuan": "LBS",
					"Deskripsi": "Paket Saya",
					"no_of_packages": 1,
					"Nomor Urutan": 1
				}
			]
		},
		{
			"id": "53,37:1",
			"perusahaan": [
				"fedex"
			],
			"Berat_Unit": "LB",
			"Jenis Layanan": "FEDEX_GROUND",
			"RateRequestTypes": "TIDAK ADA",
			"paket": [
				{
					"berat": 1,5,
					"satuan": "LBS",
					"Deskripsi": "Paket Saya",
					"no_of_packages": 1,
					"Nomor Urutan": 3
				}
			]
		}
	]
}

Setelah membuat objek JSON seperti itu, Anda perlu menyandikan objek ini menggunakan Kunci API unik Anda. Kami menyediakan Algoritma Encoding di bawah ini, sehingga akan mudah bagi Anda untuk melanjutkan.

Fungsi PHP untuk mengkodekan permintaan JSON ini

 <?php
    fungsi encode($key,$data)
    {
     $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
     $kunci256 = $kunci;
     $iv = '1156651@Xadapter';
     mcrypt_generic_init($cipher, $key256, $iv);
     $cipherText256 = mcrypt_generic($cipher,$data );
     mcrypt_generic_deinit($cipher);
     $cipherHexText256 =bin2hex($cipherText256);
     kembalikan $cipherHexText256;
    }
?>

Selanjutnya, letakkan objek yang disandikan ini ke objek JSON lain (dengan dua elemen, 'emailid' dan 'data') dan kirimkan ke server.

 <?php
  $req=array();
  $req['emailid']='[email protected]'; ID Email Terdaftar API Anda
  $apikey='b52ee1f3ab8454589d6a9bd5018d60be'; KUNCI Terdaftar API Anda
  $req['data']=$this->encode($apikey,$JSON_Req);
  $konten =json_encode($req);
?>

Permintaan JSON akhir terlihat seperti ini:

 {"emailid":"[email protected]",
    "data":""
   }

Kirim objek JSON ini ke server.

Lihat contoh di bawah ini untuk memahami cara mengirim permintaan di PHP:

 $curl = curl_init("http://shippingapi.storepep.com/api/shippings/rates");
                curl_setopt($curl, CURLOPT_HEADER, salah);
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, benar);
                curl_setopt($curl, CURLOPT_HTTPHEADER, array("Tipe konten: aplikasi/json"));
                curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, salah);
                curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, salah);
                curl_setopt($curl, CURLOPT_POST, benar);
                curl_setopt($curl, CURLOPT_POSTFIELDS, $konten ); // ini adalah $content yang kita buat pada kode di atas
                $json_response = curl_exec($curl);
                $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
                curl_close($curl);
                $respons = json_decode($json_response, benar);
                print_r($respon);