Sample code sharing of PHP-Smart Logistics Interface demo

黄舟
Release: 2023-03-06 20:44:01
Original
1542 people have browsed it

PHP-Smart logistics interface demo sample code sharing

<?php
//电商ID
defined(&#39;EBusinessID&#39;) or define(&#39;EBusinessID&#39;, &#39;请到快递鸟官网申请http://kdniao.com/reg&#39;);
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
defined(&#39;AppKey&#39;) or define(&#39;AppKey&#39;, &#39;请到快递鸟官网申请http://kdniao.com/reg&#39;);
//请求url
//测试地址
defined(&#39;ReqURL&#39;) or define(&#39;ReqURL&#39;, &#39;http://testapi.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx&#39;);
//正式地址
//defined(&#39;ReqURL&#39;) or define(&#39;ReqURL&#39;, &#39;http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx&#39;);
 
 //调用获取物流轨迹
//-------------------------------------------------------------
 
$logisticResult = getExpRecommendByJson();
echo $logisticResult;
 
//-------------------------------------------------------------
  
/**
 * Json方式 智选物流
 */
function getExpRecommendByJson(){
    $requestData= "{&#39;MemberID&#39;:&#39;123456&#39;,&#39;WarehouseID&#39;:&#39;1&#39;,&#39;Detail&#39;:[{&#39;OrderCode&#39;:&#39;12345&#39;,&#39;IsCOD&#39;:0,
    &#39;Sender&#39;:{&#39;ProvinceName&#39;:&#39;广东省&#39;,&#39;CityName&#39;:&#39;广州&#39;,&#39;ExpAreaName&#39;:&#39;龙岗区&#39;,&#39;Subdistrict&#39;:&#39;布吉街道&#39;,&#39;Address&#39;:&#39;518000&#39;},
    &#39;Receiver&#39;:{&#39;ProvinceName&#39;:&#39;广东&#39;,&#39;CityName&#39;:&#39;梅州&#39;,&#39;ExpAreaName&#39;:&#39;丰顺&#39;,&#39;Subdistrict&#39;:&#39;布吉街道&#39;,&#39;Address&#39;:&#39;518000&#39;},
    &#39;Goods&#39;:[{&#39;ProductName&#39;:&#39;包&#39;,&#39;Volume&#39;:&#39;&#39;,&#39;Weight&#39;:&#39;1&#39;}]},{&#39;OrderCode&#39;:&#39;12346&#39;,&#39;IsCOD&#39;:0,&#39;Sender&#39;:{&#39;ProvinceName&#39;:&#39;广东省&#39;,
    &#39;CityName&#39;:&#39;广州&#39;,&#39;ExpAreaName&#39;:&#39;龙岗区&#39;,&#39;Subdistrict&#39;:&#39;布吉街道&#39;,&#39;Address&#39;:&#39;518000&#39;},&#39;Receiver&#39;:{&#39;ProvinceName&#39;:&#39;湖南&#39;,
    &#39;CityName&#39;:&#39;长沙&#39;,&#39;ExpAreaName&#39;:&#39;龙岗区&#39;,&#39;Subdistrict&#39;:&#39;布吉街道&#39;,&#39;Address&#39;:&#39;518000&#39;},&#39;Goods&#39;:[{&#39;ProductName&#39;:&#39;包&#39;,&#39;Volume&#39;:&#39;&#39;,&#39;Weight&#39;:&#39;1&#39;}]}]}";
    $datas = array(
        &#39;EBusinessID&#39; => EBusinessID,
        &#39;RequestType&#39; => &#39;2006&#39;,
        &#39;RequestData&#39; => urlencode($requestData) ,
        &#39;DataType&#39; => &#39;2&#39;,
    );
    $datas[&#39;DataSign&#39;] = encrypt($requestData, AppKey);
    $result=sendPost(ReqURL, $datas); 
     
    //根据公司业务处理返回的信息......
     
    return $result;
}
  
/**
 * Json方式 导入运费模板
 */
function importCostTemplateByJson(){
    $requestData= "{&#39;MemberID&#39;:&#39;123456&#39;,&#39;Detail&#39;:[{&#39;ShipperCode&#39;:&#39;YD&#39;,&#39;SendProvince&#39;:&#39;广东&#39;,&#39;SendCity&#39;:&#39;广州&#39;,&#39;SendExpArea&#39;:&#39;天河&#39;,
    &#39;ReceiveProvince&#39;:&#39;湖南&#39;,&#39;ReceiveCity&#39;:&#39;长沙&#39;,&#39;ReceiveExpArea&#39;:&#39;龙岗&#39;,&#39;FirstWeight&#39;:&#39;1&#39;,&#39;FirstFee&#39;:&#39;8&#39;,&#39;AdditionalWeight&#39;:&#39;1&#39;,
    &#39;AdditionalFee&#39;:&#39;10&#39;,&#39;WeightFormula&#39;:&#39;&#39;},{&#39;ShipperCode&#39;:&#39;YD&#39;,&#39;SendProvince&#39;:&#39;广东&#39;,&#39;SendCity&#39;:&#39;广州&#39;,&#39;SendExpArea&#39;:&#39;天河&#39;,
    &#39;ReceiveProvince&#39;:&#39;湖南&#39;,&#39;ReceiveCity&#39;:&#39;长沙&#39;,&#39;ReceiveExpArea&#39;:&#39;雨花&#39;,&#39;FirstWeight&#39;:&#39;1&#39;,&#39;FirstFee&#39;:&#39;8&#39;,
    &#39;AdditionalWeight&#39;:&#39;1&#39;,&#39;AdditionalFee&#39;:&#39;10&#39;,&#39;WeightFormula&#39;:&#39;{{w-0}-0.4}*{{{1000-w}-0.4}+1}*4.700+ {{w-1000}-0.6}*[(w-1000)/1000]*4.700)&#39;,
    &#39;ShippingType&#39;:&#39;1&#39;,&#39;IntervalList&#39;:[{&#39;StartWeight&#39;: 1.0,&#39;EndWeight&#39;: 2.0, &#39;Fee&#39;: 3.0}]}]}";
    $datas = array(
        &#39;EBusinessID&#39; => EBusinessID,
        &#39;RequestType&#39; => &#39;2004&#39;,
        &#39;RequestData&#39; => urlencode($requestData) ,
        &#39;DataType&#39; => &#39;2&#39;,
    );
    $datas[&#39;DataSign&#39;] = 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(&#39;%s=%s&#39;, $key, $value);     
    }  
    $post_data = implode(&#39;&&#39;, $temps);
    $url_info = parse_url($url);
    if(empty($url_info[&#39;port&#39;]))
    {
        $url_info[&#39;port&#39;]=80;  
    }
    $httpheader = "POST " . $url_info[&#39;path&#39;] . " HTTP/1.0\r\n";
    $httpheader.= "Host:" . $url_info[&#39;host&#39;] . "\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[&#39;host&#39;], $url_info[&#39;port&#39;]);
    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)));
}
 
?>
Copy after login

The above is the detailed content of Sample code sharing of PHP-Smart Logistics Interface demo. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!