エクスプレス鳥がサービスの下などのサービスプロバイダ、電気事業のERPのトラッキング物流、電子ビジネスプラットフォーム、倉庫、通関会社、単独の電子顔、休日物流、物流、金融、オンライン注文、グローバル物流インタフェースで、電気の供給物流管理モジュールを解決するためにおよび財務モジュール。今すぐ上の鳥を表現するために、基本的な電子側単一のAPIの説明を行い、電子ドッキング表面に単一のインターフェイスを提供します。
I.はじめインタフェース
Expressの鳥は、単一の電子インターフェースは、一般的に中国で使用される30以上の4ウェイ宅配便、SF、EMS、宅配、デボン、優れたスピードと他の単一のプリントに直面してサポートして直面しています。インタフェース鳥宅配貨物運送状、オンザフライで生成運送状番号で、オンラインの電子プリントは、単一を記録せずに、送達効率を改善し、配信適時性を向上させます。印刷速度は、単一の記録セッションの必要性を排除し、4-6倍に増加配信適時性を向上させるマニフェストピッキングなどの単一のリンク、行動をポンピングキャンセル。
エクスプレス鳥はクリックして、単一の電子申請アドレスに直面している
従来のシングルサイドシングルVS電子表面を:
VS Expressの鳥によって現在の電子表面単一の電子に直面しています
二つの.javaドッキングモード
(1)電子配信側シングルインターフェースは、独立した電力供給者に利用可能な鳥、在庫管理、物流、サプライチェーンの物流システム・プラットフォームに単一のインタフェースです。
(2)宅配会社の宅配便の出荷を通知するための要求を送信することによって、オンライン配信、宅配便事業のネットワーク選択のための顧客の需要を解決するために。
(3)顧客データは、オンサイトサービスのピックアップを配置するエクスプレス宅配鳥によってこのインタフェースを介して宅配鳥に転送されます。
(4)注文番号(OrderCode)は、特定のエラーコードが返され、システムを再送信し、送信を繰り返すことができません。
(5)メッセージ受信モードHTTP POST、エンコード形式(UTF-8)の要求メソッドをサポートするインタフェース: "アプリケーション / x-www-form-urlencodedで;のcharset = UTF-8"。
(6)要求レベルのシステム・パラメータ:
注:(必須)必要R-、O-オプション(オプション)、C-パケットが一定の条件(条件付き)の下にはオプションです。
(7)インタフェースアドレス:
APIのテストアドレス:HTTP://testapi.kdniao.cc:8081 / API / EOrderService
API公式アドレスします。http://api.kdniao.cc/api/EOrderService
JAVAドッキング例
注:キーは、公式サイトのアプリケーションの鳥を表現する必要があります
輸入java.io.BufferedReader; インポートにjava.io.IOException; 輸入java.io.InputStreamReader。 輸入java.io.OutputStreamWriterが、 輸入java.io.UnsupportedEncodingException。 インポートのjava.net.HttpURLConnection; インポートのjava.net.URL; 輸入java.net.URLEncoder。 輸入java.util.HashMapを; 輸入java.util.Map; 輸入com.sun.org.apache.xerces.internal.impl.dv.util.Base64。 輸入java.security.MessageDigestの; / ** * *快递鸟电子面单接口 * * @技术QQ:4009633321 * @技術QQ群:200 121 393 * @see:Http://www.kdniao.com/MiandanAPI.aspx * @copyright:深セン市エクスプレスゴールドデータサービス株式会社 * *キーIDおよび適用するには、公式Webサイトを参照してください。http://www.kdniao.com/ServiceApply.aspx * / パブリック クラスKdGoldAPIDemo { // 電気の供給者ID プライベート文字列EBusinessID =「宅配便の鳥は、公式サイトのアプリケーションhttp://www.kdniao.com/ServiceApply.aspxに行く」; // 電気・プロバイダー秘密鍵暗号、宅配便の鳥を提供し、ノート親権は、漏れない プライベート文字列のAppKey =「宅配便の鳥は、公式サイトのアプリケーションhttp://www.kdniao.com/ServiceApply.aspxに行く」; // :、要求URLを正式な環境に対処http://api.kdniao.cc/apiを/ Eorderservice プライベート文字列reqURL = "http://testapi.kdniao.cc:8081/api/Eorderservice" ; / **、 'モバイル': '15018442396' 、 'ProvinceName': '上海'、 'CityName': '上海'、 'ExpAreaName': '青浦エリア'、 '住所': 'パール号線73'}、 "+ "」レシーバー「:「+ * JSON方式电子面单 *は@throws 例外 * / パブリック文字列orderOnlineByJson()をスロー例外{ 文字列requestData = "{ 'OrderCode': '012657700387'、" + " 'ShipperCode': 'EMS'、" + 「 'PayType'を:1、 "+ " 'ExpType':1、" + " 'コスト':1.0、" + " 'OtherCost':1.0、" + "「送信者:" + "{" + " '会社': 'LV ' '名前': 'テイラー'、'モバイル':' 15018442396 '' ProvinceName ':'上海'' CityName ':'上海'' ExpAreaName ':'青浦エリア''住所':'パール号線73 "}" + "{" + " '会社': 'GCCUI'、 '名称': 'ヤン'、 'モバイル':'15、018442396' 、 'provinceName': '北京'、 'CityName': '北京'、 'ExpAreaName': '朝陽区''住所: '三里屯通りYaxiuビル'}、 "+ " '商品': "+ " [{ "+ " 'GoodsName': '靴'、 'Goodsquantity':1、 'GoodsWeight':1.0 }]、 "+ " '重さ':1.0、 '+ ' '数量' :. 1、 "+ " '音量':0.0、 "+ " '備考、': '慎重に取り扱い'、 '+ ''IsReturnPrintTemplate':1}」 ; 地図のparams = <文字列、文字列> 新しい HashMapの<文字列、文字列> () params.put("RequestData"のURLEncoder(requestData、 "UTF-8")); params.put( "EBusinessID" 、EBusinessID)。 params.put( "RequestType"、 "1007" ); ストリングdataSign =暗号化(requestData、のAppKey、 "UTF-8" )。 params.put( "DataSign"のURLEncoder(dataSign、 "UTF-8" )); params.put( "データ型"、 "2" )。 文字列結果 = sendPost(ReqURL、paramsは)。 // 根据公司业务处理返回的信息...... リターン結果; @throws 例外 * / @SuppressWarningsは( "未使用" ) プライベート文字MD5(文字列strは、文字列の文字セット)がスロー{例外 するMessageDigest MD = MessageDigest.getInstance( "MD5" )。 md.update(str.getBytes(文字セット))。 バイト []結果= md.digest()。 StringBufferのSB = 新しい StringBufferの(32 )。 以下のために(int型 i = 0; iはresult.length <; iは++ ){ int型のval = [I]&0xffのをもたらします。 もし(ヴァル<= 0xFの){ sb.append( "0" ); } sb.append(Integer.toHexString(ヴァル))。 } を返す。sb.toString()toLowerCaseメソッドを()。 } / ** * BASE64编码 * @param STR内容 * @param 文字セット编码方式 * @throws にUnsupportedEncodingException * / プライベート文字列のBASE64(文字列strは、文字列の文字セット)がスローにUnsupportedEncodingException { エンコードされた文字列を = Base64.encode(str.getBytes(文字セット) ); エンコードされました。 リターン } @SuppressWarningsは( "未使用" ) プライベート文字列のURLEncoder(文字列strは、文字列の文字セット)がスローにUnsupportedEncodingException { 文字列結果 = URLEncoder.encode(STR、文字セットを)。 戻り値の結果; } / ** *电商ログイン签名生成 * @paramのコンテンツ内容 * @param keyValueのAPPKEY * @param 文字セット编码方式 * @throws にUnsupportedEncodingException、例外 * @return DataSign签名 * / @SuppressWarnings( "未使用" ) プライベート文字列を暗号化(文字列コンテンツ、keyValueの文字列、文字列の文字セット)がスローにUnsupportedEncodingExceptionを、例外 { IF(keyValueの!= NULL ) { 戻り Base64で(MD5(コンテンツ+ keyValueの、文字セット)、文字セットを); } 戻りBASE64(MD5(コンテンツ、文字セット)、文字セット); } / ** 指定されたURLに送信されたリクエスト* POSTメソッド * @param URL送信要求URL * @param 設定paramsは要求パラメータ * @returnのリモートリソースの応答結果を * / @SuppressWarnings( "未使用" ) プライベート文字列sendPost(文字列のURL、地図<文字列、文字列> のparams){ のOutputStreamWriterアウト = nullを。 中BufferedReaderの = nullを。 StringBuilderの結果 = 新しいStringBuilderの(); 試す{ URL RealURLは = 新しいURL(URL)を、 HttpURLConnectionのCONN = (HttpURLConnectionの)realUrl.openConnection(); // 发送POST请求必须设置如下两行 conn.setDoOutput(真); conn.setDoInput(真の); // POST方法 conn.setRequestMethod( "POST" ); // 设置通用的请求属性 conn.setRequestProperty( "* / *"、 "受け入れます" ); conn.setRequestProperty(「接続」、「キープアライブ」)。 conn.setRequestProperty( "ユーザーエージェント" 、 "Mozillaの/ 4.0(互換; MSIE 6.0; Windows NTの5.1; SV1)" ); conn.setRequestProperty( "のContent-Type"、 "アプリケーション/ x-www-form-urlencodedで" )。 conn.connect(); アウト= 新しいのOutputStreamWriter(conn.getOutputStream()、 "UTF-8" ); // 发送请求参数 場合(!のparams = ヌル){ StringBuilderのPARAM = 新しいStringBuilderの(); 用(のMap.Entry <文字列、文字列> エントリ:params.entrySet()){ 場合(param.length()> 0 ){ param.append( "&" )。 } param.append(entry.getKey())。 param.append( "=" )。 param.append(entry.getValue()); のSystem.out.println(entry.getKey() + ":" + entry.getValue()); } のSystem.out.println( "PARAM:" + param.toString( )); out.write(param.toString()); } // フラッシュバッファリングされた出力ストリーム out.flush(); // 応答のURL読み取るようにBufferedReaderの入力ストリームを定義 =において新しい新しいBufferedReaderの( 新しい新規にInputStreamReader(コネチカットを。 getInputStream()、 "UTF-8" )); 文字列ラインと、 一方((ライン= in.readLine())!= NULL ){ result.append(ライン); } } キャッチ(例外E){ e.printStackTrace(); } // 最終的に出力ストリームを閉じるためにブロックを使用し、入力ストリームの 最後に{ 試み{ IF(!OUT = ヌル){ out.close(); } IF(中=!ヌル){ in.close(); } } キャッチ(IOExceptionをEX){ ex.printStackTrace(); } } を返す)(result.toString。 } }