TPShop的物流信息显示有点问题,每刷新一次则出现不同的物流信息,怀疑是被快递100进行IP限制或者其他原因,于是便注册了快递100个人版,但是还是不行,每次测试都提示不支持该物流,最后找到快递100的客服电话询问过后才知道快递100个人版不支持现在京东淘宝的相关物流信息查询,言外之意就是必须注册企业版的快递100才能享受快递物流信息的查询,于是,话不多说,我又注册了个企业版的,根据文档提示代码进行开发,代码如下所示:

显示订单物流信息方法:

//显示订单物流信息方法:
public function express(){$order_id = I('get.order_id');$result = $order_goods = $delivery = array();$order_goods = M('order_goods')->where("order_id=$order_id")->select();$delivery = M('delivery_doc')->where("order_id=$order_id")->limit(1)->find();if ($delivery['shipping_code'] && $delivery['invoice_no']) {$result = queryExpress($delivery['shipping_code'], $delivery['invoice_no']);$this->assign('result', $result);$this->assign('order_goods', $order_goods);$this->assign('delivery', $delivery);}$this->display();}

查询订单信息方法:

function queryExpress($postcom,$getNu){$post_data = array();$post_data["customer"] = 'XXXXXX';$key= 'XXXXXX' ;$post_data["param"] = '{"com":"'.$postcom.'","num":"'.$getNu.'"}';$url='http://poll.kuaidi100.com/poll/query.do';$post_data["sign"] = md5($post_data["param"].$key.$post_data["customer"]);$post_data["sign"] = strtoupper($post_data["sign"]);$o="";foreach ($post_data as $k=>$v){$o.= "$k=".urlencode($v)."&";        //默认UTF-8编码格式}$post_data=substr($o,0,-1);$ch = curl_init();curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);$result = curl_exec($ch);$data = str_replace("\"",'"',$result );$data = json_decode($result,true);$data = $data['data'];if (!isset($data)) {return array('status' => 0, 'message' => '查询失败,参数有误');}else{foreach ($data as $key =>$value){$datas[$key]['time'] = $value['time'];$datas[$key]['context'] = $value['context'];}return array('status' => 1, 'message' => 'ok', 'data' => $datas);}return $data;
}

按说参照快递100API文档写是不会出现错误的,但是出现一个奇怪的现象,就是每次请求出的值直接显示到页面中,而我打印的值却接收不到或者接收到打印出显示1,这就令我很尴尬了,于是,查遍百度,最后使用一行代码解决问题,代码如下:

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

当时我也感觉不可思议,一段代码真的可以拯救这个快递100的查询物流信息的问题?我十分不解,便重新百度了这行代码的意思,参考链接如下:

https://www.cnblogs.com/you-jia/p/4118659.html

具体解释引用参考链接如下:

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
或着不使用这个选项: 如果成功只返回TRUE,自动输出返回的内容 再简单点说如果设置成1 如果curl_exec() 的结果是一个return赋值 你可以要它赋值给一个变量 比如 response=curlexec();response=curlexec();
response就是一个你curl执行后的string结果(相当于服务端那边的echo XXX的值;不会直接输出到页面) 反之如果是0, 你的 curl_exec(); 就相当于你设置true的时候 echo $response;

TPShop使用快递100查询订单物流信息相关推荐

  1. java 快递100_使用快递100 查询链接实现快速查询的示例

    Express-Query 本工程使用快递100 查询链接实现,仅供学习,禁止商业使用. 工程主要使用的是快递100官方提供的查询api //先查询该单号所属快递商 http://www.kuaidi ...

  2. 快递100快递java_使用快递100 查询链接实现快速查询的示例

    Express-Query 本工程使用快递100 查询链接实现,仅供学习,禁止商业使用. 工程主要使用的是快递100官方提供的查询api //先查询该单号所属快递商 http://www.kuaidi ...

  3. 续集关于上次简单微信小程序制作 (快递100查询)

    上次给大家简单介绍了小程序的实现原理以及传统APP与小程序的对比,这次给大家点干货: 一,移动互联网的八大平台 IOS.Android.H5.BAT.头条.手机厂商 动态App平台阵营(H5.BAT. ...

  4. 快递100 查询物流信息 Java

    最近项目需要些查询物流信息这个功能,刚开始是一脸懵逼,写什么,怎么写,需要哪些内容...?满脑子空白.上网一看各式各样.五花八门的写法,那么多,该选择哪一个呢? 开始之前先知道以下几个问题: 1.需要 ...

  5. python爬取物流信息_手把手教你用Python爬取快递100查询你的物流信息

    前言 我们经常会去查快递的物流单号,可是这些物流单号是从哪里来的呢? 快递鸟集合了多家快递公司查询接口,输入相应快递公司编码和快递单号就可以获取到对应的物流信息很方便快捷. 项目目标 教会大家如何用P ...

  6. 快递100查询地图轨迹API接口案例代码

    一. 快递查询地图轨迹 1.1 接口格式 提供统一格式的HTTP POST或GET调用接口,并返回格式支持JSON,xml,text,html数据. 1.2 请求地址 https://poll.kua ...

  7. 全国快递查询API接口,支持国内外1500多家快递接口查询,物流信息追踪

    一.接口介绍 支持国内外1500+快递物流公司的物流跟踪服务,包括顺丰.圆通.申通.中通.韵达等主流快递公司.同时,支持单号识别快递物流公司.按次与按单计费.物流轨迹返回等功能,以满足企业对快递物流查 ...

  8. 快递100查询接口工具类

    1.快递物流信息是具有实效性,丰网有效期1个月 其它3个月,超过时效性无法查看,需要根据业务情况是否需要保存到数据库中. 2.查询快递物流信息需要填写手机号的快递公司有:顺丰速运("shun ...

  9. Android 通过第三方平台查询订单物流信息

    本文是通过第三方平台快递鸟查询物流信息 //快递鸟提供的 工具类KdniaoTrackQueryAPI package com.seventc.fanxilvyou.utils; import jav ...

最新文章

  1. cookie记录用户的浏览商品的路径
  2. python文件io是啥意思_Python文件IO(普通文件读写)
  3. ②你真的学会Java了吗?来自《卷Ⅰ》的灵魂提问
  4. 车仪表台上的装饰_一汽大众销量最差的车,旅行车蔚领为什么在国内没有市场?...
  5. 天池-街景字符编码识别5-模型训练与验证
  6. html自动给js添加版本号,通过gulp 在原html文件上自动化添加js、css版本号
  7. 在Linux上安装Mysql 以及 涉及问题
  8. python max_Python max()
  9. 17. Window confirm() 方法
  10. Atitit r2017 r4 doc list on home ntpc.docx 驱动器 D 中的卷是 p2soft 卷的序列号是 9AD0-D3C8 D:\ati ext\r2017
  11. BZOJ4874:筐子放球
  12. 在线购物系统 问题描述、词汇表、领域类图
  13. greenplum segment down 实例
  14. 某Xavier载板硬件方案
  15. 【项目实战】传智健康
  16. 迷你计算机可玩游戏,迷你电脑小主机打游戏可还行?
  17. 为什么越来越多的网站域名不加www前缀?
  18. delete 后加 limit
  19. TestDirector的安装和使用---综合汇总
  20. 备份基础知识及容量测算

热门文章

  1. 用JavaScript打印三角形、金字塔型
  2. 【经验分享(续篇)】Trachtenberg system(特拉亨伯格速算系统)
  3. 无德文人--读钟祥论坛兰台文苑《Y…
  4. 微信小程序获取手机号(Java)
  5. (SPADE)Semantic Image Synthesis with Spatially-Adaptive Normalization
  6. 2021蕲春益才中学高考成绩查询,携手并肩 再谱新篇 | 黄冈市益才国际学校高中部2020—2021学年秋季期末线上家长会...
  7. 巴比特 | 元宇宙每日必读:科技巨头们下场自研AI芯片,微软、谷歌、亚马逊已推出或计划发布8款服务器和AI芯片,Meta也在路上...
  8. python3.8安装ubuntu_科学网—Ubuntu16.04安装Python3.8.5问题及解决方法 - 陈超的博文...
  9. listview嵌套listview,子listview只显示一个item问题
  10. Kafka、RabbitMQ、RocketMQ 之间的区别是什么 ?