Não achei nada sobre como fazer
o auth.nuvemfiscal.com.br no SDK php.
Pelo que vi nos exemplos
ja começa no token que é o retorno do auth.
Como devo proceder ?
Olá PCG, não sei se sua pergunta é sobre como obter o token a partir das credenciais?
Basta seguir o processo descrito na documentação da Nuvem Fiscal:
Isso é um fluxo normal de OAuth2 e não é específico da Nuvem Fiscal. Mas de qualquer forma segue um pequeno exemplo:
function get_oauth2_token($auth_url, $client_id, $client_secret, $scope) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $auth_url);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
'grant_type' => 'client_credentials',
'scope' => $scope,
)));
$headers[] = "Authorization: Basic " . base64_encode($client_id . ":" . $client_secret);
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
return json_decode($response);
}
}
Você pode portanto chamar a função da seguinte forma:
$token = get_oauth2_token(
'https://auth.nuvemfiscal.com.br/oauth/token',
$_ENV['NUVEMFISCAL_CLIENTID'],
$_ENV['NUVEMFISCAL_CLIENTSECRET'],
'cep cnpj' // defina o scope a ser usado
);
// Configurar access token OAuth2 para autorização: oauth2
$config = NuvemFiscal\Configuration::getDefaultConfiguration()->setAccessToken($token->access_token);
Obrigado.
Na verdade, era ± isso mesmo sobre o accesstoken ja tinha feito.
é que nao tinha achado nada especifico para o clientid,clientsecret, e
acabei fazendo usando curl como vc mandou.
Obrigado.
Aprovenitando ja consegui fazer e usar o consutacep e consultacnpj.
agora vou comerçar a preencher uma nota para teste.
seria assim ?
public static function emitirNfe ($config)
{
$body = new \NuvemFiscal\Model\NfePedidoEmissao();
$body->inf_nfe->versao = '';
$body->inf_nfe->id = '';
//continua.
$apiInstance = new NuvemFiscal\Api\NfeApi(
new GuzzleHttp\Client(),
$config
);
try {
$result = $apiInstance->emitirNfe($body);
return json_decode($result);
} catch (Exception $e) {
echo 'Exception when calling NfeApi->emitirNfe: ', $e->getMessage(), PHP_EOL;
}
}
A princípio sim, aqui tem um post com um exemplo utilizado por outro usuário, como referência:
obrigado , era isso mesmo que queria.
Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.