{"__v":71,"_id":"578390a46bcaf40e00a5d7cd","category":{"__v":0,"_id":"575aeffae12cf20e002f3070","project":"575aeffae12cf20e002f306c","version":"575aeffae12cf20e002f306f","sync":{"url":"","isSync":false},"reference":true,"createdAt":"2016-06-10T16:51:06.098Z","from_sync":false,"order":0,"slug":"documentation","title":"Visão Geral da API"},"parentDoc":null,"project":"575aeffae12cf20e002f306c","user":"57601a13af3e090e00108059","version":{"__v":29,"_id":"575aeffae12cf20e002f306f","project":"575aeffae12cf20e002f306c","createdAt":"2016-06-10T16:51:06.080Z","releaseDate":"2016-06-10T16:51:06.080Z","categories":["575aeffae12cf20e002f3070","575af039a083950e004487f7","575af5c7ba4ed70e000ca288","57602fe5b82256240055c657","57602ff6c811102000cef302","576030909b1a9a220067ca40","57604518b82256240055c722","5761a63d207db7170022fc14","5761b9a2b65324200072d79e","576832939f0bf4190014ffdf","576832c09f0bf4190014ffe1","576832cba151c10e004316f0","576832d5bb15f40e00a288ec","576832e107b1f30e0039c645","577680bf3cee3a0e00a000bc","577ff3b1ff48990e000c6806","5783f78c5cbce30e0074e2b7","5783f86292edb92200e6101c","5783f86dbfbba719003f0d8b","5783f8755cbce30e0074e2b8","5783f8b65cbce30e0074e2b9","5783f8bf5cbce30e0074e2ba","5783f8d8ce802f0e0087d574","578529f887c9280e0090394b","57852aeb87c9280e0090394d","57866e72b2f4060e00fa39ca","57ab6d5c39c2fd1900191879","57f39451ab0ee12000bef915","582499a0d90fa027009b259e"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"2016","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-07-11T12:27:16.801Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":1,"body":"[block:html]\n{\n  \"html\": \"<p>Nossa API é <a href=\\\"https://en.wikipedia.org/wiki/Representational_state_transfer\\\" target=\\\"_blank\\\" title=\\\"Link Externo\\\">RESTful</a> e responde em <a href=\\\"http://www.json.org/\\\" target=\\\"_blank\\\" title=\\\"Link Externo\\\">JSON</a>. A Gerencianet utiliza <a href=\\\"http://oauth.net/\\\" target=\\\"_blank\\\" title=\\\"Link Externo\\\">OAuth</a> para fornecer acesso autorizado à <abbr title=\\\"Application Programming Interface\\\">API</abbr>. Todas as bibliotecas disponibilizadas aqui já estão preparadas para realizar essa autenticação automaticamente.</p>\\n\\n<p>Clique na aba referente à linguagem de sua preferência para baixar a biblioteca:</p>\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Instalando via Packagist com o Composer:\\n// Packagist: https://packagist.org/packages/gerencianet/gerencianet-sdk-php\\n// Composer: https://getcomposer.org/\\n\\n$ composer require gerencianet/gerencianet-sdk-php\\n\\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\\n// https://github.com/gerencianet/gn-api-sdk-php\",\n      \"language\": \"php\",\n      \"name\": \"PHP\"\n    },\n    {\n      \"code\": \"// Instalando via NPM (https://www.npmjs.com/package/gn-api-sdk-node):\\n\\n$ npm install gn-api-sdk-node\\n\\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\\n// https://github.com/gerencianet/gn-api-sdk-node\",\n      \"language\": \"javascript\",\n      \"name\": \"NodeJS\"\n    },\n    {\n      \"code\": \"// Instalando via RubyGems (https://rubygems.org/gems/gerencianet):\\n\\n$ gem install gerencianet\\n\\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\\n// https://github.com/gerencianet/gn-api-sdk-ruby\",\n      \"language\": \"ruby\",\n      \"name\": \"Ruby\"\n    },\n    {\n      \"code\": \"// Instalando via Pip (https://pypi.python.org/pypi/pip):\\n\\n$ pip install gerencianet\\n\\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\\n// https://github.com/gerencianet/gn-api-sdk-python\",\n      \"language\": \"python\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"// Instalando via NuGet (https://www.nuget.org/):\\n\\n$ nuget install Gerencianet.SDK\\n  \\n// Ou, se preferir, confira a documentação completa em nossa página do Github\\n// https://github.com/gerencianet/gn-api-sdk-dotnet\",\n      \"language\": \"asp\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"// Instalando via gradle:\\ncompile 'br.com.gerencianet.gnsdk:gn-api-sdk-java:0.1.0'\\n\\n// Instalando via maven:\\n<dependency>\\n    <groupId>br.com.gerencianet.gnsdk</groupId>\\n    <artifactId>gn-api-sdk-java</artifactId>\\n    <version>0.1.0</version>\\n</dependency>\\n// O Maven automaticamente instalará a SDK e todas as suas dependências.\\n\\n// Ou, se preferir, baixe diretamente pela nossa página do Github:\\n// https://github.com/gerencianet/gn-api-sdk-java\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n## Índice\n<hr>\n\nA seguir, disponibilizamos explicações detalhadas sobre como instalar facilmente nossa SDK em PHP.\n\nVá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa:\n\n1. [Pré-requisitos](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-1-pr-requisitos)\n\n2. [Instalação do Composer em Windows](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-2-instala-o-do-composer-em-windows)\n\n3. [Instalação do Composer em Linux](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-3-instala-o-do-composer-em-linux)\n\n4. [Instalação biblioteca PHP da Gerencianet sem o Composer](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-4-instala-o-biblioteca-php-da-gerencianet-sem-o-composer)\n\n5. [Erros Comuns (curl error 60 ou curl error 77)](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-5-erros-comuns-curl-error-60-ou-curl-error-77-)\n\n6. [Vídeos Explicativos: Instalação da API](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-6-v-deos-explicativos-instala-o-da-api)\n\n## 1. Pré-requisitos\n<hr>\n\nOs seguintes pré-requisitos devem ser considerados, de acordo com a linguagem da biblioteca utilizada:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"PHP >= 5.4 (testado com: PHP 5.4 e 5.5)\",\n      \"language\": \"text\",\n      \"name\": \"PHP\"\n    },\n    {\n      \"code\": \"Testado com: Node 0.12.7, 4.4.0 e 4.4.4\",\n      \"language\": \"text\",\n      \"name\": \"NodeJS\"\n    },\n    {\n      \"code\": \"Testado com: Ruby 2.1.0\",\n      \"language\": \"text\",\n      \"name\": \"Ruby\"\n    },\n    {\n      \"code\": \"Testado com: Python 2.7, 3.3, 3.4 e 3.5\",\n      \"language\": \"text\",\n      \"name\": \"Python\"\n    },\n    {\n      \"code\": \"Testado com: dotnet 4.0.0\",\n      \"language\": \"text\",\n      \"name\": \".NET\"\n    },\n    {\n      \"code\": \"Testado com: Java >= 7.0\",\n      \"language\": \"text\",\n      \"name\": \"Java\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Para a utilização da biblioteca em PHP, recomendamos a instalação através do <a href=\\\"https://getcomposer.org/\\\" target=\\\"_blank\\\" title=\\\"[link externo]\\\">Composer</a> (vide procedimentos abaixo). Caso prefira prosseguir sem o Composer, basta baixar <a href=\\\"https://gerencianet.com.br/material/api/php/api.zip\\\" target=\\\"_blank\\\" title=\\\"[link externo]\\\">este arquivo</a>, descompactá-lo e copiar a pasta \\\"api\\\" para a pasta de seu projeto.\",\n  \"title\": \"Nota:\"\n}\n[/block]\n## 2. Instalação do Composer em Windows\n<hr>\n\nInstalaremos o Composer no Windows para baixar as nossas bibliotecas. A instalação foi realizada com em uma máquina Windows com o Wampserver. Se preferir, pode seguir <a href=\"https://getcomposer.org/doc/00-intro.md#installation-windows\" target=\"_blank\" title=\"[link externo]\">neste link</a> o tutorial do próprio site oficial do Composer.\n\na) Primeiramente, vamos baixar o instalador do Composer para Windows <a href=\"https://getcomposer.org/Composer-Setup.exe\" target=\"_blank\" title=\"[link externo]\">neste link</a> e, assim que o download for finalizado, execute-o;\n\nb) Você precisará informar o caminho de instalação do seu php. Caso você esteja utilizando um servidor Wamp, por exemplo, e na instalação surgir uma mensagem relacionada ao arquivo \"openssl\", você precisará informar seu arquivo <code>*.exe</code> do PHP contido no diretório raiz do Wamp (geralmente em <code>\\wamp\\bin\\php\\php.5.6.16\\</code>. Cabe frisar que a pasta <code>php.5.6.16</code> refere-se a versão do PHP que está sendo utilizado na confecção dessas instruções, esse diretório poderá estar com outro nome, conforme a versão do seu PHP;\n\nc) Durante a instalação, após indicar o diretório do seu php, clique em *\"next\"*. A instalação *poderá* retornar uma mensagem de alerta relacionado à configuração do \"openssl\". Trata-se de uma mensagem comum que significa que o \"openssl\" está desabilitado, contudo, vamos resolver de forma rápida e fácil.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"OBSERVAÇÃO\",\n  \"body\": \"Caso não seja retornada nenhuma mensagem sobre o \\\"openssl\\\", apenas prossiga para o subtítulo \\\"[Baixando as dependências](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-baixando-as-depend-ncias)\\\", localizado mais abaixo.\"\n}\n[/block]\nPara habilitar seu \"openssl\", será necessário alterar o arquivo \"php.ini\".\n\ni) Abra o diretório de instalação do seu php e localize o arquivo <code>php.ini</code>\n\nii) Abra o arquivo \"php.ini\" em um editor de texto (ex: notepad++, sublime, etc) e pressione \"CTRL + F\" e pesquise pela palavra “openssl” (sem as aspas)\n\niii) O sinal de ponto e vírgula (;) desabilita o arquivo *php_openssl.dll*. Apague este sinal e ele habilitará o arquivo:\n\n  * Está assim: <code>;extension=php_openssl.dll</code>\n\n  * Deve ficar assim: <code>extension=php_openssl.dll</code>\n\nAgora, salve o documento (CTRL + S) e feche o arquivo.\n\niv) A extensão estará habilitada e você poderá continuar com a instalação. Para que a instalação seja atualizada em relação ao procedimento, é importante que você retorne uma tela e depois avance com a instalação normalmente.\n\n### Baixando as dependências \n\na) Crie uma pasta chamada <code>composer</code> no seu diretório Wamp, dentro da pasta <code>www</code>, de forma que tenha essa estrutura: <code>\\wamp\\www\\composer</code>\n\nb) Agora, vamos realizar a instalação das dependências. Abra o *prompt* de comando do Windows (cmd) e navegue até o diretório raiz, em <code>\\wamp\\www\\composer</code>\n\nc) Vamos executar o comando de instalação das dependências (SDK PHP da Gerencianet), dentro desse diretório. Execute o comando abaixo:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"composer require gerencianet/gerencianet-sdk-php\",\n      \"language\": \"text\",\n      \"name\": \"CMD\"\n    }\n  ]\n}\n[/block]\nd) Após a execução do comando, todas as dependências serão instaladas em seu diretório, inclusive a pasta <code>vendor</code> com o arquivo <code>autoload.php</code>.\n\nPronto, agora é só começar a utilizar as soluções de integração da Gerencianet.\n\n\n## 3. Instalação do Composer em Linux\n<hr>\n\nÉ possível instalar o Composer em cada projeto (instalação local) ou ter acesso a ele em qualquer parte do sistema (instalação global). Se preferir, pode seguir <a href=\"https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx\" target=\"_blank\" title=\"[link externo]\">neste link</a> o tutorial do próprio site oficial do Composer. Aqui, vamos efetuar a instalação global. Para tal, execute no Terminal o seguinte comando:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ curl -sS https://getcomposer.org/installer | php\\n$ sudo mv composer.phar /usr/local/bin/composer\",\n      \"language\": \"curl\",\n      \"name\": \"Terminal\"\n    }\n  ]\n}\n[/block]\n### Arquivo \"composer.json\"\n\nUm dos principais arquivos para se trabalhar com o Composer é o <code>composer.json</code>. É nele que as instruções sobre os pacotes que serão usados no projeto ficam contidas. Este é um arquivo de extensão <code>.json</code> comum que deve ficar na raiz de seu projeto.\n\nA diretiva <code>require</code> no arquivo <code>composer.json</code> informa ao Composer quais os pacotes necessários para o projeto - neste caso, o repositório central é o Packagist.\n\nAgora, vamos informar ao Composer que a Gerencianet fará parte do gerenciamento de dependências inserindo o conteúdo abaixo no final do arquivo <code>composer.json</code> (que deve ficar na raiz do projeto):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"require\\\": {\\n  \\\"gerencianet/gerencianet-sdk-php\\\": \\\"1.*\\\"\\n},\",\n      \"language\": \"json\",\n      \"name\": \"Inserir no arquivo \\\"composer.json\\\"\"\n    }\n  ]\n}\n[/block]\nÉ hora de instalar os pacotes. Vá até o diretório em que está seu projeto no Terminal e execute:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ composer install\",\n      \"language\": \"curl\",\n      \"name\": \"Terminal\"\n    }\n  ]\n}\n[/block]\nE pronto! O download das dependências irá acontecer automaticamente, estas serão armazenadas em suas respectivas pastas e o Composer continuará com o restante do trabalho ao gerar o arquivo <code>composer.lock</code>.\n\nCabe frisar que, caso você necessite, por exemplo, excluir um pacote, basta deletar sua referência do arquivo <code>composer.json</code> e atualizar o Composer através do seguinte comando:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ composer update\",\n      \"language\": \"curl\",\n      \"name\": \"Terminal\"\n    }\n  ]\n}\n[/block]\nDessa forma, o Composer será atualizado e, como não há mais a presença do pacote na diretiva <code>require</code>, ele será imediatamente \"desinstalado\".\n\n### Resumo:\n\n- Instalar o Composer;\n- Informar, no arquivo <code>composer.json</code>, a SDK da Gerencianet que será instalada;\n- Executar o comando de instalação no diretório do projeto: <code>$ composer install</code>;\n- Pronto!\n\n\n## 4. Instalação biblioteca PHP da Gerencianet sem o Composer\n<hr>\n\nO uso do Composer é recomendável, mas não obrigatório. Caso seja de seu interesse prosseguir sem utilizá-lo, baixe [este arquivo](https://gerencianet.com.br/material/api/php/api.zip) (\"api.zip\"), descompacte-o e suba os arquivos (inclusive o \"autoload.php\") para o diretório de seu projeto.\n\n\n## 5. Erros Comuns (curl error 60 ou curl error 77)\n<hr>\n\nOs erros a seguir não são da API Gerencianet, mas relacionados à componentes de seu servidor. Confira abaixo os erros mais comuns durante a instalação de nossa API e veja as soluções:\n\n### 5.1) curl error 60\n\nEste erro está relacionado ao *curl* configurado em seu servidor (ou computador) estar exigindo um certificado (https/ssl) local. Geralmente ocorre em servidores Windows ou plataforma Wamp Server, por exemplo. Este erro também pode ser apresentado como *\"CURLE_SSL_CACERT (60) - Peer certificate cannot be authenticated with known CA certificates\".*\n\nPara resolver, vamos configurar para que seu servidor tenha um certificado para testes.\n\n1. Faça o download do *\"cacert.pem\"* em <a href=\"http://curl.haxx.se/docs/caextract.html\" target=\"_blank\" title=\"Link Externo\">http://curl.haxx.se/docs/caextract.html</a> (copie e cole o texto todo em um arquivo chamado *cacert.pem*);\n\n2. Salve este arquivo *(\"cacert.pem\")* em qualquer lugar do seu sistema, de preferência na pasta do servidor (C:\\Wamp, caso esteja utilizando-o);\n\n3. Abra seu arquivo de configuração do PHP (para o WampServer, normalmente este arquivo está localizado em C:\\wamp\\bin\\php\\phpX.Y.Z, onde X.Y.Z é a versão do seu PHP) e faça a alteração a seguir:\n\nProcure pela linha:\n<code>;curl.cainfo =</code>\n\nMude para:\n<code>curl.cainfo = \"C:\\caminho\\onde\\voce\\salvou\\seu\\certificado\\cacert.pem\"</code>\n\n4. Reinicie seu servidor Apache;\n\n5. Teste novamente.\n\nLembrando que estas configurações foram necessárias porque seu servidor está exigindo um certificado local (erro: *'URL error: 60 - SSL certificate problem: unable to get local issuer certificate'*) e sua máquina/servidor não possui.\n\n\n### 5.2) curl error 77\n\nEsse erro está associado ao caminho do certificado que está definido de forma incorreta no \"php.ini\".\n\nDeve estar assim atualmente:\n<code>curl.cainfo = \"C:\\xampp\\php\\cacert.pem\"</code>\n\nDeverá alterar e de forma que fique assim:\n<code>curl.cainfo = \"C:\\xampp\\php\\cacert.pem.txt\"</code>\n\nAdicionalmente, caso o método acima não solucione, outra possível solução está relacionada a referência do certificado. Ele pode até já estar instalado local na máquina, mas os certificados podem estar localizados em <code>/etc/ssl/certs/ca-certificates.crt</code> ao invés de <code>/etc/pki/tls/certs/ca-bundle.crt</code>. Neste caso, bastaria definir a variável de ambiente <code>CURL_CA_BUNDLE</code> para o caminho correto.\n\n\n## 6. Vídeos Explicativos: Instalação da API\n<hr>\n\nPensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como instalar o Composer no sistema operacional Windows e Linux.\n\n\n### Instalando o Composer via Windows\n[block:html]\n{\n  \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/bu9tUI3dHwI\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\n### Instalando o Composer via Linux\n[block:html]\n{\n  \"html\": \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/uQFhNJhbzdg\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"\n}\n[/block]\nPara acesso às demais aulas, de outros assuntos, acesse a seção \"[Curso Online de Integrações](https://dev.gerencianet.com.br/docs/curso-online-gerencianet)\".","excerpt":"Você está em: *\"Visão Geral da API > Instalação da API\"*","slug":"instalacao-da-api","type":"basic","title":"Instalação da API"}

Instalação da API

Você está em: *"Visão Geral da API > Instalação da API"*

[block:html] { "html": "<p>Nossa API é <a href=\"https://en.wikipedia.org/wiki/Representational_state_transfer\" target=\"_blank\" title=\"Link Externo\">RESTful</a> e responde em <a href=\"http://www.json.org/\" target=\"_blank\" title=\"Link Externo\">JSON</a>. A Gerencianet utiliza <a href=\"http://oauth.net/\" target=\"_blank\" title=\"Link Externo\">OAuth</a> para fornecer acesso autorizado à <abbr title=\"Application Programming Interface\">API</abbr>. Todas as bibliotecas disponibilizadas aqui já estão preparadas para realizar essa autenticação automaticamente.</p>\n\n<p>Clique na aba referente à linguagem de sua preferência para baixar a biblioteca:</p>" } [/block] [block:code] { "codes": [ { "code": "// Instalando via Packagist com o Composer:\n// Packagist: https://packagist.org/packages/gerencianet/gerencianet-sdk-php\n// Composer: https://getcomposer.org/\n\n$ composer require gerencianet/gerencianet-sdk-php\n\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\n// https://github.com/gerencianet/gn-api-sdk-php", "language": "php", "name": "PHP" }, { "code": "// Instalando via NPM (https://www.npmjs.com/package/gn-api-sdk-node):\n\n$ npm install gn-api-sdk-node\n\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\n// https://github.com/gerencianet/gn-api-sdk-node", "language": "javascript", "name": "NodeJS" }, { "code": "// Instalando via RubyGems (https://rubygems.org/gems/gerencianet):\n\n$ gem install gerencianet\n\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\n// https://github.com/gerencianet/gn-api-sdk-ruby", "language": "ruby", "name": "Ruby" }, { "code": "// Instalando via Pip (https://pypi.python.org/pypi/pip):\n\n$ pip install gerencianet\n\n// Ou, se preferir, confira a documentação completa em nossa página do Github:\n// https://github.com/gerencianet/gn-api-sdk-python", "language": "python", "name": "Python" }, { "code": "// Instalando via NuGet (https://www.nuget.org/):\n\n$ nuget install Gerencianet.SDK\n \n// Ou, se preferir, confira a documentação completa em nossa página do Github\n// https://github.com/gerencianet/gn-api-sdk-dotnet", "language": "asp", "name": ".NET" }, { "code": "// Instalando via gradle:\ncompile 'br.com.gerencianet.gnsdk:gn-api-sdk-java:0.1.0'\n\n// Instalando via maven:\n<dependency>\n <groupId>br.com.gerencianet.gnsdk</groupId>\n <artifactId>gn-api-sdk-java</artifactId>\n <version>0.1.0</version>\n</dependency>\n// O Maven automaticamente instalará a SDK e todas as suas dependências.\n\n// Ou, se preferir, baixe diretamente pela nossa página do Github:\n// https://github.com/gerencianet/gn-api-sdk-java", "language": "java" } ] } [/block] ## Índice <hr> A seguir, disponibilizamos explicações detalhadas sobre como instalar facilmente nossa SDK em PHP. Vá direto ao ponto ­- utilize o índice abaixo e veja diretamente o que você precisa: 1. [Pré-requisitos](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-1-pr-requisitos) 2. [Instalação do Composer em Windows](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-2-instala-o-do-composer-em-windows) 3. [Instalação do Composer em Linux](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-3-instala-o-do-composer-em-linux) 4. [Instalação biblioteca PHP da Gerencianet sem o Composer](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-4-instala-o-biblioteca-php-da-gerencianet-sem-o-composer) 5. [Erros Comuns (curl error 60 ou curl error 77)](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-5-erros-comuns-curl-error-60-ou-curl-error-77-) 6. [Vídeos Explicativos: Instalação da API](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-6-v-deos-explicativos-instala-o-da-api) ## 1. Pré-requisitos <hr> Os seguintes pré-requisitos devem ser considerados, de acordo com a linguagem da biblioteca utilizada: [block:code] { "codes": [ { "code": "PHP >= 5.4 (testado com: PHP 5.4 e 5.5)", "language": "text", "name": "PHP" }, { "code": "Testado com: Node 0.12.7, 4.4.0 e 4.4.4", "language": "text", "name": "NodeJS" }, { "code": "Testado com: Ruby 2.1.0", "language": "text", "name": "Ruby" }, { "code": "Testado com: Python 2.7, 3.3, 3.4 e 3.5", "language": "text", "name": "Python" }, { "code": "Testado com: dotnet 4.0.0", "language": "text", "name": ".NET" }, { "code": "Testado com: Java >= 7.0", "language": "text", "name": "Java" } ] } [/block] [block:callout] { "type": "warning", "body": "Para a utilização da biblioteca em PHP, recomendamos a instalação através do <a href=\"https://getcomposer.org/\" target=\"_blank\" title=\"[link externo]\">Composer</a> (vide procedimentos abaixo). Caso prefira prosseguir sem o Composer, basta baixar <a href=\"https://gerencianet.com.br/material/api/php/api.zip\" target=\"_blank\" title=\"[link externo]\">este arquivo</a>, descompactá-lo e copiar a pasta \"api\" para a pasta de seu projeto.", "title": "Nota:" } [/block] ## 2. Instalação do Composer em Windows <hr> Instalaremos o Composer no Windows para baixar as nossas bibliotecas. A instalação foi realizada com em uma máquina Windows com o Wampserver. Se preferir, pode seguir <a href="https://getcomposer.org/doc/00-intro.md#installation-windows" target="_blank" title="[link externo]">neste link</a> o tutorial do próprio site oficial do Composer. a) Primeiramente, vamos baixar o instalador do Composer para Windows <a href="https://getcomposer.org/Composer-Setup.exe" target="_blank" title="[link externo]">neste link</a> e, assim que o download for finalizado, execute-o; b) Você precisará informar o caminho de instalação do seu php. Caso você esteja utilizando um servidor Wamp, por exemplo, e na instalação surgir uma mensagem relacionada ao arquivo "openssl", você precisará informar seu arquivo <code>*.exe</code> do PHP contido no diretório raiz do Wamp (geralmente em <code>\wamp\bin\php\php.5.6.16\</code>. Cabe frisar que a pasta <code>php.5.6.16</code> refere-se a versão do PHP que está sendo utilizado na confecção dessas instruções, esse diretório poderá estar com outro nome, conforme a versão do seu PHP; c) Durante a instalação, após indicar o diretório do seu php, clique em *"next"*. A instalação *poderá* retornar uma mensagem de alerta relacionado à configuração do "openssl". Trata-se de uma mensagem comum que significa que o "openssl" está desabilitado, contudo, vamos resolver de forma rápida e fácil. [block:callout] { "type": "info", "title": "OBSERVAÇÃO", "body": "Caso não seja retornada nenhuma mensagem sobre o \"openssl\", apenas prossiga para o subtítulo \"[Baixando as dependências](https://dev.gerencianet.com.br/docs/instalacao-da-api#section-baixando-as-depend-ncias)\", localizado mais abaixo." } [/block] Para habilitar seu "openssl", será necessário alterar o arquivo "php.ini". i) Abra o diretório de instalação do seu php e localize o arquivo <code>php.ini</code> ii) Abra o arquivo "php.ini" em um editor de texto (ex: notepad++, sublime, etc) e pressione "CTRL + F" e pesquise pela palavra “openssl” (sem as aspas) iii) O sinal de ponto e vírgula (;) desabilita o arquivo *php_openssl.dll*. Apague este sinal e ele habilitará o arquivo: * Está assim: <code>;extension=php_openssl.dll</code> * Deve ficar assim: <code>extension=php_openssl.dll</code> Agora, salve o documento (CTRL + S) e feche o arquivo. iv) A extensão estará habilitada e você poderá continuar com a instalação. Para que a instalação seja atualizada em relação ao procedimento, é importante que você retorne uma tela e depois avance com a instalação normalmente. ### Baixando as dependências a) Crie uma pasta chamada <code>composer</code> no seu diretório Wamp, dentro da pasta <code>www</code>, de forma que tenha essa estrutura: <code>\wamp\www\composer</code> b) Agora, vamos realizar a instalação das dependências. Abra o *prompt* de comando do Windows (cmd) e navegue até o diretório raiz, em <code>\wamp\www\composer</code> c) Vamos executar o comando de instalação das dependências (SDK PHP da Gerencianet), dentro desse diretório. Execute o comando abaixo: [block:code] { "codes": [ { "code": "composer require gerencianet/gerencianet-sdk-php", "language": "text", "name": "CMD" } ] } [/block] d) Após a execução do comando, todas as dependências serão instaladas em seu diretório, inclusive a pasta <code>vendor</code> com o arquivo <code>autoload.php</code>. Pronto, agora é só começar a utilizar as soluções de integração da Gerencianet. ## 3. Instalação do Composer em Linux <hr> É possível instalar o Composer em cada projeto (instalação local) ou ter acesso a ele em qualquer parte do sistema (instalação global). Se preferir, pode seguir <a href="https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx" target="_blank" title="[link externo]">neste link</a> o tutorial do próprio site oficial do Composer. Aqui, vamos efetuar a instalação global. Para tal, execute no Terminal o seguinte comando: [block:code] { "codes": [ { "code": "$ curl -sS https://getcomposer.org/installer | php\n$ sudo mv composer.phar /usr/local/bin/composer", "language": "curl", "name": "Terminal" } ] } [/block] ### Arquivo "composer.json" Um dos principais arquivos para se trabalhar com o Composer é o <code>composer.json</code>. É nele que as instruções sobre os pacotes que serão usados no projeto ficam contidas. Este é um arquivo de extensão <code>.json</code> comum que deve ficar na raiz de seu projeto. A diretiva <code>require</code> no arquivo <code>composer.json</code> informa ao Composer quais os pacotes necessários para o projeto - neste caso, o repositório central é o Packagist. Agora, vamos informar ao Composer que a Gerencianet fará parte do gerenciamento de dependências inserindo o conteúdo abaixo no final do arquivo <code>composer.json</code> (que deve ficar na raiz do projeto): [block:code] { "codes": [ { "code": "\"require\": {\n \"gerencianet/gerencianet-sdk-php\": \"1.*\"\n},", "language": "json", "name": "Inserir no arquivo \"composer.json\"" } ] } [/block] É hora de instalar os pacotes. Vá até o diretório em que está seu projeto no Terminal e execute: [block:code] { "codes": [ { "code": "$ composer install", "language": "curl", "name": "Terminal" } ] } [/block] E pronto! O download das dependências irá acontecer automaticamente, estas serão armazenadas em suas respectivas pastas e o Composer continuará com o restante do trabalho ao gerar o arquivo <code>composer.lock</code>. Cabe frisar que, caso você necessite, por exemplo, excluir um pacote, basta deletar sua referência do arquivo <code>composer.json</code> e atualizar o Composer através do seguinte comando: [block:code] { "codes": [ { "code": "$ composer update", "language": "curl", "name": "Terminal" } ] } [/block] Dessa forma, o Composer será atualizado e, como não há mais a presença do pacote na diretiva <code>require</code>, ele será imediatamente "desinstalado". ### Resumo: - Instalar o Composer; - Informar, no arquivo <code>composer.json</code>, a SDK da Gerencianet que será instalada; - Executar o comando de instalação no diretório do projeto: <code>$ composer install</code>; - Pronto! ## 4. Instalação biblioteca PHP da Gerencianet sem o Composer <hr> O uso do Composer é recomendável, mas não obrigatório. Caso seja de seu interesse prosseguir sem utilizá-lo, baixe [este arquivo](https://gerencianet.com.br/material/api/php/api.zip) ("api.zip"), descompacte-o e suba os arquivos (inclusive o "autoload.php") para o diretório de seu projeto. ## 5. Erros Comuns (curl error 60 ou curl error 77) <hr> Os erros a seguir não são da API Gerencianet, mas relacionados à componentes de seu servidor. Confira abaixo os erros mais comuns durante a instalação de nossa API e veja as soluções: ### 5.1) curl error 60 Este erro está relacionado ao *curl* configurado em seu servidor (ou computador) estar exigindo um certificado (https/ssl) local. Geralmente ocorre em servidores Windows ou plataforma Wamp Server, por exemplo. Este erro também pode ser apresentado como *"CURLE_SSL_CACERT (60) - Peer certificate cannot be authenticated with known CA certificates".* Para resolver, vamos configurar para que seu servidor tenha um certificado para testes. 1. Faça o download do *"cacert.pem"* em <a href="http://curl.haxx.se/docs/caextract.html" target="_blank" title="Link Externo">http://curl.haxx.se/docs/caextract.html</a> (copie e cole o texto todo em um arquivo chamado *cacert.pem*); 2. Salve este arquivo *("cacert.pem")* em qualquer lugar do seu sistema, de preferência na pasta do servidor (C:\Wamp, caso esteja utilizando-o); 3. Abra seu arquivo de configuração do PHP (para o WampServer, normalmente este arquivo está localizado em C:\wamp\bin\php\phpX.Y.Z, onde X.Y.Z é a versão do seu PHP) e faça a alteração a seguir: Procure pela linha: <code>;curl.cainfo =</code> Mude para: <code>curl.cainfo = "C:\caminho\onde\voce\salvou\seu\certificado\cacert.pem"</code> 4. Reinicie seu servidor Apache; 5. Teste novamente. Lembrando que estas configurações foram necessárias porque seu servidor está exigindo um certificado local (erro: *'URL error: 60 - SSL certificate problem: unable to get local issuer certificate'*) e sua máquina/servidor não possui. ### 5.2) curl error 77 Esse erro está associado ao caminho do certificado que está definido de forma incorreta no "php.ini". Deve estar assim atualmente: <code>curl.cainfo = "C:\xampp\php\cacert.pem"</code> Deverá alterar e de forma que fique assim: <code>curl.cainfo = "C:\xampp\php\cacert.pem.txt"</code> Adicionalmente, caso o método acima não solucione, outra possível solução está relacionada a referência do certificado. Ele pode até já estar instalado local na máquina, mas os certificados podem estar localizados em <code>/etc/ssl/certs/ca-certificates.crt</code> ao invés de <code>/etc/pki/tls/certs/ca-bundle.crt</code>. Neste caso, bastaria definir a variável de ambiente <code>CURL_CA_BUNDLE</code> para o caminho correto. ## 6. Vídeos Explicativos: Instalação da API <hr> Pensando em oferecer novos meios de transmitir informações, a Gerencianet disponibiliza os vídeos a seguir com o objetivo de explicar, de maneira clara e objetiva, como instalar o Composer no sistema operacional Windows e Linux. ### Instalando o Composer via Windows [block:html] { "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/bu9tUI3dHwI\" frameborder=\"0\" allowfullscreen></iframe>" } [/block] ### Instalando o Composer via Linux [block:html] { "html": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/uQFhNJhbzdg\" frameborder=\"0\" allowfullscreen></iframe>" } [/block] Para acesso às demais aulas, de outros assuntos, acesse a seção "[Curso Online de Integrações](https://dev.gerencianet.com.br/docs/curso-online-gerencianet)".