feliperoberto/non-official-correios-api

该包最新版本(v1.0.0)没有可用的许可证信息。

巴西Correios的非官方API

v1.0.0 2019-03-01 21:17 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:37:01 UTC


README

这是一个用于直接从Correios网站获取并处理数据的类包。您可以直接通过PHP代码中的静态调用或通过HTTP调用来使用该API。

PHP调用

\Correios\CEP::buscar($cep);
\Correios\Rastreio::localizar($codigo_rastreio);

该包也可在 https://packagist.org.cn/packages/feliperoberto/non-official-correios-api 上找到,并通过php composer进行安装。

php composer.phar install feliperoberto/non-official-correios-api

使用示例

<?php
require 'vendor/autoload.php';
if(isset($_GET['cep'])){
	header('Content-Type: text/json; charset=UTF-8');
	$endereco = \Correios\CEP::buscar(preg_replace('/[^0-9]/', '', $_GET['cep']));
	die(json_encode($endereco ? $endereco[0] : null));
}elseif(isset($_GET['endereco'])){
	header('Content-Type: text/json; charset=UTF-8');
	die(json_encode(\Correios\CEP::buscar($_GET['endereco'])));
}elseif(isset($_GET['codigo_rastreio'])){
	header('Content-Type: text/json; charset=UTF-8');
	die(json_encode(\Correios\Rastreio::localizar($_GET['codigo_rastreio'])));
}

HTTP调用

您可以通过CEP获取结构化地址,通过部分地址查找CEP,或查询订单跟踪历史。

CEP查询

发送所需CEP的字符串,返回包含地址属性的物体。如果找不到,将返回null

curl -X GET http://127.0.0.1/?cep=01001001
{
    "bairro": "S\u00e9\u00a0",
    "cep": "01001-001",
    "cidade": "S\u00e3o Paulo",
    "logradouro": "Pra\u00e7a da S\u00e9 - lado par\u00a0",
    "uf": "SP\u00a0"
}

地址搜索

发送要搜索的地址字符串,将返回地址物体列表。如果没有结果,将返回空列表。

curl -X GET http://127.0.0.1/?endereco=av%20paulista
[
    {
        "bairro": "Alvorada\u00a0",
        "cep": "45820-839",
        "cidade": "Eun\u00e1polis",
        "logradouro": "Avenida Paulista\u00a0",
        "uf": "BA\u00a0"
    },
    {
        "bairro": "Calabet\u00e3o\u00a0",
        "cep": "41227-025",
        "cidade": "Salvador",
        "logradouro": "Avenida Paulista\u00a0",
        "uf": "BA\u00a0"
    },
    {
        "bairro": "Jardim Panorama\u00a0",
        "cep": "13504-654",
        "cidade": "Rio Claro",
        "logradouro": "Avenida Paulista - de 2500/2501 a 2998/2999\u00a0",
        "uf": "SP\u00a0"
    }
]

订单跟踪

curl -X GET http://127.0.0.1/?codigo_rastreio=OG490654336BR
[
    {
        "cidade": "RIO DE JANEIRO",
        "data": "2019-03-01 01:57:00",
        "mensagem": "Objeto encaminhado de Unidade de Tratamento em RIO DE JANEIRO / RJ para Unidade de Distribui\u00e7\u00e3o em Rio De Janeiro / RJ",
        "status": "Objeto encaminhado",
        "uf": "RJ"
    },
    {
        "cidade": "RIO DE JANEIRO",
        "data": "2019-02-28 17:50:00",
        "mensagem": "Objeto encaminhado de Ag\u00eancia dos Correios em RIO DE JANEIRO / RJ para Unidade de Tratamento em RIO DE JANEIRO / RJ",
        "status": "Objeto encaminhado",
        "uf": "RJ"
    },
    {
        "cidade": "RIO DE JANEIRO",
        "data": "2019-02-28 17:15:00",
        "mensagem": "Objeto postado",
        "status": "Objeto postado",
        "uf": "RJ"
    }
]

在Heroku上部署

简要说明。

git clone https://github.com/feliperoberto/correios-cep.git
heroku login
git push heroku master
heroku open

更多详情请参阅 https://devcenter.heroku.com/articles/getting-started-with-php?singlepage=true

与Docker一起使用

以下是docker run、compose或stack的命令。

docker run --rm -d -p 80:80 feliperoberto/non-official-correios-api

docker-compose up

docker stack deploy -c docker-compose.yml non-official-correios-api