Gerar Chaves de Acesso

A Chave de Acesso é a credencial utilizada para acessar os recursos protegidos do cliente. Essa chave representa a autorização emitida pelo cliente no servidor de autorização do Tray Commerce. É possível gerar a Chave de Acesso utilizando as chaves disponibilizados para o aplicativo (consumer key e consumer secret) e o código de autorização, resgatado após a permissão do usuário, sendo realizada esta solicitação para a API de Gerar Chave de Acesso.

Método POST

https://{api_address}/auth

Parâmetros de envio

Campo Tipo Descrição
consumer_key String Chave da aplicação
consumer_secret String Chave secreta da aplicação
code String Código de autorização

 

Código de Exemplo

<?php
    $params["consumer_key"] = "### Chave da Aplicação ###";
    $params["consumer_secret"] = "### Chave Secreta da Aplicação ###";
    $params["code"] = "### Código de Autorização ###";

    $url = "https://{api_address}/auth/";

    ob_start();

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    curl_exec($ch);

    // JSON de retorno  
    $resposta = json_decode(ob_get_contents());
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    ob_end_clean();
    curl_close($ch);

    if($code == "201"){
        //Tratamento dos dados de resposta da consulta.
    }else{
        //Tratamento das mensagens de erro
    }
?>

string URLAuth = "https://{api_address}/auth/";

NameValueCollection queryParameters = new NameValueCollection();

queryParameters.Add("consumer_key", "### Chave da Aplicação ###");
queryParameters.Add("consumer_secret", "### Chave Secreta da Aplicação ###");
queryParameters.Add("code", "### Código de Autorização ###");

List items = new List();

foreach (String name in queryParameters)
    items.Add(String.Concat(name, "=", System.Web.HttpUtility.UrlEncode(queryParameters[name])));

string postString = String.Join("&", items.ToArray());

HttpWebRequest webRequest = WebRequest.Create(URLAuth) as HttpWebRequest;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";

StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();

StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
string responseData = responseReader.ReadToEnd();

responseReader.Close();
webRequest.GetResponse().Close();
    

String url = "https://{api_address}/auth/";
StringBuffer response = null ;
try{
    String consumer_key = "consumer_key=### Chave da Aplicação ###";
    String consumer_secret = "consumer_secret=### Chave Secreta da Aplicação ###";
    String code = "code=13a89a2bb5bc1202ee49a90caa7c3737a30b1a51fa7d10c4edc7fa6b111778b3";
    
    String postString = consumer_key+"&"+consumer_secret+"&"+code;
    
    byte[] postData = postString.getBytes( StandardCharsets.UTF_8 );
    
    URL obj = new URL(url);
    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

    //add reuqest header
    con.setRequestMethod("POST");
    con.setRequestProperty("User-Agent", USER_AGENT);
    con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
    con.setRequestProperty( "charset", "utf-8");
    con.setRequestProperty( "Content-Length", Integer.toString( postData.length ));

    // Send post request
    con.setDoOutput(true);
    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.write(postData);
    wr.flush();
    wr.close();

    int responseCode = con.getResponseCode();

    BufferedReader in ;
    if (responseCode >= 200 && responseCode < 300){
        in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
    }else{
        in = new BufferedReader(
            new InputStreamReader(con.getErrorStream()));
    }
    
    String inputLine;
    response = new StringBuffer();

    while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
    }
    in.close();

} catch (Exception ex){
    // Tratamento da Exception
}
String resposta = response.toString();
    

 

Retorno em caso de sucesso (status code 200 ou 201)

Campo Tipo Descrição
code Number Código de status de retorno
message String Mensagem de retorno
access_token String Chave de acesso
refresh_token String Chave para atualização
date_expiration_access_token Datetime Data de expiração da chave de acesso
date_expiration_refresh_token Datetime Data de expiração da chave de atualização
date_activated Datetime Data de ativação da chave de acesso
api_host String URL da API para a loja
store_id Number Código da loja
{
    "code": 201,
    "message": "Created tokens",
    "access_token": "abc96fb7b1defd2496b9a9d81071fa12319b12306465e057d0ebca9bd9ab19",
    "refresh_token": "bbc96fb7b1defd2496b9a9d81071fa12319b12306465e057d0ebca9bd9ab19",
    "date_expiration_access_token": "2018-09-03 21:17:56",
    "date_expiration_refresh_token": "2018-10-03 18:17:56",
    "date_activated": "2018-09-03 18:17:56",
    "api_host": "https://ulrdaloja.com.br/web_api",
    "store_id": "123456"
}
 

Atualizar Chave de Acesso

Após gerar a Chave de Acesso, por questões de segurança, existe um período válido para esta chave. Caso esta Chave de Acesso expire, é possível resgatar uma nova chave de acesso através da API de Renovar Chave de Acesso.

 

Método GET

https://{api_address}/auth

Código de Exemplo

<?php
    $params["refresh_token"] = "### Chave para Atualização ###";

    $url = "https://{api_address}/auth/?".http_build_query($params);

    ob_start();

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
    curl_exec($ch);

    // JSON de retorno  
    $resposta = json_decode(ob_get_contents());
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    ob_end_clean();
    curl_close($ch);

    if($code == "200"){
        //Tratamento dos dados de resposta da consulta.
    }else{
        //Tratamento das mensagens de erro
    }
?>

string URLAuth = "https://{api_address}/auth/";

NameValueCollection queryParameters = new NameValueCollection();

queryParameters.Add("refresh_token", "### Chave para Atualização ###");    

List items = new List();

foreach (String name in queryParameters)
    items.Add(String.Concat(name, "=", System.Web.HttpUtility.UrlEncode(queryParameters[name])));

string argsString = String.Join("&", items.ToArray());

WebRequest request = WebRequest.Create(URLAuth + "?" + argsString);
    
request.Credentials = CredentialCache.DefaultCredentials;
    
WebResponse response = request.GetResponse();
  
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
    
Stream dataStream = response.GetResponseStream();
    
StreamReader reader = new StreamReader(dataStream);

string responseData = reader.ReadToEnd();

Console.WriteLine(responseData);
reader.Close();
response.Close();
      

String url = "https://{api_address}/auth/";

Map<String, String> mapToConvert = new HashMap<>();
mapToConvert.put("refresh_token", "### Chave para Atualização ###");

String queryString = "";

for (Entry<String, String> entry : mapToConvert.entrySet()) {
    queryString += entry.getKey()+"="+ entry.getValue()+"&";
}

try {
    URL obj = new URL(url+"?"+queryString);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    
    con.setRequestMethod("GET");
    con.setRequestProperty("User-Agent", USER_AGENT);

    int responseCode = con.getResponseCode();

    BufferedReader in ;
    if (responseCode >= 200 && responseCode < 300){
        in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
    }else{
        in = new BufferedReader(
            new InputStreamReader(con.getErrorStream()));
    }
    
    String inputLine;
    StringBuilder response = new StringBuilder();

    while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
    }
    in.close();
    
    String resposta = response.toString();

} catch (Exception ex){
    // Tratamento da Exception
}
      

Parâmetros enviados

Field Type Description
refresh_token String Chave para atualização

 

Retorno em caso de sucesso (status code 200 ou 201)

Campo Tipo Descrição
code Number Código de status de retorno
message String Mensagem de retorno
access_token String Chave de acesso
refresh_token String Chave para atualização
date_expiration_access_token Datetime Data de expiração da chave de acesso
date_expiration_refresh_token Datetime Data de expiração da chave de atualização
date_activated Datetime Data de ativação da chave de acesso
api_host String URL da API para a loja
store_id Number Código da loja

 

Retorno do sucesso

{
    "code": 200,
    "message": "Refreshed tokens",
    "access_token": "abc96fb7b1defd2496b9a9d81071fa12319b12306465e057d0ebca9bd9ab19",
    "refresh_token": "bbc96fb7b1defd2496b9a9d81071fa12319b12306465e057d0ebca9bd9ab19",
    "date_expiration_access_token": "2018-09-03 21:17:56",
    "date_expiration_refresh_token": "2018-10-03 18:17:56",
    "date_activated": "2018-09-03 18:17:56",
    "api_host": "https://ulrdaloja.com.br/web_api",
    "store_id": "123456"
}
 
Frontend - Agencia 
Tem mais dúvidas? Envie uma solicitação

Comentários

    Artigos nessa seção

    Powered by Zendesk