Ativação

Ativação

  • É necessário requisitar a ativação para recuperar as credenciais. Com elas disponíveis, então se poderá requisitar pagamentos, estornos e outros serviços.

Exemplo de ativação

Requisitando ao servidor:
  • A ativação é feita enviando uma requisição em JSON como logo a seguir:
{
  "type": "activation"
}
  • Isso deve ser feito por meio de WebSocket, como no exemplo abaixo, em JavaScript.
let activationRequest = {
  type: "activation"
}

// Onde `socket` é um objeto de `WebSocket`.
socket.send(JSON.stringify(activationRequest))
socket.onmessage = (event) => {
  let response = JSON.parse(event.data)

  if (response == null) {
    return
  }

  if (response.type == "activation") {
    if (response.status == "started") {
      // O fluxo de ativação foi iniciado.
      // ...

      return
    }

    if (response.status == "token") {
      // O token de ativação foi recebido e pode ser obtido do campo `token`.
      // ...

      return
    }

    if (response.status == "success") {
      /* Ativação bem-sucedida, e as credenciais podem ser obtidas dos campos da
         resposta. */
      // ...

      return
    }

    if (response.status == "failed") {
      // Falha na ativação.
      // ...

      return
    }

    if (response.status == "theme") {
      /* As configurações do tema do seller podem ser obtidas dos campos da 
         resposta. */
      // ...

      return
    }
  }

  // ...
}

Um exemplo mais completo pode ser encontrado no aplicativo de exemplo, na função eventActivation do arquivo activation.js.

Respostas:
  • O Zoop Desktop Server responderá em JSON, indicando em status:
    • started: o início da ativação;
    • token: o recebimento do token de ativação;
    • success: o sucesso da ativação;
    • failed: a falha da ativação e a causa;
    • theme: ou o tema do seller.
Início da ativação:
  • Esta resposta sinaliza o início do processo de ativação. Logo em seguida, o token para ativação será enviado pelo Zoop Desktop Server.
{
  "type": "activation",
  "status": "started",
  "message": "Iniciando requisição de token"
}
Recebimento do token:
  • Logo após a confirmação da requisiçao de ativação, o token começa a ser gerado. Um novo token será recebido a cada 15 minutos.
{
  "type": "activation",
  "status": "token",
  "token": "00000000" // Token de ativação | String numérica.
}
Processo de ativação
  • A ativação é feita pelo seu dashboard para recuperar as credenciais, usando o token gerado com a requisição de ativação, conforme exemplo a seguir:

dashboardActivation

Cada dispositivo só precisa fazer essa ativação uma única vez para que seja criado na nossa base de dados, associando-o ao estabelecimento. Depois disso, é possível inicializar o plugin diretamente com as credenciais recebidas.

Confirmação da ativação
  • Confirmada e bem-sucedida a ativação, a resposta a seguir é recebida:
{
  "type": "activation",
  "status": "success",
  "marketplace": "MKTPLACE_ID", // ID do marketplace           | String numérica hexadecimal.
  "seller": "SELLER_ID",        // ID do seller                | String numérica hexadecimal.
  "accessKey": "KEY",           // Chave de acesso             | String numérica, no padrão UUID.
  "terminal": "SERIAL_NUMBER",  // Número de série do terminal | String alfanumérica.
  "sellerName": "SELLER_NAME"   // Nome do seller              | String alfanumérica.
}
Falha durante a ativação:
  • Caso ocorra alguma falha durante o processo, a resposta será similar a esta:
{
  "type": "activation",
  "status": "failed",
  "message": "unable to get token status",
  "statusCode": -1,
}
  • O valor de statusCode será o código do erro que ocasionou a falha, sendo -1 caso não haja um código para a causa.
Download do tema do seller:
  • O download do tema será realizado ao final da ativação com sucesso e, caso seja bem-sucedido, a resposta será como a seguir:
{
  "type": "activation",
  "status": "theme",
  "message": "Tema baixado com sucesso",
  "color": {
      "screen": "#000000",       // Cor de fundo da tela   | String hexadecimal.
      "font": "#000000",         // Cor da fonte           | String hexadecimal.
      "button": "#000000",       // Cor do botão           | String hexadecimal.
      "buttonText": "#000000",   // Cor do texto do botão  | String hexadecimal.
      "window": "#000000",       // Cor da janela          | String hexadecimal.
      "windowText": "#000000",   // Cor do texto da janela | String hexadecimal.
      "windowButton": "#000000", // Cor do botão da janela | String hexadecimal.
      "default": "#000000"       // Cor padrão             | String hexadecimal.
  },
  "logo": {
      "coloredBase64": "data:image/png;base64,iVBORw0KGgoAAAANS",    // Logo colorido      | String base64.
      "monochromeBase64": "data:image/png;base64,iVBORw0KGgoAAAANS", // Logo monocromático | String base64.
      "paxBase64": "data:image/png;base64,iVBORw0KGgoAAAANS"         // Logo Pax           | String base64.
  },
  "updatedAt": "2020-01-01T00:00:00.000Z", // Data de atualização | String no padrão ISO 8601.
  "createdAt": "2020-01-01T00:00:00.000Z"  // Data de criação     | String no padrão ISO 8601.
}
  • Caso ocorra alguma falha durante o processo de download, a resposta será como a seguir:
{
  "type": "activation",
  "status": "failed",
  "message": "Falha ao baixar tema",
  "statusCode": -1,
}
Conclusão:
  • Ao receber a confirmação de ativação, você estará apto a utilizar o serviços de pagamento, estorno e outros.
Cancelamento assíncrono:
  • A operação de ativação pode ser cancelada a qualquer momento enviando a requisição a seguir:
{
  "type": "abort"
}