//智选物流API-(PHP)demo |
//接入流程: |
//1)在快递鸟官网右上角点击注册,提交申请获取授权商户ID和API key |
//2)在官网点击登录进入用户管理后台,进行实名认证,申请API开通使用 |
//3)在官网导航点击技术支持-下载接口技术文档,按照技术文档开发后联调 |
//4)“物流跟踪接口”对接需在用户管理后台设置回调地址,在调试平台联调测试后上线 |
<?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))); |
} |
?> |
by: 发表于:2017-12-27 10:09:43 顶(0) | 踩(0) 回复
??
回复评论