定制 nfephp-org/sped-gnre 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nfephp-org/sped-gnre

最新稳定版本:0.3.0

Composer 安装命令:

composer require nfephp-org/sped-gnre

包简介

API para a emissão de guias GNRE para a SEFAZ

README 文档

README

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

Atenção!!

Caso encontre algum estado que possua uma regra especial para gerar uma GNRE por favor informar abrindo uma issue. Dessa forma podemos manter a API atualizada e ajudar a todos que utlizam a GNRE PHP

Atenção 2!!

Se você possui um certificado da certisign e está com o erro "Bad request" veja a solução encontrada pelo renandelmonico utilizando as classes da sped-common nesse link

Os certificados da certisign possuem algum problema em que não é possível extrair a cadeia de certificação, portanto é necessário fazer o download da cadeia manualmente nesse link (Hierarquia V5).

Após o download é necessário extrair usando o openssl, copiar o conteúdo gerado pelos 3 certificados e colar em um novo arquivo .pem.

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

Depois de realizar o processo acima, é necessário utilizar o método addCurlOption da classe Sped\Gnre\Webservice\Connection para alterar algumas configurações e informar manualmente a cadeia de certificação.

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

Versões suportadas

PHP GNRE
PHP 5.6 0.1.4
HHVM 0.1.4
PHP 7.0 0.1.5
PHP 7.3 0.1.6

Antes de usar a API

  • Verifique se seu certificado digital não foi expedido através da certisign, pois existe um problema na cadeia do certificado que impossibilita a emissão de guias GNRE. Certificados expedidos através do SERASA funcionam normalmente para a emissão (até agora nenhum erro foi relatado).

  • É permitido utilizar o mesmo certificado utilizado para emitir NF-e.

  • É necessário entrar em contato com a SEFAZ de cada estado pedindo liberação do serviço de emissão de GNRE.

  • Leita todos os tópicos no FAQ oficial em http://www.gnre.pe.gov.br/gnre/portal/faq.jsp. Os tópicos abordados são muito úteis para quem está começando nesse serviço.

GNRE PHP

Objetivo

API possibilita a comunicação com a SEFAZ para a emissão da nota GNRE (Guia Nacional de Recolhimento de Tributos Estaduais). A API GNRE tem como maior inspiração a API NFEPHP que você pode encontrar através do link https://github.com/nfephp

Dependências

Road-map

Atualmente estamos utilizando o trello para gerenciar o que será implementado nas próximas versões e melhorias na API, esse road map poe ser acessado em https://trello.com/b/kNP1tvsi/gnre-api-github

Informações úteis

Descrição Endereço
Grupo de discussão https://groups.google.com/forum/#!forum/gnrephp
Site oficial do governo http://www.gnre.pe.gov.br/gnre/index.html
Site do Projeto http://nfephp-org.github.io/sped-gnre/
Wiki, onde é possível encontrar maiores informações de como utilizar a API https://github.com/nfephp-org/sped-gnre/wiki
Site oficial da SEFAZ de todo os estados http://www.gnre.pe.gov.br/gnre/portal/linksUteis.jsp
  1. Antes de gerar qualquer guia GNRE com o seu certificado, tenha CERTEZA que você possui autorização para isso. A geração de GNRE depende de cada estado, ou seja, se você deseja gerar a guia para o Acre (com destino ao Acre) tenha certeza que já pediu a liberação do certificado no SEFAZ Acre e repita esse processo para cada estado.

Documentação

  • Documentação da GNRE PHP gerada com o PHPDOC pode ser visualizada aqui

  • Nosso wiki de como utilizar a API e gerar as GNRES está disponível aqui no github

  • Exemplos com código fonte são encontrados na pasta exemplos/

Instalação via composer

Adicionando a GNRE PHP em um projeto existente com o composer

Caso você não possua o composer veja esse link antes de prosseguir

Adicione a dependência da GNRE PHP no arquivo composer.json :

Para PHP <= 5.5

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

Para PHP = 5.6

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

Para PHP >= 7.0

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

Atualize suas depedências existentes no composer :

composer update

Possíveis erros

Erro : unable to use client certificate (no key found or wrong pass phrase?)

Se você está obtendo essa mensagem após enviar a requisição para o web service da SEFAZ verifique a senha que você está utilizando, pois esse erro ocorre quando a senha informada não bate com a senha do certificado utilizado

Erro: [InvalidArgumentException] Could not find package marabesi/gnre at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability

Esse problema ocorre pois não estamos informando ao composer qual a versão mínima que queremos utilizar, para resolver esse problema basta adicionar a seguinte linha no seu arquivo composer.json

{
    "minimum-stability": "dev"
}

Quick start

Clone o repositório do projeto

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

Vá para a pasta de exemplos

cd exemplos/

Rode o servidor built-in do PHP

php -S localhost:8181

Abra o seu navegador e digite a seguinte URL

http://localhost:8181/gerar-xml.php

Caso queira ver outros exemplos utilizados pela API acesse esse link https://github.com/nfephp-org/sped-gnre/tree/master/exemplos

统计信息

  • 总下载量: 7.06k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 64
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 63
  • Watchers: 21
  • Forks: 64
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2017-06-15