首页 > 其他分享 >快递鸟查询订单实例

快递鸟查询订单实例

时间:2024-10-30 15:01:18浏览次数:1  
标签:ApiKey return param 查询 requestData 快递 实例 result datas

<?php
/**
 * @技术QQ群: 可登录官网https://www.kdniao.com/右侧查看技术群号
 * @see: https://kdniao.com/api-track
 * @copyright: 深圳市快金数据技术服务有限公司
 * ID和Key请到官网申请:https://kdniao.com/reg



 * 即时查询接口
 * 此接口用于向快递公司实时查询物流轨迹信息。该功能支持情况需查看技术文档。
 * 正式地址:https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx
 *
 *
 * 系统级参数
 * RequestData       String    R    请求内容为JSON格式 详情可参考接口技术文档:https://www.kdniao.com/documents
 * EBusinessID       String    R    用户ID
 * RequestType       String    R    请求接口指令
 * DataSign           String    R    数据内容签名,加密方法为:把(请求内容(未编码)+ApiKey)进行MD5加密--32位小写,然后Base64编码,最后进行URL(utf-8)编码
 * DataType           String    R    DataType=2,请求、返回数据类型均为JSON格式


 * 应用级参数
 * R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
 * OrderCode      String(30)    O    订单编号
 * ShipperCode      String(10)    R    快递公司编码  详细编码参考《快递鸟接口支持快递公司编码.xlsx》 https://www.kdniao.com/documents
 * LogisticCode      String(30)    R    快递单号
 * CustomerName      String(50)    C    ShipperCode为SF时必填,对应寄件人/收件人手机号后四位;ShipperCode为其他快递时,可不填或保留字段,不可传值

 * 请求示例
 * ZTO请求示例:
 * {
 * "OrderCode": "",
 * "ShipperCode": "ZTO",
 * "LogisticCode": "638650888018",
 * }
 *
 * JD请求示例:
 * {
 * "OrderCode": "",
 * "CustomerName": "",
 * "ShipperCode": "JD",
 * "LogisticCode": "JDVA00003618100",
 * }
 *
 * SF请求示例:
 * {
 * "OrderCode": "",
 * "CustomerName": "1234",
 * "ShipperCode": "SF",
 * "LogisticCode": "SF00003618100",
 * }
 */



//用户ID,快递鸟提供,注意保管,不要泄漏
defined('EBusinessID') or define('EBusinessID', '888888');//即用户ID,登录快递鸟官网会员中心获取 https://www.kdniao.com/UserCenter/v4/UserHome.aspx 
//API key,快递鸟提供,注意保管,不要泄漏
defined('ApiKey') or define('ApiKey', 'c2fb3a23-de82-418c-9411-1234567890');//即API key,登录快递鸟官网会员中心获取 https://www.kdniao.com/UserCenter/v4/UserHome.aspx
//请求url,正式地址
defined('ReqURL') or define('ReqURL', 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx');

$CustomerName = $_REQUEST['CustomerName'];
$ShipperCode = 'JTSD';
$LogisticCode = 'JT2097977556048';

$logisticResult = getOrderTracesByJson($CustomerName,$ShipperCode,$LogisticCode);
echo $logisticResult;


function getOrderTracesByJson($CustomerName='',$ShipperCode,$LogisticCode){
  // 组装应用级参数
    $requestData = [
        "CustomerName" =>$CustomerName,
        "OrderCode"    =>'',
        "ShipperCode"  =>$ShipperCode,
        "LogisticCode" =>$LogisticCode
    ];
    $requestData = json_encode($requestData);
//    var_dump($requestData);die;
  // 组装系统级参数
    $datas = array(
        'EBusinessID' => EBusinessID,
        'RequestType' => '1002', //免费即时查询接口指令1002/在途监控即时查询接口指令8001/地图版即时查询接口指令8003
        'RequestData' => urlencode($requestData) ,
        'DataType' => '2',
    );
    $datas['DataSign'] = encrypt($requestData, ApiKey);
  //以form表单形式提交post请求,post请求体中包含了应用级参数和系统级参数
    $result=sendPost(ReqURL, $datas);    
    
    //根据公司业务处理返回的信息......
    
    return $result;
}
 
/**
 *  post提交数据 
 * @param  string $url 请求Url
 * @param  array $datas 提交的数据 
 * @return url响应返回的html
 */
function sendPost($url, $datas) {
    $postdata = http_build_query($datas);
    $options = array(
      'http' => array(
        'method' => 'POST',
        'header' => 'Content-type:application/x-www-form-urlencoded',
        'content' => $postdata,
        'timeout' => 15 * 60 // 超时时间(单位:s)
      )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    return $result;
}

/**
 * 电商Sign签名生成
 * @param data 内容   
 * @param ApiKey ApiKey
 * @return DataSign签名
 */
function encrypt($data, $ApiKey) {
    return urlencode(base64_encode(md5($data.$ApiKey)));
}

?>

 

标签:ApiKey,return,param,查询,requestData,快递,实例,result,datas
From: https://www.cnblogs.com/wjs2019/p/18515838

相关文章

  • 智能优化揭秘——GaussDB数据库查询重写的自动挖掘与生成
    ​在数据库世界里,查询重写是提升性能的关键环节。WeTune作为一款革命性工具,能自动发现新重写规则,打破现有系统依赖人工发现重写规则的局限,大幅提升数据库查询性能。上海交通大学软件学院副院长王肇国和高斯实验室GaussDB数据库优化器专家Ethan联手开展了一场以《智能优化揭秘—......
  • 如何使用云数据库GaussDB管理平台进行实例安装?
    ​前言随着数字经济的蓬勃发展,数据库也成为企业的关键技术生产力,也是各行各业数字化转型的必要根基。GaussDB作为新一代分布式数据库,核心代码100%自主创新,具备高可用、高安全、高性能、高弹性、高智能、易部署、易迁移的特性,是当前国内唯一能够做到软硬协同、全栈自主的数据库,目......
  • 千万级数据深分页查询SQL性能优化实践
    作者:京东零售曹志飞一、系统介绍和问题描述如何在Mysql中实现上亿数据的遍历查询?先来介绍一下系统主角:关注系统,主要是维护京东用户和业务对象之前的关注关系;并对外提供各种关系查询,比如查询用户的关注商品或店铺列表,查询用户是否关注了某个商品或店铺等。但是最近接到了一个新......
  • C++中结构体是使用实例还是指针
    在C++中,结构体(struct)可以通过指针或直接实例来定义。选择使用指针或直接实例化结构体取决于几个因素,包括内存管理、性能、语义和使用场景。以下是一些常见的考虑因素:1. 内存管理:指针:使用指针时,结构体的实例通常在堆上分配。这允许动态管理内存,可以在运行时决定结构体的......
  • 银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机
    全文链接:https://tecdat.cn/?p=38026原文出处:拓端数据部落公众号分析师:FanghuiShao 在当今金融领域,风险管控至关重要。无论是汽车贷款违约预测、银行挖掘潜在贷款客户,还是信贷风控模型的构建,以及基于决策树的银行信贷风险预警,都是金融机构面临的关键挑战。本银行信贷风控专题......
  • C语言中实现一个包含开卡、查询内容、存钱、取钱、转账和修改密码的银行服务系统
       大家好,我是带我去滑雪,每天教你一个小技巧!   本次在C语言中实现一个包含开卡、查询内容、存钱、取钱、转账和修改密码的银行服务系统,下面开始代码实战。目录一、功能模块设计(1)开卡功能(2)查询内容(3)存钱功能(4)取钱功能(5)转账功能(6)修改密码功能二、数据结构......
  • Python——域名信息查询
    在互联网时代,域名不仅是企业或个人在线身份的标识,也是网络通信的重要组成部分。域名的详细信息,包括IP地址、WHOIS信息和DNS记录,对于网络管理员、安全分析师和普通用户都具有重要的实际意义。这些信息可以帮助用户了解域名的注册信息、所有权、网络配置和安全性。本文将详细介......
  • 总结yolov8做图像实例分割训练时的一些常识点
    计算机视觉中的几个重要的研究方向。主要包括图像分类、目标检测、语义分割、实例分割、全景分割等那么何为实例分割?实例分割比目标检测更进一步,涉及识别图像中的各个对象并将它们与图像的其余部分分割开来。 图像分割可分为:语义分割,实例分割,全景分割。(a)原图,(b)语义分......
  • 大规模语言模型从理论到实践 智能代理的应用实例
    大规模语言模型,智能代理,自然语言处理,深度学习,Transformer,应用实例1.背景介绍近年来,人工智能领域取得了令人瞩目的进展,其中大规模语言模型(LargeLanguageModels,LLMs)作为一种重要的代表,展现出强大的文本生成、理解和翻译能力。这些模型通过训练海量文本数据,学习语言的复......
  • 在ubuntu中查询与某脚本或某设备相关的进程
    一、查询与脚本有关的进程用ps命令在Ubuntu系统中,如果你想查询与特定Python脚本abc.py相关的线程,你可以使用ps命令和grep命令结合来查找。ps命令用于显示当前运行的进程状态,而grep命令可以帮助你过滤出包含指定字符串的行。步骤打开终端。输入以下命令来查询包......