This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop/source/application/common/library/express/Kuaidi100.php
2020-04-25 22:20:29 +08:00

76 lines
1.9 KiB
PHP

<?php
namespace app\common\library\express;
use think\Cache;
/**
* 快递100API模块
* Class Kuaidi100
* @package app\common\library\express
*/
class Kuaidi100
{
/* @var array $config 微信支付配置 */
private $config;
/* @var string $error 错误信息 */
private $error;
/**
* 构造方法
* WxPay constructor.
* @param $config
*/
public function __construct($config)
{
$this->config = $config;
}
/**
* 执行查询
* @param $express_code
* @param $express_no
* @return bool
*/
public function query($express_code, $express_no)
{
// 缓存索引
$cacheIndex = 'express_' . $express_code . '_' . $express_no;
if ($data = Cache::get($cacheIndex)) {
return $data;
}
// 参数设置
$postData = [
'customer' => $this->config['customer'],
'param' => json_encode([
'resultv2' => '1',
'com' => $express_code,
'num' => $express_no
])
];
$postData['sign'] = strtoupper(md5($postData['param'] . $this->config['key'] . $postData['customer']));
// 请求快递100 api
$url = 'http://poll.kuaidi100.com/poll/query.do';
$result = curlPost($url, http_build_query($postData));
$express = json_decode($result, true);
// 记录错误信息
if (isset($express['returnCode']) || !isset($express['data'])) {
$this->error = isset($express['message']) ? $express['message'] : '查询失败';
return false;
}
// 记录缓存, 时效5分钟
Cache::set($cacheIndex, $express['data'], 300);
return $express['data'];
}
/**
* 返回错误信息
* @return string
*/
public function getError()
{
return $this->error;
}
}