电子面单是一种通过热敏纸打印输出纸质×××的物流服务。通过热感应显示文字,打印速度比传统针式打印速度提升4~6倍。电子面单以接口形式嵌入到自己的系统、网站上,可以在自己的平台操作打印电子面单。

1.接口描述

接口支持的消息接收方式:HTTPPOST

请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"

API地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx

接口提供:快递鸟

2.请求系统级参数

参数名称

类型

说明

必须要求

RequestData

String

请求内容需进行URL(utf-8)编码。请求内容JSON格式,须和DataType一致。

R

EBusinessID

String

商户ID,请在我的服务页面查看。

R

RequestType

String

请求指令类型:1007

R

DataSign

String

数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。详细过程请查看Demo。

R

DataType

String

请求、返回数据类型:只支持JSON格式

O

备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)

3.PHP对接源码

<?php/****快递鸟电子面单接口**@技术QQ:4009633321*@技术QQ群:200121393*@see:http://www.kdniao.com/MiandanAPI.aspx*@copyright:深圳市快金数据技术服务有限公司**ID和Key请到官网申请:http://www.kdniao.com/ServiceApply.aspx*///电商IDdefined('EBusinessID')ordefine('EBusinessID','请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx');//电商加密私钥,快递鸟提供,注意保管,不要泄漏defined('AppKey')ordefine('AppKey','请到快递鸟官网申请http://www.kdniao.com/ServiceApply.aspx');//请求url,接口正式地址:http://api.kdniao.cc/api/Eorderservicedefined('ReqURL')ordefine('ReqURL','http://testapi.kdniao.cc:8081/api/Eorderservice');//调用获取物流轨迹//-------------------------------------------------------------//构造电子面单提交信息$eorder=[];$eorder["ShipperCode"]="SF";$eorder["OrderCode"]="PM201604062341";$eorder["PayType"]=1;$eorder["ExpType"]=1;$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";$commodityOne=[];$commodityOne["GoodsName"]="其他";$commodity=[];$commodity[]=$commodityOne;$eorder["Sender"]=$sender;$eorder["Receiver"]=$receiver;$eorder["Commodity"]=$commodity;//调用电子面单$jsonParam=json_encode($eorder,JSON_UNESCAPED_UNICODE);//$jsonParam=JSON($eorder);//兼容php5.2(含)以下echo"电子面单接口提交内容:<br/>".$jsonParam;$jsonResult=submitEOrder($jsonParam);echo"<br/><br/>电子面单提交结果:<br/>".$jsonResult;//解析电子面单返回结果$result=json_decode($jsonResult,true);echo"<br/><br/>返回码:".$result["ResultCode"];if($result["ResultCode"]=="100"){echo"<br/>是否成功:".$result["Success"];}else{echo"<br/>电子面单下单失败";}//-------------------------------------------------------------/***Json方式查询订单物流轨迹*/functionsubmitEOrder($requestData){$datas=array('EBusinessID'=>EBusinessID,'RequestType'=>'1007','RequestData'=>urlencode($requestData),'DataType'=>'2',);$datas['DataSign']=encrypt($requestData,AppKey);$result=sendPost(ReqURL,$datas);//根据公司业务处理返回的信息......return$result;}/***post提交数据*@paramstring$url请求Url*@paramarray$datas提交的数据*@returnurl响应返回的html*/functionsendPost($url,$datas){$temps=array();foreach($datasas$key=>$value){$temps[]=sprintf('%s=%s',$key,$value);}$post_data=implode('&',$temps);$url_info=parse_url($url);if($url_info['port']==''){$url_info['port']=80;}echo$url_info['port'];$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签名生成*@paramdata内容*@paramappkeyAppkey*@returnDataSign签名*/functionencrypt($data,$appkey){returnurlencode(base64_encode(md5($data.$appkey)));}/****************************************************************使用特定function对数组中所有元素做处理*@paramstring&$array要处理的字符串*@paramstring$function要执行的函数*@returnboolean$apply_to_keys_also是否也应用到key上*@accesspublic**************************************************************/functionarrayRecursive(&$array,$function,$apply_to_keys_also=false){static$recursive_counter=0;if(++$recursive_counter>1000){die('possibledeeprecursionattack');}foreach($arrayas$key=>$value){if(is_array($value)){arrayRecursive($array[$key],$function,$apply_to_keys_also);}else{$array[$key]=$function($value);}if($apply_to_keys_also&&is_string($key)){$new_key=$function($key);if($new_key!=$key){$array[$new_key]=$array[$key];unset($array[$key]);}}}$recursive_counter--;}/****************************************************************将数组转换为JSON字符串(兼容中文)*@paramarray$array要转换的数组*@returnstring转换得到的json字符串*@accesspublic**************************************************************/functionJSON($array){arrayRecursive($array,'urlencode',true);$json=json_encode($array);returnurldecode($json);}?>