3 - Inicialização

Para utilizar o Desktop Server, é necessário inicializar o SDK enviando as credenciais de acesso.

📘

É necessário também ativar o dispositivo conforme descrito em 2 - Ativação para obter as credenciais (marketplace, seller e accessKey).

Exemplo de inicialização

Requisitando ao servidor

Para iniciar o SDK, é necessário enviar uma requisição em JSON com os seguintes campos:

{
  "type": "initialize",
  "marketplace": "MKTPLACE_ID", // ID do marketplace   | String numérica hexadecimal.
  "seller": "SELLER_ID",        // ID do seller        | String numérica hexadecimal.
  "accessKey": "ACCESSKEY",     // Chave de acesso     | String numérica, no padrão UUID.
  "devicePort": "COM_PORT"      // Porta COM do PIN Pad | String alfanumérica. Opcional.
}

O campo devicePort é opcional e pode ser omitido caso o servidor deva realizar a autodetecção do PIN Pad.

Isso deve ser feito por meio de WebSocket, como no exemplo abaixo, em JavaScript:

let initRequest = {
  type: "initialize",
  marketplace: "{seu marketplace ID}",
  seller: "{seu seller ID}",
  accessKey: "{sua access key}",
  devicePort: "COM3"
}

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

  if (response == null) {
    return
  }

  if (response.type == "initialize") {
    if (response.status == "success") {
      // Inicialização bem-sucedida.
      return
    }

    if (response.status == "failed") {
      // Falha na inicialização.
      return
    }
  }
}
📘

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

Respostas

O Desktop Server responderá em JSON, indicando em status:

  • success: o sucesso da inicialização;
  • failed: ou a falha da inicialização e a causa.

Sucesso na inicialização

Esta resposta sinaliza que a inicialização foi concluída com sucesso.

{
  "type": "initialize",
  "status": "success",
  "message": "Inicialização realizada com sucesso"
}

Falha na inicialização

Caso ocorra algum erro (ex: credenciais inválidas), a resposta será similar a esta:

{
  "type": "initialize",
  "status": "failed",
  "message": "A inicialização foi malsucedida.",
  "statusCode": -1
}