ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
``` <?php $KdApi=new KdApi(); // //调用快递鸟查询物流轨迹 // //--------------------------------------------- // /* // * com 快递编号 // * num 快递单号 // */ // $com=$_POST["com"]; // $num=$_POST["num"]; // $logisticResult=$KdApi->getOrderTracesByJson("HTKY","73501295840655"); // echo $logisticResult; //快递100查询 // var_dump($KdApi->kuaidi100("huitongkuaidi","73501295840655")); // //构造在线下单提交信息 // $eorder = []; // //快递公司编码 // $eorder["ShipperCode"] = "SF"; // //订单编号PM201605078942 // $eorder["OrderCode"] = "PM".date("YmdHis"); // //支付方式 PayType Int 邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付 // $eorder["PayType"] = 1; // //快递类型:1-标准快件 // $eorder["ExpType"] = 1; // // IsNotice Int 发货方式:0-上门揽件,1-网点自寄,默认为1 O // $eorder["IsNotice"] = 1; // //PackingType Int 包装类型:包装类型(快运字段)默认为 0; 0- 纸 1- 纤 2- 木 3- 托膜 4- 木托 99-其他 // $eorder["PackingType"] = 1; // //IsReturnSignBill Int 签收回单:1-需要,0-不需要,默认为0 O // $eorder["IsReturnSignBill"] = 1; // //DeliveryMethod Int 送货方式:0-自提,1-送货上门(不含上楼)2-送货上楼。(适用于快运类型订单,物流公司可能会收取费用),默认为0 // $eorder["DeliveryMethod"] = 1; // // StartDate String 上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同 O // // $eorder["StartDate"] = "yyyy-MM-dd HH:mm:ss"; // // $eorder["EndDate"] = "yyyy-MM-dd HH:mm:ss"; // // Weight Double 物品总重量kg O // $eorder["Weight"] = 1; // //Quantity Int 件数/包裹数 O // $eorder["Quantity"] = 1; // //Volume Double 物品总体积m3 O // $eorder["Volume"] = 1; // //Remark String 备注 // $eorder["Remark"] = ""; // //发件人信息 // $sender = []; // $sender["Name"] = "李先生"; // $sender["Mobile"] = "18888888888"; // $sender["ProvinceName"] = "广东省"; // $sender["CityName"] = "深圳市"; // $sender["ExpAreaName"] = "福田区"; // $sender["Address"] = "赛格广场5401AB"; // //收件人信息 // $receiver = []; // $receiver["Name"] = "李先生"; // $receiver["Mobile"] = "18888888888"; // $receiver["ProvinceName"] = "广东省"; // $receiver["CityName"] = "深圳市"; // $receiver["ExpAreaName"] = "福田区"; // $receiver["Address"] = "赛格广场5401AB"; // //ommodity商品信息 // /*GoodsName String 商品名称 R // GoodsCode String 商品编码 O // Goodsquantity Int 商品数量 O // GoodsPrice Decimal 商品价格 O // GoodsWeight Decimal 商品重量 O // GoodsDesc String 商品描述 O // GoodsVol Double 商品体积m3 // */ // $commodityOne = []; // $commodityOne["GoodsName"] = "其他"; // $commodity = []; // $commodity[] = $commodityOne; // $eorder["Sender"] = $sender; // $eorder["Receiver"] = $receiver; // $eorder["Commodity"] = $commodity; // //调用在线下单 // $jsonParam = json_encode($eorder, JSON_UNESCAPED_UNICODE); // //echo "在线下单接口提交内容:<br/>".$jsonParam; // $jsonResult = $KdApi->submitOOrder($jsonParam); // //解析在线下单返回结果 // $result = json_decode($jsonResult, true); // echo '<pre>'; // var_dump($result);die; // echo "<br/><br/>返回码:".$result["ResultCode"]; // if($result["ResultCode"] == "100") { // echo "<br/>是否成功:".$result["Success"]; // } // else { // echo "<br/>在线下单失败"; // } class KdApi{ public $conf=[ //快递鸟电商ID "EBusinessID"=>"test1395396", //快递鸟电商加密私钥,快递鸟提供,注意保管,不要泄漏 "AppKey"=>"c14e0f85-ad29-4b8c-aa86-65f9fe5eb681", //快递鸟 调试模式 false true 测试 "debug"=>true, //快递100 公司编号, 请在企业管理后台查看 "customer"=>'4ABF503E8E654D052D62AAE5DF38FF84', //快递100 公司编号, 请在企业管理后台查看 "key"=>"LxRCjwoi3582", ]; public function __construct($conf = "") { } /** * Json方式 提交在线下单 */ function submitOOrder($requestData){ //电商加密私钥,快递鸟提供,注意保管,不要泄漏 //请求url,接口正式地址:http://api.kdniao.com/api/eorderservice 测试环境地址:http://testapi.kdniao.com:8081/api/oorderservice if($this->conf["debug"]){ $ReqURL="http://testapi.kdniao.com:8081/api/oorderservice"; }else{ $ReqURL="http://api.kdniao.com/api/eorderservice"; } $datas = array( 'EBusinessID' => $this->conf["EBusinessID"], 'RequestType' => '1001', 'RequestData' => urlencode($requestData) , 'DataType' => '2', ); $datas['DataSign'] = $this->encrypt($requestData,$this->conf["AppKey"] ); $result=$this->sendPost($ReqURL, $datas); //根据公司业务处理返回的信息...... return $result; } //--------------------------------------------- /** * Json方式 查询订单物流轨迹 */ function getOrderTracesByJson($com,$num){ //请求url // (6)测试地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json // (7)正式地址:http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx if($this->conf["debug"]){ $ReqURL="http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json"; }else{ $ReqURL="http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx"; } $requestData='{"OrderCode":"","ShipperCode":"'.$com.'","LogisticCode":"'.$num.'" }'; $datas = array( 'EBusinessID' => $this->conf["EBusinessID"], 'RequestType' => '1002', 'RequestData' => urlencode($requestData) , 'DataType' => '2', ); $datas['DataSign'] = $this->encrypt($requestData, $this->conf["AppKey"]); $result=$this->sendPost($ReqURL, $datas); //根据公司业务处理返回的信息...... return $result; } /** * post提交数据 * @param string $url 请求Url * @param array $datas 提交的数据 * @return url响应返回的html */ function sendPost($url, $datas) { $temps = array(); foreach ($datas as $key => $value) { $temps[] = sprintf('%s=%s', $key, $value); } $post_data = implode('&', $temps); $url_info = parse_url($url); $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n"; $httpheader.= "Host:" . $url_info['host'] . "\r\n"; $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n"; $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n"; $httpheader.= "Connection:close\r\n\r\n"; $httpheader.= $post_data; $fd = fsockopen($url_info['host'], $url_info['port']); fwrite($fd, $httpheader); $gets = ""; $headerFlag = true; while (!feof($fd)) { if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) { break; } } while (!feof($fd)) { $gets.= fread($fd, 128); } fclose($fd); return $gets; } /** * 电商Sign签名生成 * @param data 内容 * @param appkey Appkey * @return DataSign签名 */ function encrypt($data, $appkey) { return urlencode(base64_encode(md5($data.$appkey))); } /** * Json方式 提交在线下单 */ function kuaidi100($com,$num){ /* 名称 类型 是否必需 示例值   描述 customer String 是 我方分配给贵司的的公司编号, 请在企业管理后台查看 sign String 是 签名, param Object 是 由其他字段拼接 └ com string 是 yuantong 查询的快递公司的编码, 一律用小写字母 └ num string 是 12345678 查询的快递单号, 单号的最大长度是32个字符 └ phone string 否 13888888888 收、寄件人的电话号码(手机和固定电话均可,只能填写一个,顺丰单号必填,其他快递公司选填。如座机号码有分机号,分机号无需上传。) └ from string 否 广东深圳 出发地城市 └ to string 否 北京朝阳 目的地城市,到达目的地后会加大监控频率 └ resultv2 int 否 1 添加此字段表示开通行政区域解析功能 */ //参数设置 $post_data = array(); //$this->conf["customer"], this->conf["key"], $post_data["customer"] =$this->conf["customer"]; $key= $this->conf["key"] ; $post_data["param"] = '{"com":"'.$com.'","num":"'.$num.'"}'; $url='http://poll.kuaidi100.com/poll/query.do'; $post_data["sign"] = md5($post_data["param"].$key.$post_data["customer"]); $post_data["sign"] = strtoupper($post_data["sign"]); $o=""; foreach ($post_data as $k=>$v) { $o.= "$k=".urlencode($v)."&"; //默认UTF-8编码格式 } $post_data=substr($o,0,-1); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); $retuaz=["code"=>1000,"msg"=>"成功","data"=>json_decode($output)]; return $retuaz; } } ```