単一のAPIを介して複数の運送業者の料金にアクセスする方法(送料無料APIを使用)
公開: 2017-02-27
最終更新日-2020年2月24日
この記事では、このAPIにアクセスし、FedEx、UPS、USPSなどのさまざまな配送業者からパッケージの国内および海外の料金を取得する方法を理解します。 暗号化されたJSONデータとして、特定のキャリアの配送業者の住所、受信者の住所、サービスの種類、承認の詳細を指定するだけです。
このAPIを使用するには、http://shippingapi.storepep.comに登録し、電子メールで無料のAPIキーを取得する必要があります。登録時に、電子メールIDを指定するだけです。
GET:利用可能なサービスのリスト
1:利用可能なすべてのFedExServicesを取得します。
Comand : curl http://shippingapi.storepep.com/api/shippings/fedex-services
出力:
{
"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:利用可能なすべてのUPSサービスを取得します。
Comand : curl http://shippingapi.storepep.com/api/shippings/ups-services
出力:
{
'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:利用可能なすべてのUSPSサービスを取得します。
Comand : curl http://shippingapi.storepep.com/api/shippings/usps-services
出力:
{
'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:レートAPI
最初にRatesAPIを使用するには、このAPIリクエストの構造を理解する必要があります
名前 | 説明 |
---|---|
Common_Params | すべての海運会社に共通の内部要素が含まれています |
Common_Params >環境 | テストモードの場合:サンドボックス、本番モードの場合:ライブ |
Common_Params > emailid | このAPIに登録されているメールID |
Common_Params > key | 登録時に受け取ったAPIキー |
Common_Params > host | オプション(ホスト名) |
Common_Params > os | オプション(オペレーティングシステムの詳細) |
Common_Params > Shipping_PersonName | 送信者名 |
Common_Params > Shipping_CompanyName | 送信者の会社 |
Common_Params > Shipping_PhoneNumber | 送信者の電話番号 |
Common_Params >Shipper_Address_StreetLines | 送信者の住所 |
Common_Params >Shipper_Address_City | 送信者の都市 |
Common_Params > Shipping_Address_StateOrProvinceCode | 送信者の州/県コード(* 2文字以内) |
Common_Params >Shipper_Address_PostalCode | 送信者の郵便番号 |
Common_Params > Shipping_Address_CountryCode | 送信者の国コード(* 2文字のコードのみ) |
Common_Params > Recipient_PersonName | 受取人の氏名 |
Common_Params > Recipient_CompanyName | 受信者の会社 |
Common_Params > Recipient_PhoneNumber | 受信者の電話番号 |
Common_Params > Recipient_Address_StreetLines | 受信者の住所 |
Common_Params > Recipient_Address_City | 受信者の都市 |
Common_Params > Recipient_Address_StateOrProvinceCode | 受信者の州/県コード() |
Common_Params > Recipient_Address_PostalCode | 受信者の郵便番号 |
Common_Params > Recipient_Address_CountryCode | 受信者の国コード |
Common_Params > Recipient_Address_CountryName | 受信者の国名 |
Common_Params > Recipient_Address_Residential | True / False(受信者の住所です) |
Common_Params > fedex_key | FedExから受け取ったキー |
Common_Params > fedex_password | FedExパスワード |
Common_Params > fedex_account_number | FedExアカウント番号 |
Common_Params > fedex_meter_number | FedExメーター番号 |
Common_Params > ups_key | UPSから受け取ったキー |
Common_Params > ups_password | UPSパスワード |
Common_Params > ups_account_number | UPSアカウント番号 |
Common_Params > ups_username | UPSから受け取ったユーザー名 |
Common_Params > usps_username | USPSユーザー名 |
Request_Array | このオブジェクトには、複数の会社と複数のパッケージに対するリクエストが含まれています |
Request_Array >リクエストの配列 | 1つの配列で渡された複数のリクエスト |

リクエストの構造( Request_Arrayのように)
名前 | 説明 |
---|---|
リクエスト | すべての運送業者(運送会社)に共通の内部要素が含まれています |
リクエスト>id | このパッケージを識別するための任意の一意のID(この配列要素のID) |
リクエスト>会社 | このパッケージのこれらの会社から料金を取得するための配送業者の名前(例:「fedex」、「ups」、「usps」) |
リクエスト>Weight_Units | 重量の単位(現在、「LB」のみがサポートされています) |
リクエスト>ServiceType | 料金が必要な特定のキャリアサービスのサービスコード。 キャリアのAPIドキュメントを参照してください。 |
リクエスト>RateRequestTypes | アカウント固有の料金の場合は「NONE」、小売料金の場合は「LIST」 |
>パッケージをリクエストする |
サンプルJSON(暗号化前) :
{{ "Common_Params":{ 「環境」:「サンドボックス」、 "emailid": "[email protected]"、 "キー": "b52ee1f3ab8454589d6a9bd5018d60be"、 「ホスト」:「www.storepep.com」、 "os": "Windows NT 6.3ビルド9600(Windows 8.1 Home)i586"、 "Shipper_PersonName": "JOE CHRIST"、 "Shipper_CompanyName": "MY COMPANY"、 "Shipper_PhoneNumber": "0123456789"、 "Shipper_Address_StreetLines": "SILK BOARD"、 "Shipper_Address_City": "COLUMBUS"、 "Shipper_Address_StateOrProvinceCode": "OH"、 "Shipper_Address_PostalCode": "43218"、 "Shipper_Address_CountryCode": "US"、 "Recipient_PersonName": "受信者名"、 "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": "US"、 "Recipient_Address_CountryName": "アメリカ合衆国(US)"、 "Recipient_Address_Residential": "false"、 "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"、 "会社": [ 「usps」 ]、 "Weight_Units": "LB"、 "ServiceType": "優先度"、 "RateRequestTypes": "NONE"、 "パッケージ":[ {{ 「重量」:2、 「ユニット」:「LBS」、 「説明」:「マイパッケージ」、 "no_of_packages":1、 「SequenceNumber」:1 } ] }、 {{ "id": "53,37:1"、 "会社": [ 「フェデックス」 ]、 "Weight_Units": "LB"、 "ServiceType": "FEDEX_GROUND"、 "RateRequestTypes": "NONE"、 "パッケージ":[ {{ 「重量」:1.5、 「ユニット」:「LBS」、 「説明」:「マイパッケージ」、 "no_of_packages":1、 「SequenceNumber」:3 } ] } ] }
このようなJSONオブジェクトを生成した後、独自のAPIキーを使用してこのオブジェクトをエンコードする必要があります。 以下にエンコーディングアルゴリズムを提供しているので、簡単に進めることができます。
このJSONリクエストをエンコードするPHP関数
<?php 関数encode($ 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、$ data); mcrypt_generic_deinit($ cipher); $ cipherHexText256 = bin2hex($ cipherText256); $cipherHexText256を返します。 } ?>
次に、このエンコードされたオブジェクトを別のJSONオブジェクト(「emailid」と「data」の2つの要素を含む)に配置し、サーバーに送信します。
<?php $ req = array(); $ req ['emailid'] = '[email protected]'; APIに登録されたメールID $ apikey ='b52ee1f3ab8454589d6a9bd5018d60be'; API登録済みキー $ req ['data'] = $ this-> encode($ apikey、$ JSON_Req); $ content = json_encode($ req); ?>
最終的なJSONリクエストは次のようになります。
{"emailid": "[email protected]"、 "データ":"" }
このJSONオブジェクトをサーバーに送信します。
PHPでリクエストを送信する方法を理解するには、以下の例をご覧ください。
$ 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( "Content-type:application / 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、 $ content ); //これは上記のコードで作成した$contentです
$ json_response = curl_exec($ curl);
$ status = curl_getinfo($ curl、CURLINFO_HTTP_CODE);
curl_close($ curl);
$ response = json_decode($ json_response、true);
print_r($ response);