thinkphp Expressの鳥を使用する方法 - ビュー宅配物流クエリインタフェースAPI

まず、アカウントの鳥Expressを登録する必要があります

http://www.kdniao.com/

(本名検証が必要)メンバーシップ・サービスに対して適用した後に、ユーザーIDとAPIを見ることができ、ユーザ管理、バックグラウンドでログインした後、注文物流問い合わせ、および付加価値のバージョンは、試用版を持っている、彼らの実際に応じて選択することができます
thinkphp Expressの鳥を使用する方法 - ビュー宅配物流クエリインタフェースAPI

コントローラコード

public function index(){
        /**
         * Json方式 查询订单物流轨迹
         */
        //调用查询物流轨迹
        //---------------------------------------------
        $kgs = "*****";//快递公司简称,官方有文档
        $number = "***********";//快递单号//
        $logisticResult = orderTracesSubByJson($kgs,$number);
        $data = json_decode($logisticResult,true);
        if($data['Success'] == true){//返回信息成功
            $str = "";
            for($i=0;$i<count($data['Traces']);$i++){
                $str .= "时间:".$data['Traces'][$i]['AcceptTime']."<br/>地址:".$data['Traces'][$i]['AcceptStation']."<br/>";
            }
            echo "您查询的单号是:".$data['LogisticCode']."<br/>
物流信息:<br/>".$str."";
        }
    }

公開ファイル内common.phpの書き込み方法

//電気の供給者のID
(「EBusinessID」)またはDEFINE定義された(「EBusinessIDが」、「アプリケーションhttp://kdniao.com/regを表現鳥の公式サイトをご覧ください」);
//秘密鍵暗号の電力会社、宅配便の鳥を提供し、ノート親権、漏れない
定義された(「のAppKeyを」)または定義 (「のAppKey」、「 鳥の公式サイトをご覧くださいhttp://kdniao.com/regアプリケーションを表現する」);
//リクエストURL
(「reqURL」)定義されたか、DEFINE( ' reqURL '' http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx「);
/ **

  • JSON方式物流信息订阅
    * /
    機能orderTracesSubByJson($ KGS、$数){
    $ requestData = "{ 'OrderCode': ''、 'ShipperCode': '$ KGS'、 'LogisticCode': '$番号'}"。
    $ DATAS =配列
    'EBusinessID' => EBusinessID、
    'RequestType' => '1002'、
    'RequestData' =>でurlencode($ requestData)、
    'データ型' => '2'、
    )。
    $ DATAS [ 'DataSign'] =暗号化($ requestData、のAppKey)。
    $結果= sendPost(ReqURL、$ DATAS)。

    //同社のビジネス・プロセス情報に基づいて戻って......

    $結果を返します。
    }
    / **

  • データは郵送で提出しました
  • @paramの文字列$ URL要求のURL
  • データは@param配列$件のデータを提出しました
  • @return URL响应返回的HTML
    * /
    機能sendPost($ URL、$ DATAS){
    $タン=配列();
    foreachの($キーとして$ DATAS => $値){
    $タン[] =はsprintf( '%S =%s'は、$キー、$値)。
    }
    $ post_data =破( '&'、$タン)。
    $ url_info =でもparse_url($のURL);
    (([ 'ポート'])url_info $空の)場合
    、{
    ; $ url_info [ 'ポート'] = 80
    }
    $ 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。= "

    $ FD = fsockopenの($ [ 'ホスト'] url_info、$ url_info [ 'ポート'])。
    fwriteの($ FD、$ httpheader)。
    $「は」=取得します。
    $ headerFlag =はtrue。
    一方、{(FEOF($ FD)!)
    IF(($ヘッダ= @fgets($ FD))&&($ヘッダ== "\ Rは\ n" || $ヘッダ== "\ n")){
    ブレーク。
    }
    }
    (!FEOF($ FD))、一方、{
    $取得=のfread($ FD、128)。
    }
    FCLOSE($ FD)。

    返す$取得します。
    }

/ **

  • サイン署名生成電気の供給
  • @paramデータ内容
  • @param APPKEY APPKEY
  • @return DataSign签名
    * /
    関数の暗号化($データ、$ APPKEY){
    リターンでurlencode(BASE64_ENCODE(MD5($データ$ APPKEY))。)。
    }
    
    //电商ID
    defined('EBusinessID') or define('EBusinessID', '请到快递鸟官网申请http://kdniao.com/reg');
    //电商加密私钥,快递鸟提供,注意保管,不要泄漏
    defined('AppKey') or define('AppKey', '请到快递鸟官网申请http://kdniao.com/reg');
    //请求url
    defined('ReqURL') or define('ReqURL', 'http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx');
    /**
  • JSON方式物流信息订阅
    * /
    機能orderTracesSubByJson($ KGS、$数){
    $ requestData = "{ 'OrderCode': ''、 'ShipperCode': '$ KGS'、 'LogisticCode': '$番号'}"。
    $ DATAS =配列
    'EBusinessID' => EBusinessID、
    'RequestType' => '1002'、
    'RequestData' =>でurlencode($ requestData)、
    'データ型' => '2'、
    )。
    $ DATAS [ 'DataSign'] =暗号化($ requestData、のAppKey)。
    $結果= sendPost(ReqURL、$ DATAS)。

    //同社のビジネス・プロセス情報に基づいて戻って......

    $結果を返します。
    }
    / **

  • データは郵送で提出しました
  • @paramの文字列$ URL要求のURL
  • データは@param配列$件のデータを提出しました
  • @return URL响应返回的HTML
    * /
    機能sendPost($ URL、$ DATAS){
    $タン=配列();
    foreachの($キーとして$ DATAS => $値){
    $タン[] =はsprintf( '%S =%s'は、$キー、$値)。
    }
    $ post_data =破( '&'、$タン)。
    $ url_info =でもparse_url($のURL);
    (([ 'ポート'])url_info $空の)場合
    、{
    ; $ url_info [ 'ポート'] = 80
    }
    $ 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。= "

    $ FD = fsockopenの($ [ 'ホスト'] url_info、$ url_info [ 'ポート'])。
    fwriteの($ FD、$ httpheader)。
    $「は」=取得します。
    $ headerFlag =はtrue。
    一方、{(FEOF($ FD)!)
    IF(($ヘッダ= @fgets($ FD))&&($ヘッダ== "\ Rは\ n" || $ヘッダ== "\ n")){
    ブレーク。
    }
    }
    (!FEOF($ FD))、一方、{
    $取得=のfread($ FD、128)。
    }
    FCLOSE($ FD)。

    返す$取得します。
    }

/ **

  • サイン署名生成電気の供給
  • @paramデータ内容
  • @param APPKEY APPKEY
  • @return DataSign签名
    * /
    関数の暗号化($データ、$ APPKEY){
    リターンでurlencode(BASE64_ENCODE(MD5($データ$ APPKEY))。)。
    }

最后访问index()方法即可
注:快递公司简称,官方有文档,在用户管理后台右侧
![](https://s1.51cto.com/images/blog/202001/16/2b21e704d4d491e86a418fd365924428.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
更多详情可点击,帮助与文档-进去后点击–产品文档–DEMO下载–即时查询–接口Demo工具.PHP版

おすすめ

転載: blog.51cto.com/14466758/2467325