PHP 之快递100接口封装
时间:2019-08-23
本文章向大家介绍PHP 之快递100接口封装,主要包括PHP 之快递100接口封装使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
<?php /** * Created by PhpStorm. * User: Yang * Date: 2019/8/23 * Time: 10:38 */ class Kuaidi_Query { private $_query_url = 'http://poll.kuaidi100.com/poll/query.do'; //实时查询请求地址 // private $_url = 'http://www.kuaidi100.com/autonumber/auto?num=906919164534&key=IobfFnLz2751'; //实时查询请求地址 private $_auto_url = 'http://www.kuaidi100.com/autonumber/auto'; //实时查询请求地址 private $_key = ""; private $_customer = ""; private $_params = array(); public function __construct($num, $com = '', $phone = '', $from = '', $to = '', $resultv2 = 1) { if (empty($com)) { //归属公司智能判断 $com = $this->check($num); } $params = array( 'com' => $com, //快递公司编码 'num' => $num, //快递单号 'phone' => $phone, //手机号 'from' => $from, //出发地城市 'to' => $to, //目的地城市 'resultv2' => $resultv2 //开启行政区域解析 ); $this->_params = $params; } /** * 单号归属公司智能判断接口 * @param $num * @return mixed */ public function check($num) { $url = $this->_auto_url."?num=".$num."&key=".$this->_key; $data = $this->get_curl($url); $data_array = json_decode($data, true); return $data_array[0]['comCode']; } /** * 执行快递查询接口 * @return mixed */ public function Query() { $post_data = array(); $post_data["customer"] = $this->_customer; $post_data["param"] = json_encode($this->_params); $sign = md5($post_data["param"] . $this->_key . $post_data["customer"]); $post_data["sign"] = strtoupper($sign); $params = ""; foreach ($post_data as $k => $v) { $params .= "$k=" . urlencode($v) . "&"; //默认UTF-8编码格式 } $post_data = substr($params, 0, -1); $query_data = $this->post_curl($this->_query_url, $post_data); return $query_data; } /** * get 请求 * @param $url * @return mixed */ public function get_curl($url) { $ch = curl_init();//初始化 curl_setopt($ch, CURLOPT_URL, $url);//访问的URL curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出 $result = curl_exec($ch);//执行请求 curl_close($ch);//关闭curl,释放资源 $data = str_replace("\"", '"', $result); return $result; } /** * post 请求 * @param $post_data * @return mixed */ public function post_curl($url, $post_data) { //发送post请求 $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); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); $data = str_replace("\"", '"', $result); $data = json_decode($data, true); return $data; } }
原文地址:https://www.cnblogs.com/yang-2018/p/11399391.html
- 12个非常有用的JavaScript技巧
- 改变开发者编码思维的六种编程范式
- PostgreSQL并行查询是个什么“鬼"?
- 想弄一台简单的区块链服务器?来这里看看!!
- NNabla:索尼开源的一款神经网络框架
- 黑客与C语言
- 浅谈分布式事务
- 漫谈千亿级数据优化实践:一次数据优化实录
- Facebook开源游戏平台ELF:一个用于实时战略游戏研究的轻量级平台
- 用不到50行的Python代码构建最小的区块链
- 学习笔记CB002:词干提取、词性标注、中文切词、文档分类
- 深入浅出 Retrofit,这么牛逼的框架你们还不来看看?
- 用Python从零开始构建反向传播算法
- 备战CDA数据分析竞赛!Kaggle赛题大揭秘
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- ASP.NET Core 警惕可空类型开启之后模型校验失败
- os.path.abspath()的作用
- 机器学习-Coursera笔记
- 抖音解析-抖音视频去水印下载
- 自定义View | 基础概述 & 自定义TextView实战 & 基于源码分析自定义View继承自ViewGroup时无法正常绘制的问题
- AQS 原理剖析
- 无来源ip的RDP爆破防御对策小记
- 在 Kotlin 的 data class 中使用 MapStruct
- 内存占用用手就能算出来
- 如何在 CentOS 下快速搭建 Nginx 服务器
- Servlet API 源码剖析
- Borg:Google集群管理大杀器
- 一文了解Zookeeper
- 【投稿】刀哥:Rust学习笔记 4
- Spring Boot 运行源码剖析