サードパーティロジスティクスサービスプロバイダー、電子単一ワンタイムドッキング表面永久無料33の大手宅配会社エクスプレスインターフェースに世界最大の特急鳥のインターフェースとして、コール・インタフェース・宅配鳥は物流会社に、単一の番号を要求し、リアルタイムでの復帰が指示したときに印刷して、単一の配信に直面しています。
鳥エクスプレスEMS(EMS)、SF(SF)、郵便の国内標準速い(YZBK)、郵便速達小包(YZPY)、宅配便(ZJS)、米国ハオトン宅配便(LHT)、フルエクスプレス(UAPEX)、STOをサポートしています(STO)、ナードゥエクスプレス(DBL)、Jingdongのエクスプレス(JD)、新豊ストリーム(xFEX)、毎日のエクスプレス(HHTT)、アゾレスは(SURE)Expressは、搬送速度(KYSY)を横切って、チョンは、(PJ)の産物を発現します(CND)のコミットメント、宅配便(ZTO)、韻宅配便(YD)を介して、BESは(HTKY)を発現する、タクトエクスプレス(YTO)、遠エクスプレス(YCWL)に、好ましくは速度エクスプレス(UC)、セキュリティが(表現できますANE)、世界有馬(HOAU)、テン林物流(TLWL)、ナードゥエクスプレス(DBLKY)、セキュリティを表現することができます(ANEKY)、Jingdongはエクスプレス(JDKY)、Longbangエクスプレス(LB)、BESエクスプレス(HTKYKY)、中-Express(ZTOKY)、Jiajiエクスプレス(CNEX)、TNT(YDKY)は、ジェッタ(SX)面単一電子インターフェースを見えました。
上記1.ログイン特急鳥URL IDとキーを取得するために登録する.--検証-会員サービスを開く必要があります(電子シングルプレーン)
バッチ印刷:
旧ドックの開発は、技術文書をダウンロードする(物流APIインタフェースのドキュメントのダウンロードを表現_電子側単一のインターフェイスのドキュメント-エクスプレス鳥コードインタフェースのマニュアルには)、インターフェースの開発は、E面単一インターフェイスDEMO(ダウンロードすることができます宅配便の鳥が簡単にドッキングさせる「アドホッククエリはデモ」)参照である、宅配便会社は、「ビジネス速達便会社の種類を表現する」「「表現するコード化された文書のリスト」に電子側単一の顧客数のパラメータテーブル」に対応するコードをダウンロードすることができますビュー
電子顔の使用は、単一のインタフェースは、各宅配会社のための異なる電子側単一のアカウントは、単一の電子側はに必要な単一の番号を取得し、詳細は「電子側単一の顧客数のパラメータテーブル」を参照して、フィールドを渡す必要があり、単一の数を得るために、単一のアカウントの電子側が必要です鳥の公式ウェブサイトを表現するアカウントを登録して、あなたは宅配会社の電子表面単一の顧客番号、サポートされていないオフラインでポストについては、最寄りのネットワークアプリケーションに連絡ネットワークに連絡する必要があり、次の宅配鳥の電子側で、単一番号を事前に充電し、単一のAPI単一のオンライン部分を適用することができますこれは、単一の番号とペン情報の大部分を表現するために取得することができます
電子顔の使用は、単一のインタフェースも、単一のアカウントのテスト環境を電子顔が必要です:あなたは、宅配便の鳥の公式ウェブサイトで提供されるテストアカウントエクスプレス鳥使用する必要があります - アカウントとのインターフェイスを表示するには、[ヘルプとマニュアルのダウンロード、「エクスプレスの鳥の電子側単一パラメータ設定テーブルを」要求に対応するフィールド名。
フォーマル環境:
直接電子注文を単一のアカウントに直面しなくても:SFは、EMS、宅配、速い、速達小包郵便(広東省は、国が発行した)、鉄道エクスプレス、宅配便。
オンライン(エクスプレス鳥背景)アプリケーションアカウント:優れたスピード、通じ韻、タクト、限りエクスプレス、セキュリティができ、BES;
(アプリケーションパス:鳥エクスプレス公式サイト - 電子シングル顔 - 私の宅配会社 - 新宅配会社のために適用されます)。
他の宅配会社とは、ローカル宅配便のネットワーク回線でアカウント(既存の注文番号)を申請する必要が使用することができます。
疑わしい場合におけるアクセス手順は、テスト環境、テスト開発が完了した後に協議のためのQQグループ、QQグループ内のファイル上の特定のドッキングのドキュメントを、サポートするために追加することができ、テスト環境は、チューンのインターフェイスは、各宅配会社のロジックを通してユーザーにのみ使用可能です同じ、説明はインターフェース、正式な環境を介して転送されてきた宅配会社を通じて測定し、いくつかの宅配会社は、単一のシングルスの直下に単一の電子口座に直面していない、いくつかの宅配便会社は、アカウントの鳥の背景を申請する必要があり、あなたには、いくつかの宅配会社と地元が必要オフラインで使用できるアカウント(既存の注文番号)を発現コンセントに適用されます。電子側単一のバッチ印刷を参照して、ダウンロードの電子側単一のバッチ印刷デモ(宅配便の公式サイト鳥クラウド印刷制御プリントコントロールのダウンロード_ _電子片面印刷制御_webの印刷制御)のために利用可能です。
ドッキングに注意を払う必要があります:(1)そのインタフェースの電気プロバイダのID、キー(のAppKey)とユーザ管理背景マーチャントID、キーまったく同じことを確認してください。(2)OrderCodeは、正式な環境表面鳥電子注文番号を表現する単一単一単一のインターフェースでなければならず、PortNameはプリンタ名は、ローカルプリンタの名前と一致しなければなりません。(3)デモのインターフェイスGetip()メソッドは、IPとユーザーのコンピュータのIP同じプリンタに接続して取得することを確認してください。(4)インストールExpressの鳥のプリントがC-Lodop(印刷)を制御する、バッチ印刷後に宅配便の鳥を呼び出すか、デモをダウンロードする宅配便のウェブサイトに鳥をダウンロードするように求められます。
正常に使用することができますオンラインの最後のポストは、友人をドッキング。電子フェイス単一のインターフェイスの成功の後、インターフェイスが直接HTMLテンプレートは、お使いのブラウザに直接印刷、または印刷用のHTMLコントロールを使用するために使用することができ、単一電子のリターンに直面するだろう呼び出します。
プロセスバッチ印刷:
最初のコール電子表面必要なフィールドを取得するためのインターフェースを印刷し:OrderCode(順序番号)
2、データDATAスプライシング組み合わせ印刷形式:json_encode([0 => [「 OrderCode」=>「 注文番号1」 、 'PortNameは' => 'プリンタ名']]);
3、署名
に必要なパラメータ:
以下に示すように(1)、第二の部分は、データのスプライスさ:
印刷データ
(2)、ネットワークIP外部プリンタホストに接続された
(3)、エクスプレス鳥APIKEYユーザアプリケーション
注:(2)、(3)結合モード:.新たなデータを生成するIPデータ、及び図2のように、署名機能を使用して署名を生成します。
次のように署名コードがあります:
上記のプロセスは、デモの両方の公式では、注意すべき主なポイントは、宅配便の鳥バッチ印刷インターフェイスは、常に迅速なデータの検証が渡されていないエラーを返した場合、注意を払う必要があるが、クライアントのIPアドレスを取得することであるということです、署名データ登録スプライシングおよびフォームデータ、およびユーザーのAPPKEYマーチャントIDがそうで正しいとされます。
以下は、注意することがポイントである
接続のIPプリンタの取得が間違っていますか?
(1)テストをローカルで実行された場合は、ローカルIPアドレスへの公式のアクセスが十分ではありません、我々は以下のコードを使用する必要があります。
ローカルネットワークのIPへの外部アクセス
以下のように(2)その上に公式のデモの後、直接使用する正式な環境で、場合、コードは次のとおりです。
<?PHP / ** * * Expressの鳥が単一の電子インターフェースに直面 * * @技術のQQ:4009633321 * @技術のQQグループ:200 121 393 * @see:http://www.kdniao.com/MiandanAPI.aspx * @copyright:深センシティエクスプレス限定ゴールドデータ技術サービス * *キーIDと公式サイトのアプリケーションにアクセスしてください:HTTP://www.kdniao.com/ServiceApply.aspx * / //電気の供給者のIDが (「EBusinessID」)定義されたか、DEFINE(「EBusinessID」 「)アプリケーションhttp://www.kdniao.com/ServiceApply.aspxを表現鳥の公式サイトにアクセスしてください」; //秘密鍵暗号の電力会社、宅配便の鳥を提供し、世話をリークしていない 定義された(「のAppKey」)または定義 ( 「のAppKey」、「アプリケーションhttp://www.kdniao.com/ServiceApply.aspxを表現鳥の公式サイトをご覧ください」); //リクエストURLは、インタフェース正式アドレス:HTTPを://api.kdniao.cc/api/Eorderserviceが 定義され( 'reqURL')または(定義 'reqURLを'、 'http://testapi.kdniao.cc:8081/api/Eorderservice')。 //物流トラックを取得するために呼び出します // ------------------------------------------------ ------------- //電子情報の単一の平面構成は提出 $ eOrder = []; $ eOrder [ "ShipperCode"] = "SF"; $ eOrder [ "OrderCode"] = "PM201604062341" ; $ eOrder [ "PayType"] = 1; $ eOrder [ "ExpType"] = 1; の$ SENDER = []; $ SENDER [ "名前"] = "リー"; $送信者[ "モバイル"] =「18888888888 "; $ SENDER [" provinceName "] ="リー"; $ SENDER [" CityName "] ="深セン"; $ SENDER [" ExpAreaName "] ="福田区"; $送信者["住所"] =" SEGプラザ5401AB "; $レシーバー= []; $レシーバー["名前"] ="リー「。 レシーバー$ [ "モバイル"] = "18888888888"; $レシーバー[ "provinceName"] = "リー"; $レシーバー[ "CityName"] = "深セン"; $レシーバ[ "ExpAreaName"] = "福田区"。 $レシーバー[ "住所"] =「SEGプラザ5401AB「; $ commodityOne = []; $ commodityOne [ "GoodsName"] = "他の"; $商品= []; $商品[] = $ commodityOne; $ eOrder [ "送信者"] = $ SENDER; $ eOrder [ "受信"] = $レシーバ; $ eOrder [ "商品"] = $商品; //はによって電子表面を呼び出す $ jsonParam json_encode =($ eOrder、JSON_UNESCAPED_UNICODE); // $ jsonParam = JSON($のeorder); // 互換PHP5.2(含む) "エコー片面電子提出インターフェース:" $ jsonParam ;. $化するJsonResult = submitEOrder($ jsonParam); エコー「<BR / >電子申請の結果によって<BR/>表面:「$するJsonResult; 電子単一平面解析する//戻り結果 $ = json_decodeの結果(trueに$するJsonResultを、); エコー」<BR />返回码:」[ResultCodeの"]; $結果。" IF($結果[ "ResultCodeの"] == "100"){ 「]。 $結果[ "成功"] ;.: "<BR/>成功"エコー } 他{ 「単<BR/>単一故障の電子表面を」エコー; } // --------------------------------- ---------------------------- / ** * JSONの途中問い合わせオーダ物流軌道 * / 関数submitEOrder($ requestData){ $ DATAS =アレイ ('EBusinessID' => EBusinessID、 'RequestType' => '1007'、 'requestData' =>でurlencode($ requestData)、 'データ型' => '2'、 ); $ DATAS [ 'DataSign']は暗号化を(= requestData $、のAppKey); $ sendPost結果は=(reqURL、$ DATAS); //会社の業務処理が戻るの情報に基づいて...... $の検索結果を返します。 } / ** * POSTデータが送信 * @returnのURLのHTML応答が返さ * / * @paramの文字列$ URLがURLを要求します *数据的提交@paramの配列$ DATAS 関数sendPost($のURL、$ DATAS){ $タン=配列(); foreachの($として$ DATASキー=> $値){ $タン[] =用のsprintf( '%S =%s'は、$キー、$値)。 } $ post_data =破( '&'、$タン)。 $ url_info =でもparse_url($のURL); '([ 'ポート'] ==' url_info $)なら 、{ $ url_info [ポート'' = 80。 } [ 'ポート'] url_info $エコー。 $ httpheader = "POST"。[ 'パス'] url_info $。"HTTP / 1.0 \ r \ n"が、 。$ httpheader = "ホスト:"。[ 'ホスト'] url_info $。"\ r \ nの"; 。$ httpheader = "Content-Typeの:/ x-www-form-urlencodedでの\ r \ nアプリケーション"; 。$ httpheader = "コンテンツ長:"。STRLEN($ post_data)。"\ r \ nの"; 。$ httpheader = "接続:閉じるの\ r \ n \ r \ nの"; 。$ httpheader = $ post_data。 $ FD = fsockopenの($ url_info [ 'ホスト']、[ 'ポート'] url_info $)。 fwriteの($ FD、$ httpheader)。 $「」取得します=。 $ headerFlag =はtrue。 (!FEOF($ FD)){一方 (($ヘッダー= @fgets($ FD))&&($ヘッダ== "\ R \ n" || $ヘッダ== "\ n")){場合 、破断 } } (!FEOF($のFD))、一方、{ $取得=のfread($ FD、128)。 } FCLOSE($のFD)。 返す$取得します。 } / ** *电商サイン签名生成 * @paramデータ内容 * @param APPKEY APPKEY * @return DataSign签名 * / 関数の暗号化($データは、$ APPKEY){ リターンでurlencode(BASE64_ENCODE(MD5($データの$ APPKEY))); } / ******************************** ************************************************************ * *配列のすべての要素の特定の機能を使用して処理します * @param列&$配列に文字列処理 * @param機能文字列$関数が実行される キーに適用されるかどうかapply_to_keys_also * @return boolean型の$ * @access公共 * ******************* ****************************************** / 機能arrayRecursive(&$配列、 falseに機能$、$ = apply_to_keys_also) { 静的$のrecursive_counter = 0; IF(++ $ recursive_counter> 1000){ ダイス( 'ディープ再帰攻撃の可能性'); } foreachの($キー=> $値として$配列){ *将数组转换为JSON字符串(兼容中文) IF(IS_ARRAY($値)){ arrayRecursive($配列[$キー]、$関数、apply_to_keys_also $)。 }他{ $配列[$キー] = $関数($値)。 } {($ apply_to_keys_also &&($キー)IS_STRING)場合 $ new_key = $関数($キー)。 もし(!$ new_key = $キー){ $配列[$ new_key] = $配列[$キー]。 設定を解除($配列[$キー]); } } } $ recursive_counter--。 } / ************************************************ ************** * * @param配列$配列要转换的数组 * @return列转换得到的JSON字符串 * @access公開 * *********************************** ************************** / 関数JSON($配列){ arrayRecursive($配列、 'でurlencode'、TRUE); $ JSON = json_encode($配列)。 urldecode($のJSON)を返します。 } ?> <%の@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = UTF-8" pageEncodingは= "UTF-8" %> <!DOCTYPE htmlののPUBLIC「 - // W3C // DTD HTML 4.01移行// EN " "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <META HTTP-当量= "Content-Typeの"コンテンツ=" text / htmlの;のcharset = UTF-8" > <タイトル> <スクリプトSRC = "http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"> </ SCRIPT> $ .getJSON( '/ kdPrintOrderDemo / printOrder'、関数(データ){ $( "#EBusinessID")。ヴァル(data.EBusinessID) $( "#RequestData")。ヴァル(data.RequestData) $( "#1 IsPreview" ).val(data.IsPreview) 。$( "#DataSign")のval(data.DataSign) form1.submit() }) }); </ SCRIPT> </ head> <body> <H1>デモ</ H1> <DIV ID = "ヘッド"> </ div> <フォームID = "Form1の" ACTION = "http://www.kdniao.com /External/PrintOrder.aspx "メソッド= "ポスト"ターゲット= "_自己"> <divのスタイル= ""> の<div>の<input type = "text" ID = "EBusinessID"名前=" <div>の<input type = "テキスト" ID = "IsPreview" NAME = "IsPreview" /> </ DIV> </ DIV> </ FORM> </ BODY> </ HTML>
第二に、電子側単一のバッチ印刷用ドッキング注:
(1)そのインターフェイス電動プロバイダID、キー(のAppKey)とユーザ管理背景マーチャントID、全く同じキーを確実。
(2)OrderCodeは、正式な環境表面鳥電子注文番号を表現する単一単一単一のインターフェースでなければならない。PortNameは、プリンタ名で、クライアントは、ローカルプリンタ名と一致しなければなりません。
(3)デモGetip()メソッドのインターフェイスは、サーバと外部IPネットワークのIPにユーザーを取得することを確認し(百度検索IP138)が一致します。
(4)インストールエクスプレス鳥のプリントコントロールC-Lodop(印刷)
インストール1は、宅配便の鳥バッチ印刷デモをダウンロードするように求められます呼び出します。
2インストール、ダウンロードするには宅配便の公式ウェブサイトでの鳥、ダウンロード:公式サイト鳥クラウド印刷制御プリントコントロールのダウンロードエクスプレス_ _電子片面印刷制御_webの印刷制御
特別な注意が必要です。
正規代理店は、マスターアカウントのパスワードを変更するよう1は、認証コード(アクセストークン)が再許可されるように失敗します。マスターアカウントのパスワードを変更することはできません。
図2は、認証トークンは1年間有効です。
3、トークン及びCustomerPwdのみ結合であることがコーディング除算。
結局、鳥エクスプレスユーザーが、あなたは宅配便の鳥に設定するための技術サポートを提供し、次の情報対応、コピーが必要になります。
EBusinessID Expressの鳥ID:
AppKey:
アプリの秘密:
トークン:
CustomerNameの商人コード/ドラゴンコード:
CustomerPwd課コード:
WareHouseID出荷倉庫コード:
呼ばれる送信者:
第三には、署名を取得し、縫製データが間違っていますか?
元のコードは、データがフォームにURLエンコードされたデータを行うことなく、データを再署名、一見後者を符号化して、エスケープ文字に追加するリクエストを送信されるでurlencodeの形態であります