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

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

途狐GPSdemo:

<?phpnamespace common\helpers;use common\models\Config;use Yii;use yii\helpers\ArrayHelper;use common\helpers\Universal;use yii\httpclient\Client;/** * 途狐管车开放平台接口 * * @author wangjian * @since 0.1 */class Tuhu{    /**     * @var string app_key     */    public $app_key = '';    /**     * @var string app_secret     */    public $app_secret = '';    /**     * @var string url     */    public $url = '';    /**     * @var string user_id     */    public $user_id = '';    /**     * @var string method     */    public $method = 'POST';    /**     * @var string access_token     */    public $access_token;    /**     * @var array header     */    public $header = [        'Content-Type' => '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车辆实时定位,其余相干接口调用形式参照如上即可