热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

途狐GPS接口调用

​最近有一个我的项目须要对接途狐GPS,这里我写了一个demo,不便咱们来调用处狐GPS的相干接口途狐GPS接口文档:http://opendoc.tuhugc.


最近有一个我的项目须要对接途狐GPS,这里我写了一个demo,不便咱们来调用处狐GPS的相干接口

途狐GPS接口文档:http://opendoc.tuhugc.com/thg…

途狐GPSdemo:

 'application/x-www-form-urlencoded'
    ];


    /**
     * @var string expires access_token生效事件
     */
    public $expires = '7200';


    public function __construct($api_url, $data = [], $method = 'POST')
    {

        $this->access_token = Yii::$app->cache->get('tuhu_access_token');

        $this->data = [
            'appKey' => $this->app_key,
            'v' => '1.0',
            'timestamp' => date('Y-m-d H:i:s'),
            'signMethod' => 'md5',
            'format' => 'json',
        ];

        if (empty($this->access_token)) {
            $this->access_token = $this->getAccessToken();
        }
        if ($data) {
            $this->data = ArrayHelper::merge($this->data, $data);
        }
        $this->url = $this->url . $api_url;
    }

    /**
     * 调用处狐接口
     */
    public function curl()
    {
        $sign = $this->signMd5($this->data);

        $this->data['sign'] = $sign;

        $this->header['X-Access-Token'] = $this->access_token;
        $client = new Client();
        $respOnse= $client->createRequest()
            ->setMethod($this->method) // 申请形式
            ->setUrl($this->url)      // 申请地址
            ->setData($this->data)
            ->setHeaders($this->header)
            ->send();
        if ($response->isOk) {
            $result = isset($response->data['result']) ? $response->data['result'] : [];
            return $result;
        }

        Yii::$app->cache->delete('tuhu_access_token');
        return false;
    }


    public function getAccessToken()
    {
        $data = $this->data;

        $url = $this->url . '/v1/token/get';

        //公有参数
        $data['userId'] = $this->user_id;
        $data['expiresIn'] = $this->expires;


        $sign = $this->signMd5($data);

        $data['sign'] = $sign;

        $client = new Client();
        $respOnse= $client->createRequest()
            ->setMethod('POST') // 申请形式
            ->setUrl($url)      // 申请地址
            ->setData($data)
            ->setHeaders($this->header)
            ->send();
        $accessToken = isset($response->data['result']['accessToken']) ? $response->data['result']['accessToken'] : '';
        if ($accessToken) {
            Yii::$app->cache->set('tuhu_access_token', $accessToken, $this->expires);
            return $accessToken;
        }

        return '';
    }

    /**
     * md5签名
     */
    public function signMd5($data)
    {
        //获取待签名字符串
        ksort($data);
        reset($data);
        $query = '';
        foreach ($data as $key => $value) {
            $query .= $key . $value;
        }

        $sign = $this->app_secret . $query . $this->app_secret;
        //签名
        return strtoupper(md5($sign));
    }


}

须要将demo中url,app_key,app_secret,user_id改成您本人的即可

使用处狐GPSdemo简略示例
回去GPS车辆实时定位

$tuhu = new Tuhu('/v1/device/location/list', [
    'userId' => '用户ID',
    'mapType' => 'GOOGLE',//GOOGLE/BAIDU
]);
$data = $tuhu->curl();

如上既能够获取到GPS车辆实时定位,其余相干接口调用形式参照如上即可



推荐阅读
author-avatar
手机用户2602885351
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有