controleonline/sped-gnre

用于向SEFAZ发行GNRE(国税局通用缴款书)的API

dev-master 2023-11-27 19:09 UTC

This package is auto-updated.

Last update: 2024-09-27 20:50:55 UTC


README

Build status (PHP Composer) Coverage Status Total Downloads Latest Stable Version Latest Unstable Version License

注意!!

如果在某些州找到用于生成GNRE的特殊规则,请通过打开一个 问题 来通知我们。这样我们可以保持API更新,并帮助所有使用GNRE PHP的用户。

注意2!!

如果您拥有certisign证书并且遇到"Bad request"错误,请查看renandelmonico在该链接中找到的解决方案,使用sped-common类。

certisign证书存在一些问题,无法提取证书链,因此需要手动在该链接(层次V5)中下载证书链。

下载后,需要使用openssl提取,将3个证书生成的内容复制并粘贴到一个新的.pem文件中。

openssl x509 -inform der -in ARQUIVO.cer -pubkey -noout > ARQUIVO.pem

完成上述过程后,需要使用Sped\Gnre\Webservice\Connection类的addCurlOption方法来更改一些配置并手动输入证书链。

$webService->addCurlOption([
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_SSL_VERIFYPEER => 1,
    CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1,
    CURLOPT_CAINFO => 'ARQUIVO.pem'
]);

支持的版本

在使用API之前

  • 请检查您的数字证书是否不是由certisign签发的,因为证书链存在一个问题,这阻碍了GNRE缴款书的发行。通过SERASA签发的证书通常可以正常用于发行(迄今为止没有报告任何错误)。

  • 可以使用用于发行NF-e的同一证书。

  • 需要联系每个州的SEFAZ以请求发行GNRE服务的许可。

  • 请在http://www.gnre.pe.gov.br/gnre/portal/faq.jsp的官方FAQ中查看所有主题。这些主题对于刚开始使用此服务的用户非常有用。

GNRE PHP

目标

API允许与SEFAZ通信以发行GNRE(国税局通用缴款书)缴款书。GNRE API的最大灵感来自您可以通过https://github.com/nfephp找到的NFEPHP API。

依赖

路线图

目前我们正在使用trello来管理将在下一个版本中实施的功能以及API的改进,该路线图可以通过https://trello.com/b/kNP1tvsi/gnre-api-github访问

有用信息

  1. 在用您的证书生成任何GNRE缴款书之前,请确保您拥有相应的授权。GNRE的生成取决于每个州,即如果您想为阿克里州(目的地为阿克里州)生成缴款书,请确保您已向阿克里州的SEFAZ申请证书许可,并为每个州重复此过程。

文档

  • 使用PHPDOC生成的GNRE PHP文档可以在此查看

  • 我们的API使用和生成GNRES的wiki文档在GitHub上可供使用,请访问这里

  • 代码示例可以在exemplos/目录中找到

通过composer安装

使用composer在现有项目中添加GNRE PHP

如果您没有composer,请在继续之前查看此链接

在composer.json文件中添加GNRE PHP依赖项

对于PHP <= 5.5

{
    "nfephp-org/sped-gnre": "0.1.1"
}

对于PHP = 5.6

{
    "nfephp-org/sped-gnre": "0.1.4"
}

对于PHP >= 7.0

{
    "nfephp-org/sped-gnre": "0.1.5"
}

更新composer中的现有依赖项

composer update

可能出现的错误

错误: 无法使用客户端证书(未找到密钥或密码短语错误?)

如果您在发送请求到SEFAZ的web服务后收到此消息,请检查您使用的密码,因为此错误发生在提供的密码与使用的证书密码不匹配时

错误: [InvalidArgumentException] 无法找到适用于您的最小稳定性的包marabesi/gnre的任何版本。检查包的拼写或您的最小稳定性

出现此问题是因为我们没有告诉composer我们想要使用哪个最小版本,要解决这个问题,只需在您的composer.json文件中添加以下行

{
    "minimum-stability": "dev"
}

快速入门

克隆项目仓库

git clone https://github.com/nfephp-org/sped-gnre.git

进入示例目录

cd exemplos/

运行内置PHP服务器

php -S localhost:8181

打开您的浏览器并输入以下URL

https://:8181/gerar-xml.php

如果您想查看API使用的其他示例,请访问此链接 https://github.com/nfephp-org/sped-gnre/tree/master/exemplos