与邮局 Web 服务集成。生成标签,查询价格和期限,打印标签和 PLP 等。

v0.0.25 2024-08-23 11:51 UTC

README

帮助项目成长。提交代码或项目文档的 pull request。

PHP SIGEP - 邮局

邮局 SIGEP Web 服务的实现。

查看在线演示、示例和文档在我们的页面.

与邮局 Web 服务集成。查询价格和期限,打印标签和 PLP 等。此 API 可以

  • 计算订单的交货价格和期限。
  • 获取订单的跟踪数据。
  • 检查两种地址之间是否允许使用某种服务类型(Sedex、PAC 等)。
  • 生成并发送预寄信单(PLP)的 XML 到邮局。
  • 生成新的邮局标签号。
  • 创建和/或验证标签校验位的有效性(通过或非通过 Web 服务)。
  • 以 PDF 格式生成 PLP 报告。
  • 以 PDF 格式生成邮局标签。
  • 以 PDF 格式生成每种服务类型的戳记(每种服务类型的徽标)。
  • 获取邮寄后的 PLP 数据 [由 Sara 处理]
  • [新] 暂停邮寄(也称为交互式交付)
  • [新] 代理机构列表(用于 Clique e Retire)
  • [新] 为 Clique e Retire 生成邮局标签的 PDF 格式。

要求

  • PHP >= 5.4.0
  • 如果您需要打印标签和报告,请下载 FPDF 1.7 www.fpdf.org
    不要忘记在尝试打印报告之前配置 FPDF 以自动加载。

使用 Composer 安装(推荐)

  • 我们不通过标签控制版本,但是 master 分支仅在代码稳定时才会更新。因此,最新稳定版本总是 master 分支。

将以下行添加到您的 composer.json 文件:"stavarengo/php-sigep": "dev-master"
"stavarengo/php-sigep-fpdf": "dev-master"

然后通过命令行执行 composer update

手动安装

  • 我们不通过标签控制版本,但是 master 分支仅在代码稳定时才会更新。因此,最新稳定版本总是 master 分支。

  • 下载最新版本。

  • 要使用 php-sigep 的类,只需加载 "php-sigep/src/PhpSigep/Bootstrap.php" 文件。这将注册加载器。

常见问题

系统访问授权拒绝

在将此项目用于生产之前,需要向邮局商业代表申请 Web 服务授权和密码。

在使用测试环境时遇到问题

如果您在尝试使用测试环境时收到以下消息,这意味着邮局 Web 服务暂时不可用。创建 issue 没有帮助,最好是等待或尝试联系邮局的技术支持。

错误信息:解析WSDL:无法从 'https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl' 加载:无法加载外部实体 "https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsd

PHP 5.3相关问题

该问题已在以下位置报告:stavarengo#35 一些用户在PHP版本问题下,在生产环境中与邮政Web服务的连接和认证遇到了问题。为了解决这个问题,您可以或者使用更高版本的PHP(>=5.4)或者下载邮政的WSDL并在您的服务器上使用它进行连接。如果选择下载WSDL,请按照以下步骤操作:

  1. 将此文件保存到您的本地环境 https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
  2. 修改您的生产环境配置,使其指向您下载的文件。以下是一个示例。
$config = new \PhpSigep\Config();
$config->setEnv(\PhpSigep\Config::ENV_PRODUCTION);
$config->setWsdlAtendeCliente('CAMINHO-DO-SEU-ARQUIVO-LOCAL');
\PhpSigep\Bootstrap::start($config);

注意:在本地服务器(如Wamp、Xammp等)上无法使用。

功能

缓存

PhpSigep的缓存组件受到了Zend Framework的缓存组件的启发。

默认情况下,PhpSigep的缓存是禁用的。
此缓存存储了一些邮政Web服务的响应,这些响应可以稍后重用。除了提高请求的响应速度外,还可以避免当邮政服务器不稳定(相信我:它经常不稳定)时用户无法继续操作。

要启用缓存,请在创建PhpSigep配置时使用"cacheOptions"键。例如:php new \PhpSigep\Config(array('cacheOptions' => array('storageOptions' => array('enabled' => true, 'ttl' => 60*60*24*7),), ...), );storageOptions数组中,您可以使用PhpSigep\Cache\Storage\Adapter\AdapterOptions类的任何属性名称。

贡献

要运行测试套件,请通过命令行执行./vendor/bin/phpunit

  1. 进行Fork
  2. 为功能创建分支(git checkout -b nova-funcionalidade
  3. 提交您的修改(git commit -am '添加新功能'
  4. 将分支推送到远程(git push origin nova-funcionalidade
  5. 创建新的Pull Request