PHP-Smart Logistics Interface 데모의 샘플 코드 공유

黄舟
풀어 주다: 2023-03-06 20:44:01
원래의
1542명이 탐색했습니다.

PHP-스마트 물류 인터페이스 데모 샘플 코드 공유

<?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)));
}
 
?>
로그인 후 복사

위 내용은 PHP-Smart Logistics Interface 데모의 샘플 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!