php-智选物流接口demo的示例代码分享
<?php
//电商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://testapi.kdniao.cc:8081/ebusiness/ebusinessorderhandle.aspx');
//正式地址
//defined('requrl') or define('requrl', 'http://api.kdniao.cc/ebusiness/ebusinessorderhandle.aspx');
//调用获取物流轨迹
//-------------------------------------------------------------
$logisticresult = getexprecommendbyjson();
echo $logisticresult;
//-------------------------------------------------------------
/**
* json方式 智选物流
*/
function getexprecommendbyjson(){
$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方式 导入运费模板
*/
function importcosttemplatebyjson(){
$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提交数据
* @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);
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签名生成
* @param data 内容
* @param appkey appkey
* @return datasign签名
*/
function encrypt($data, $appkey) {
return urlencode(base64_encode(md5($data.$appkey)));
}
?>
以上就是php-智选物流接口demo的示例代码分享的详细内容。