接上篇 实时获取淘宝天猫商品的评价晒单数据, 这里则是基于订单的物流单号, 调用接口获取物流进度, 接口信息:
请求地址: https://taoapi.ndxiu.com/service/get_logis.php
请求方式: get
请求示例:{id:'物流单号',appkey:'专属 appkey',sign:'签名参数'}
建议场景: 为了保证接口调用效率, 建议在客户端使用 Ajax 方法发起调用.
请求参数信息
接口返回的 JSON 数据包
比较简单的 JSON 数据包, 使用 jq 构造物流信息页.
服务端生成签名参数 (以 PHP 为例):
- // 这里是您自己的鉴权代码, 通过鉴权后才开始下面的签名
- $appkey = 'tbw******'; // 这里填写您的 appkey
- $appsecret = '******'; // 这里填写您的 appsecret
- $noncestr = getNonceStr(6); // 生成随机字符串
- $date = date('Y-m-d'); // 生成日期
- $signature = getSignature($appkey,$appsecret,$date,$id); // 生成签名
- echo json_encode(array('id'=>$id,'appkey'=>$appkey,'sign'=>$signature)); // 输出 JSON 字符串到客户端
- // 通过 md5 加密生成签名的函
- function getSignature($appkey,$appsecret,$date,$id){
- $string = $appkey.$appsecret.$date.$id;
- $md5 = md5($string);
- return $md5;
- }
何时开始签名? 当您的用户需要查询物流信息时发起签名, 将签名直接跟页面一起返回.
客户端使用 Ajax 发起调用:
- function getLogis(id,appkey,sign){ // 传入的实参建议不要暴露给全局
- $.Ajax({
- type: 'GET', // 使用 GET 请求方式
- async: false,
- url: 'https//taoapi.ndxiu.com/service/get_logis.php',
- data: {
- id:id,
- appkey:appkey,
- sign:sign
- },
- dataType: 'jsonp', // 解决跨域调用问题
- JSONP: 'callback',
- jsonpCallback: 'showLogis',
- success: function(JSONP){
- // 生成并显示物流信息
- },
- error: function(){}
- });
- }
需要注意当客户端请求详情时时间点刚好跨到第二天的情况, 返回 0019 错误 (签名参数无效), 此时请重新生成签名重复请求一次即可.
另外, 该接口是直接对接各个物流快递公司的开放接口, 所以不能查询菜鸟的揽收进度.
以上的 get_logis 接口需要前往 taoapi.ndxiu.com 注册申请.
笔者的另外文章:
1, 实时同步获取淘宝商品的 SKU 数据
2, 如何获取淘宝天猫商品的详情图数据
3, 实时获取淘宝天猫商品的评价晒单数据
4, 使用 JQ 开发仿淘宝 SKU 选择器 (待更)
来源: http://www.bubuko.com/infodetail-2876641.html