O que é o SaaS?
O SaaS é uma plataforma na nuvem que faz a emissão dos documentos fiscais e serve como um repositório de suas notas, ele seria como uma ponte entre sua aplicação e a Sefaz/Prefeitura
Dessa forma, ele é dividido em 2 partes, uma delas é a área da Software House (Sua empresa que tem vínculo com a TecnoSpeed) e a área dos seus clientes (Que são conhecidos como 'Grupos').
Para fazer a integração com o SaaS você vai precisar de uma conta (Software House) e de um cliente cadastrado (Grupo) na sua conta de Soft. House.
Realizando o cadastro da Software House.
O cadastro é bem simples, basta acessar o Link e seguir os passos do registro.
Logo depois vamos precisar de um Grupo para podermos começar os testes com o nosso produto, o cadastro dele pode ser feito seguindo este vídeo.
Lembre-se de guardar o Nome do Grupo, Usuário e Senha quando estiver criando o Grupo
O que fizemos aqui?
Criamos a nossa conta de Software House (Guarde o login e senha dela pois você vai precisar cadastrar mais grupos ou fazer manutenção em alguns) e criamos o nosso primeiro Grupo, agora com ele vamos conseguir prosseguir com os testes, no entanto é necessário que você tenha em mãos os seguintes dados Nome do Grupo, Usuário e Senha.
Eles são utilizados para fazermos a configuração de suas requisições em PHP, além de usarmos precisarmos deles para acessarmos a Interface Web dos grupos.
O que vou alterar no código, quando eu for testar o meu grupo?
* É importante lembrar que a URL do SaaS no ambiente real onde você fará as requisições com seus dados, ficará assim : managersaas.tecnospeed.com.br, ou seja sem o hom na URL. *
Para as rotas que precisam enviar um POST você fará as seguintes alterações. Ex: Nosso arquivo envia.php.
//Lê conteudo de um txt
$tx2 = file_get_contents('NFe.tx2');
//Dados do form
$post_data['grupo']= $_POST['grupo'];
$post_data['cnpj']= $_POST['CNPJ'];
$post_data['arquivo']= $tx2;
$host = $_POST['host'];
//Gera query em formato URL
$data=http_build_query($post_data);
//Autenticação
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$auth = base64_encode("$usuario:$senha");
$socket = fsockopen("ssl://".$host, 7071, $errno, $errstr, 15); Altere 7071 para 8081
$http = "POST /ManagerAPIWeb/nfe/envia HTTP/1.1\r\n";
$http .= "Authorization: Basic ".$auth."\r\n";
$http .= "Host: ".$host.":7071\r\n"; Altere 7071 para 8081
$http .= "User-Agent: " . $_SERVER['HTTP_USER_AGENT'] . "\r\n";
$http .= "Content-Type: application/x-www-form-urlencoded\r\n";
$http .= "Content-length: " . strlen($data) . "\r\n";
$http .= "Connection: close\r\n\r\n";
$http .= $data."\r\n\r\n";
fwrite($socket, $http);
$result="";
//Lê todas as linhas do retorno
while (!feof($socket))
{
$result .= fgets($socket, 4096);
}
fclose($socket);
//Separa header do conteudo
list($header, $body) = preg_split("/\R\R/", $result, 2);
//Exibe conteudo
echo($body);
Para as rotas que precisam enviar um GET você fará as seguintes alterações. Ex: Nosso arquivo consulta.php.
$curl = curl_init(); Altere 7071 para 8081 $urlconsulta = "https://".$_GET['host'].":7071/ManagerAPIWeb/nfe/consulta?"."grupo=".$_GET['grupo']."&cnpj=".$_GET['cnpj']."&filtro=".$_GET['filtroconsulta']."&campos=".$_GET['camposconsulta']; //Autenticação $usuario = $_GET['usuario']; $senha = $_GET['senha']; $auth = base64_encode("$usuario:$senha"); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_URL => $urlconsulta, CURLOPT_USERAGENT => 'Codular Sample cURL Request' )); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Authorization: Basic '.$auth )); $retorno = curl_exec($curl); curl_close($curl); echo $retorno;
Links importantes
Documentação das rotas do SaaS: Acessar.
Documentação do arquivo TX2: Acessar.
Documentação do postman com as rotas do SaaS: Acessar.