{
"type": "activation",
"downloadTheme": true // Baixar o tema durante a ativação | Booleano. Opcional
}
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
}
}
// ...
}
downloadTheme
é opcional, podendo ser omitido. Quando omitido, assume-se seu valor como true
.Um exemplo mais completo pode ser encontrado no aplicativo de exemplo, na função eventActivation
do arquivo activation.js
.
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.{
"type": "activation",
"status": "started",
"message": "Iniciando requisição de token"
}
{
"type": "activation",
"status": "token",
"token": "00000000" // Token de ativação | String numérica.
}
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.
{
"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.
}
{
"type": "activation",
"status": "failed",
"message": "unable to get token status",
"statusCode": -1,
}
statusCode
será o código do erro que ocasionou a falha, sendo -1
caso não haja um código para a causa.{
"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.
}
{
"type": "activation",
"status": "failed",
"message": "Falha ao baixar tema",
"statusCode": -1,
}
{
"type": "abort"
}