JD京东物流电子面单接口对接文档1、注册账号http://www.kdniao.com/reg2、在官网登录进入用户管理后台,进行实名认证,开通接口3、技术对接及联调(登陆官网使用调试平台进行测试。)4、上线1.接口类型说明1)接口支持的消息接收方式:HTTPPOST2)请求
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
的编码
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
(utf-8):"application/x-www-form-urlencoded;charset=utf-8"3)API地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx4)接口提供:快递鸟5)快递编码:JD2.JSON示例1)JSON请求示例 { "OrderCode": "012657700387", "ShipperCode": "HHTT", "PayType":1, "ExpType":1, "Cost":1.0, "OtherCost":1.0, "Sender":{ "Company": "LV", "Name": "Taylor", "Mobile": "15018442396", "ProvinceName": "上海", "CityName": "上海", "ExpAreaName": "青浦区", "Address": "明珠路73号" }, "Receiver":{ "Company": "GCCUI", "Name": "Yann", "Mobile": "15018442396", "ProvinceName": "北京", "CityName": "北京", "ExpAreaName": "朝阳区", "Address": "三里屯街道雅秀大厦" }, "Commodity":[ { "GoodsName": "鞋子", "Goodsquantity":1, "GoodsWeight":1.0 } ], "AddService":[ { "Name": "COD", "Value": "1020" } ], "Weight":1.0, "Quantity":1, "Volume":0.0, "Remark": "小心轻放", "IsReturnPrintTemplate":1 }2)JSON返回示例 失败: { "EBusinessID": "1237100", "ResultCode": "105", "Reason": "订单号已存在,请勿重复操作", "UniquerRequestNumber":"5e66486b-8fbc-4131-b875-9b13d2ad1354" } 成功: { "EBusinessID": "1237100", "Order":{ "OrderCode": "012657700387", "ShipperCode": "HTKY", "LogisticCode": "50002498503427", "MarkDestination": "京-朝阳(京-1)", "OriginCode": "200000", "OriginName": "上海分拨中心", "PackageCode": "北京" }, "PrintTemplate":"此处省略打印模板HTML内容", "EstimatedDeliveryTime":"2016-03-06", "Callback":"调用时传入的Callback", "Success": true, "ResultCode": "100", "Reason": "成功" }3.JAVA对接源码importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.UnsupportedEncodingException;importjava.net.HttpURLConnection;importjava.net.URL;importjava.net.URLEncoder;importjava.util.HashMap;importjava.util.Map;importcom.sun.org.apache.xerces.internal.impl.dv.util.Base64;importjava.security.MessageDigest;/****ID和Key请到官网申请:http://www.kdniao.com/ServiceApply.aspx*/publicclassKdGoldAPIDemo{ //电商ID privateStringEBusinessID="ID请申请"; //电商加密私钥,注意保管,不要泄漏 privateStringAppKey="KEY请申请"; //请求url,正式环境地址:http://api.kdniao.cc/api/Eorderservice privateStringReqURL="http://testapi.kdniao.cc:8081/api/Eorderservice"; /***Json方式电子面单 *@throwsException*/ publicStringorderOnlineByJson()throwsException{ StringrequestData="{'OrderCode':'118060839871',"+"'ShipperCode':'HHTT',"+"'PayType':1,"+"'ExpType':1,"+"'Cost':1.0,"+"'OtherCost':1.0,"+"'Sender':"+"{"+"'Company':'LV','Name':'Taylor','Mobile':'15018442396','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'},"+"'Receiver':"+"{"+"'Company':'GCCUI','Name':'Yann','Mobile':'15018442396','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'},"+"'Commodity':"+"[{"+"'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}],"+"'Weight':1.0,"+"'Quantity':1,"+"'Volume':0.0,"+"'Remark':'小心轻放',"+"'IsReturnPrintTemplate':1}"; Map<String,String>params=newHashMap<String,String>(); params.put("RequestData",urlEncoder(requestData,"UTF-8")); params.put("EBusinessID",EBusinessID); params.put("RequestType","1007"); StringdataSign=encrypt(requestData,AppKey,"UTF-8"); params.put("DataSign",urlEncoder(dataSign,"UTF-8")); params.put("DataType","2"); Stringresult=sendPost(ReqURL,params); //根据公司业务处理返回的信息...... returnresult; } /***MD5加密*@paramstr内容*@paramcharset编码方式 *@throwsException*/ @SuppressWarnings("unused") privateStringMD5(Stringstr,Stringcharset)throwsException{ MessageDigestmd=MessageDigest.getInstance("MD5"); md.update(str.getBytes(charset)); byte[]result=md.digest(); StringBuffersb=newStringBuffer(32); for(inti=0;i<result.length;i++){ intval=result[i]&0xff; if(val<=0xf){ sb.append("0"); } sb.append(Integer.toHexString(val)); } returnsb.toString().toLowerCase(); } /***base64编码*@paramstr内容*@paramcharset编码方式 *@throwsUnsupportedEncodingException*/ privateStringbase64(Stringstr,Stringcharset)throwsUnsupportedEncodingException{ Stringencoded=Base64.encode(str.getBytes(charset)); returnencoded; } @SuppressWarnings("unused") privateStringurlEncoder(Stringstr,Stringcharset)throwsUnsupportedEncodingException{ Stringresult=URLEncoder.encode(str,charset); returnresult; } /***电商Sign签名生成*@paramcontent内容*@paramkeyValueAppkey*@paramcharset编码方式 *@throwsUnsupportedEncodingException,Exception *@returnDataSign签名*/ @SuppressWarnings("unused") privateStringencrypt(Stringcontent,StringkeyValue,Stringcharset)throwsUnsupportedEncodingException,Exception { if(keyValue!=null) { returnbase64(MD5(content+keyValue,charset),charset); } returnbase64(MD5(content,charset),charset); } /***向指定URL发送POST方法的请求*@paramurl发送请求的URL*@paramparams请求的参数集合*@return远程资源的响应结果*/ @SuppressWarnings("unused") privateStringsendPost(Stringurl,Map<String,String>params){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newStringBuilder();try{URLrealUrl=newURL(url);HttpURLConnectionconn=(HttpURLConnection)realUrl.openConnection();//发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);//POST方法conn.setRequestMethod("POST");//设置通用的请求属性conn.setRequestProperty("accept","*/*");conn.setRequestProperty("connection","Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");conn.connect();//获取URLConnection对象对应的输出流out=newOutputStreamWriter(conn.getOutputStream(),"UTF-8");//发送请求参数if(params!=null){ StringBuilderparam=newStringBuilder(); for(Map.Entry<String,String>entry:params.entrySet()){ if(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());}//flush输出流的缓冲out.flush();//定义BufferedReader输入流来读取URL的响应in=newBufferedReader(newInputStreamReader(conn.getInputStream(),"UTF-8"));Stringline;while((line=in.readLine())!=null){result.append(line);}}catch(Exceptione){e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOExceptionex){ex.printStackTrace();}}returnresult.toString();}}4.PHP对接源码<?php//电商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"]="HHTT";$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);}?>附: