智选物流API对接案例.docx
- 文档编号:29034425
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:16
- 大小:20.12KB
智选物流API对接案例.docx
《智选物流API对接案例.docx》由会员分享,可在线阅读,更多相关《智选物流API对接案例.docx(16页珍藏版)》请在冰豆网上搜索。
智选物流API对接案例
智选物流API对接案例
接入流程:
1)在快递鸟官网右上角点击注册,提交申请获取授权商户ID和APIkey
2)在官网点击登录进入用户管理后台,进行实名认证,申请API开通使用
3)在官网导航点击技术支持-下载接口技术文档,按照技术文档开发后联调
4)“物流跟踪接口”对接需在用户管理后台设置回调地址,在调试平台联调测试后上线
PHPdemo
php
//电商ID
defined('EBusinessID')ordefine('EBusinessID','请申请
//电商加密私钥,注意保管,不要泄漏
defined('AppKey')ordefine('AppKey','请申请
//请求url
//测试地址
defined('ReqURL')ordefine('ReqURL','http:
//testapi.kdniao.cc:
8081/Ebusiness/EbusinessOrderHandle.aspx');
//正式地址
//defined('ReqURL')ordefine('ReqURL','http:
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx');
//调用获取物流轨迹
//-------------------------------------------------------------
$logisticResult=getExpRecommendByJson();
echo$logisticResult;
//-------------------------------------------------------------
/**
*Json方式智选物流
*/
functiongetExpRecommendByJson(){
$requestData="{'MemberID':
'123456','WarehouseID':
'1','Detail':
[{'OrderCode':
'12345','IsCOD':
0,'Sender':
{'ProvinceName':
'广东省','CityName':
'广州','ExpAreaName':
'龙岗区','Subdistrict':
'布吉街道','Address':
'518000'},'Receiver':
{'ProvinceName':
'广东','CityName':
'梅州','ExpAreaName':
'丰顺','Subdistrict':
'布吉街道','Address':
'518000'},'Goods':
[{'ProductName':
'包','Volume':
'','Weight':
'1'}]},{'OrderCode':
'12346','IsCOD':
0,'Sender':
{'ProvinceName':
'广东省','CityName':
'广州','ExpAreaName':
'龙岗区','Subdistrict':
'布吉街道','Address':
'518000'},'Receiver':
{'ProvinceName':
'湖南','CityName':
'长沙','ExpAreaName':
'龙岗区','Subdistrict':
'布吉街道','Address':
'518000'},'Goods':
[{'ProductName':
'包','Volume':
'','Weight':
'1'}]}]}";
$datas=array(
'EBusinessID'=>EBusinessID,
'RequestType'=>'2006',
'RequestData'=>urlencode($requestData),
'DataType'=>'2',
);
$datas['DataSign']=encrypt($requestData,AppKey);
$result=sendPost(ReqURL,$datas);
//根据公司业务处理返回的信息......
return$result;
}
/**
*Json方式导入运费模板
*/
functionimportCostTemplateByJson(){
$requestData="{'MemberID':
'123456','Detail':
[{'ShipperCode':
'YD','SendProvince':
'广东','SendCity':
'广州','SendExpArea':
'天河','ReceiveProvince':
'湖南','ReceiveCity':
'长沙','ReceiveExpArea':
'龙岗','FirstWeight':
'1','FirstFee':
'8','AdditionalWeight':
'1','AdditionalFee':
'10','WeightFormula':
''},{'ShipperCode':
'YD','SendProvince':
'广东','SendCity':
'广州','SendExpArea':
'天河','ReceiveProvince':
'湖南','ReceiveCity':
'长沙','ReceiveExpArea':
'雨花','FirstWeight':
'1','FirstFee':
'8','AdditionalWeight':
'1','AdditionalFee':
'10','WeightFormula':
'{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+{{w-1000}-0.6}*[(w-1000)/1000]*4.700)','ShippingType':
'1','IntervalList':
[{'StartWeight':
1.0,'EndWeight':
2.0,'Fee':
3.0}]}]}";
$datas=array(
'EBusinessID'=>EBusinessID,
'RequestType'=>'2004',
'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(empty($url_info['port']))
{
$url_info['port']=80;
}
$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)));
}
?
>
JAVAdemo
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.io.UnsupportedEncodingException;
import.HttpURLConnection;
import.URL;
import.URLEncoder;
importjava.security.MessageDigest;
importjava.util.HashMap;
importjava.util.Map;
/**
**
*ID和Key请到官网申请:
*/
publicclassKdApiExpRecommend{
//DEMO
publicstaticvoidmain(String[]args){
KdApiExpRecommendapi=newKdApiExpRecommend();
try{
Stringresult=api.getOrderTracesByJson();
System.out.print(result);
}catch(Exceptione){
e.printStackTrace();
}
}
//电商ID
privateStringEBusinessID="请申请
//电商加密私钥,注意保管,不要泄漏
privateStringAppKey="请申请
//请求url
privateStringReqURL="http:
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
/**
*Json方式智选物流
*@throwsException
*/
publicStringgetExpRecommendByJson()throwsException{
StringrequestData="{'MemberID':
'123456','WarehouseID':
'1','Detail':
[{'OrderCode':
'12345','IsCOD':
0,'Sender':
{'ProvinceName':
'广东省','CityName':
'广州','ExpAreaName':
'龙岗区','Subdistrict':
'布吉街道','Address':
'518000'},'Receiver':
{'ProvinceName':
'广东','CityName':
'梅州','ExpAreaName':
'丰顺','Subdistrict':
'布吉街道','Address':
'518000'},'Goods':
[{'ProductName':
'包','Volume':
'','Weight':
'1'}]},{'OrderCode':
'12346','IsCOD':
0,'Sender':
{'ProvinceName':
'广东省','CityName':
'广州','ExpAreaName':
'龙岗区','Subdistrict':
'布吉街道','Address':
'518000'},'Receiver':
{'ProvinceName':
'湖南','CityName':
'长沙','ExpAreaName':
'龙岗区','Subdistrict':
'布吉街道','Address':
'518000'},'Goods':
[{'ProductName':
'包','Volume':
'','Weight':
'1'}]}]}";
Map
params.put("RequestData",urlEncoder(requestData,"UTF-8"));
params.put("EBusinessID",EBusinessID);
params.put("RequestType","2006");
StringdataSign=encrypt(requestData,AppKey,"UTF-8");
params.put("DataSign",urlEncoder(dataSign,"UTF-8"));
params.put("DataType","2");
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
}
/**
*Json方式导入运费模板
*@throwsException
*/
publicStringimportCostTemplateByJson()throwsException{
StringrequestData="{'MemberID':
'123456','Detail':
[{'ShipperCode':
'YD','SendProvince':
'广东','SendCity':
'广州','SendExpArea':
'天河','ReceiveProvince':
'湖南','ReceiveCity':
'长沙','ReceiveExpArea':
'龙岗','FirstWeight':
'1','FirstFee':
'8','AdditionalWeight':
'1','AdditionalFee':
'10','WeightFormula':
''},{'ShipperCode':
'YD','SendProvince':
'广东','SendCity':
'广州','SendExpArea':
'天河','ReceiveProvince':
'湖南','ReceiveCity':
'长沙','ReceiveExpArea':
'雨花','FirstWeight':
'1','FirstFee':
'8','AdditionalWeight':
'1','AdditionalFee':
'10','WeightFormula':
'{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+{{w-1000}-0.6}*[(w-1000)/1000]*4.700)','ShippingType':
'1','IntervalList':
[{'StartWeight':
1.0,'EndWeight':
2.0,'Fee':
3.0}]}]}";
Map
params.put("RequestData",urlEncoder(requestData,"UTF-8"));
params.put("EBusinessID",EBusinessID);
params.put("RequestType","2004");
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 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=base64Encode(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 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物流 API 对接 案例