Escolar Documentos
Profissional Documentos
Cultura Documentos
Catálogo
1ÿGuia de Desenvolvimento ............................................. .................................................. .........2
1. Guia de Desenvolvimento
1.1ÿIntrodução Geral
Estrutura geral
A plataforma fornece um conjunto de funções que inclui autenticação, árvore de dispositivos, vídeo, acesso, transporte,
gerenciamento de atendimento, reconhecimento facial e negócios de intercomunicação visível, e interage com protocolos
HTTP, MQ e RTSP. O protocolo HTTP é usado para acessar a interface REST fornecida na plataforma.
O controle de operação e o acesso aos recursos da plataforma podem ser exigidos pela interface REST. O protocolo MQ
é usado para assinar e receber mensagens na plataforma. O protocolo RTSP é usado para acessar dados de áudio e
vídeo na plataforma. Gráfico de estrutura geral:
Machine Translated by Google
Conceito básico
Machine Translated by Google
• Sessão: Uma sessão é gerada após um cliente ser autenticado na plataforma. Na sessão, o cliente poderia
solicitar recursos permitidos e receber mensagens push do MQ na plataforma.
A plataforma exclui a sessão em caso de tempo limite de keep-alive ou cancelamento inicial da autenticação.
• Canal: Existem vários canais em uma unidade. Um canal é a menor unidade para fornecer dados. Por exemplo,
um canal de codificação pode emitir dados de streaming de vídeo e um canal de alarme pode detectar e
emitir informações de alarme. Uma unidade possui vários canais, enquanto o tipo de canal e o tipo de
unidade são consistentes.
1.2ÿGuia de Desenvolvimento
Autenticação keep-alive
Aviso de QM
A mensagem enviada pelo MQ está no formato Json. Consulte a mensagem do MQ para obter o formato detalhado.
Árvore de departamento
Use o canal de código na árvore de dispositivos para solicitar vídeo em tempo real. Obtenha dados de fluxo pelo protocolo RTSP após
obter o URL do vídeo em tempo real. A plataforma suporta stream privado e stream padrão. Solicite stream privado e stream
padrão montando diferentes formatos RTSP. O player Intelbras pode reproduzir stream privado. Você pode acessar o player
Intelbras no site oficial da Intelbras. Adota interface C e biblioteca dinâmica (dll) para carregamento. O player Intelbras também pode
reproduzir stream padrão. Ou você pode selecionar uma biblioteca de código aberto para decodificá-la e reproduzi-la.
Gravar reprodução
Registro da plataforma: configure o armazenamento da plataforma. O dispositivo pode estar offline para pesquisa e reprodução de
registros da plataforma. Registro do dispositivo: O registro do dispositivo deve ser armazenado no dispositivo. O dispositivo deve estar
on-line para pesquisa e reprodução de registros do dispositivo. A plataforma suporta stream privado e stream padrão. Solicite
stream privado e stream padrão montando diferentes formatos RTSP. O player Intelbras pode reproduzir stream privado. Você
pode acessar o player Intelbras no site oficial da Intelbras. Adota interface C e biblioteca dinâmica (dll) para carregamento. O player
Intelbras também pode reproduzir stream padrão. Ou você pode selecionar uma biblioteca de código aberto para decodificá-la e
reproduzi-la.
1.3ÿPerguntas frequentes
O valor do token de X-Subject-Toekn no cabeçalho http da mensagem de solicitação é inválido. A interface retorna o código de erro
401. Captura de pacotes mostrada abaixo:
{"clientType":"WINPC","clientMac":"","clientPushId":"","project":"PS
DK","method":"MTS.Video.StartVideo","dados":{" streamType":"1","option al":"/admin/API/
MTS/Video/StartVideo?","trackId":"","extend":"","cha nnelId":"1000001$1$0$0
","planId":"","dataType":"2"}}
{"realm":"DSS","randomKey":"d14a801f91594873","encryptType":"MD5"}
O campo de tipo de conteúdo no cabeçalho http não está definido como application/json. A interface retorna o código de erro 415. Captura de
pacotes conforme mostrado abaixo:
{"clientType":"WINPC","clientMac":"","clientPushId":"","project":"PS
DK","method":"MTS.Video.StartVideo","dados":{" streamType":"1","option al":"/admin/API/
MTS/Video/StartVideo?0574987f9cf54f5a8a41a8ae22ae8e5
7","trackId":"","extend":"","channelId":"1000001$1$0 $0","planId":"", "dataType":"2"}}
mensagem
descrição O servidor recusou esta solicitação porque a entidade da solicitação está em um formato não compatível
rted pelo recurso solicitado para o método solicitado.
ApacheTomcat/7.0.85
1.4ÿCódigo de erro
Erro
Mensagem de erro
de código
Erro
Mensagem de erro
de código
2027 O tempo da tag deve ser um número inteiro longo e sem sinal
2028 A hora de início deve ser um número inteiro longo e sem sinal
2029 O horário de término deve ser um número inteiro longo e sem sinal
2037 O tempo de chamada deve ser um número inteiro longo e sem sinal
2039 O tempo de operação deve ser um número inteiro longo sem sinal
Erro
Mensagem de erro
de código
2064 A duração do registro deve ser um número inteiro longo e sem sinal
2075 O tempo de bloqueio deve ser um número inteiro longo e sem sinal
Erro
Mensagem de erro
de código
2096 A hora de início do alarme deve ser um número inteiro longo e sem sinal
2097 A hora de término do alarme deve ser um número inteiro longo e sem sinal
2098 A hora de início do identificador deve ser um número inteiro longo e sem sinal
2099 O horário de término do identificador deve ser um número inteiro longo e sem sinal
Erro
Mensagem de erro
de código
Erro
Mensagem de erro
de código
Erro
Mensagem de erro
de código
2214 Existem alguns repositórios que foram usados, não podem ser removidos.
2224 O repositório facial está sendo operado. Tente novamente mais tarde.
2235 O sistema está ocupado. Por favor, tente novamente mais tarde.
Erro
Mensagem de erro
de código
Erro
Mensagem de erro
de código
6071 O grupo de discos configurou a cota do grupo, não é possível definir o tipo de imagem!
Erro
Mensagem de erro
de código
6098 Resposta do servidor P2P vazia, o dispositivo pode não estar registrado no servidor p2p.
O dispositivo é membro de um grupo de dispositivos ou grupo de gerenciamento e não tem permissão para excluir
6106
6107 O usuário é membro de um grupo de gerenciamento de intercomunicação e não tem permissão para excluir
6135 O arquivo de backup não corresponde à versão atual do DSS e não pode ser restaurado
6156 A janela foi configurada para link video wall e não pode ser excluída
6159 A tarefa de extração do registro acs está em execução. Tente mais tarde.
Erro
Mensagem de erro
de código
8024 Este grupo de dispositivos é membro de um grupo de relacionamento e não tem permissão para excluir
8025 Este grupo de gerenciamento é membro de um grupo de relacionamento e não tem permissão para excluir
Erro
Mensagem de erro
de código
2ÿProcesso de Negócios
2.1ÿAutenticação de login
Autenticação
Primeira autenticação
-O nome de usuário é necessário para a primeira solicitação de autenticação. Neste momento, a plataforma retorna o
código de erro 401 sem autoridade e carrega informações criptografadas no corpo da mensagem. As informações
criptografadas incluem informações de domínio (reino), chave aleatória e tipo de criptografia. Atualmente, o método
de criptografia oferece suporte apenas a MD5. -O processo de solicitação é o seguinte:
{
"nomedeusuário": "sistema",
"endereço de IP": "",
"clientType": "WINPC"
}HTTP/1.1 401 Não autorizado
Servidor: Apache-Coyote/1.1
Conjunto de cookies: JSESSIONID=7994C0D4B07F194D0757882392DCC2C0; Caminho=/admi
n; Somente http
Tipo de conteúdo: application/json;charset=utf-8
Comprimento do conteúdo: 66
Data: Quarta, 19 de dezembro de 2018 08:41:58 GMT
Conexão: fechar
Machine Translated by Google
{"realm":"DSS","randomKey":"9c2b603650f54bcb","encryptType":"MD5"}
Segunda autenticação
temp = md5(senha)
temp = md5(nomedeusuário + temp)
temperatura = md5(temperatura)
Parâmetros Valor
senha "administrador123"
reino "DSS"
Tempos
Valor dos parâmetros/resultados
de criptografia
1 Parâmetros "administrador123"
1 Resultado "0192023a7bbd73250516f069df18b500"
2 Parâmetros "sistema0192023a7bbd73250516f069df18b500"
2 Resultado "5a0fdbe44b86807b5e5e127918bbc475"
3 Parâmetros "5a0fdbe44b86807b5e5e127918bbc475"
3 Resultado "1e27fadce9af09e120ab5142a83a679e"
4 Parâmetros "sistema:DSS:1e27fadce9af09e120ab5142a83a679e"
4 Resultado "675ae42820b189caa27d63b4b3264232"
5 Parâmetros "675ae42820b189caa27d63b4b3264232:9c2b603650f54bcb"
5 Resultado "7b6f728a6fa77e1ea5984afda8008e42"
Anfitrião: 35.10.92.66
Conexão: fechar
Tipo de conteúdo: application/json;charset=UTF-8
Comprimento do conteúdo: 186
{
"nomedeusuário": "sistema",
"randomKey": "9c2b603650f54bcb",
"Mac": "",
"encryptType": "MD5",
"endereço de IP": "",
"assinatura": "7b6f728a6fa77e1ea5984afda8008e42",
"clientType": "WINPC"
}HTTP/1.1 200 OK
Servidor: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=042C68CF5399B1898DCFD78B35A90896; Caminho=/admi
n; Somente http
Tipo de conteúdo: application/json;charset=utf-8
Codificação de transferência: fragmentada
Data: Quarta, 19 de dezembro de 2018 08:41:58 GMT
Conexão: fechar
{"duração":30,"token":"a0e5844699db4cf8a2f9afaae11becd4","userId":"
1","versionInfo":{"lastVersion":"1074472","updateUrl":"/admin/x86/Ge
neral_DSS-Express_Client-x86_V1.000.0000002.0.R.20181213.exe;/admin/
x64/General_DSS-Express_Client-x64_V1.000.0000002.0.R.20181213.exe
"},"sipNum":"8888881000"}
-Após o sucesso da segunda autenticação, o significado do campo retornado pela plataforma é o seguinte: duração:
Duração do keep-alive. É necessário chamar a interface do token de atualização (/admin/API/accounts/
updateToken) para manter-se ativo durante a duração do keep-alive. token: token. Nas solicitações subsequentes, o
token precisa ser colocado no cabeçalho da solicitação e o nome do campo é X Subject-Token. userId: ID do
usuário. VersionInfo: Versão do cliente e endereço de download do cliente.
Atualizar token
Parâmetros Valor
temperatura "675ae42820b189caa27d63b4b3264232"
símbolo "a0e5844699db4cf8a2f9afaae11becd4"
Tempos
Parâmetros/Res.
de criptografia Valor
ults
ns
"675ae42820b189caa27d63b4b3264232:a0e5844699db4cf8a2f9afaa
1 Parâmetros
e11becd4"
1 Resultado "5bce0dc0059363e251a706a8b1b281a9"
{
"assinatura": } "5bce0dc0059363e251a706a8b1b281a9"
HTTP/1.1 200 OK
Servidor: Apache-Coyote/1.1
Conjunto de cookies: JSESSIONID=C778CC5FC4302D4C71DB10F7FF34391B; Caminho=/admi
n; Somente http
Tipo de conteúdo: application/json;charset=UTF-8
Codificação de transferência: fragmentada
Data: Quarta, 19 de dezembro de 2018 08:43:04 GMT
Conexão: fechar
{"código":1000,"desc":"Sucesso","dados":{"token":"a0e5844699db4cf8a2f9a
faae11becd4","duração":30}}
O cliente precisa atualizar o valor do token na mensagem retornada para o valor do token local e usar o valor do token
atualizado para cálculos subsequentes.
Observação:
Machine Translated by Google
Cancelar autenticação
Quando o cliente sai, ele precisa chamar a interface não autorizada. O corpo da mensagem desta interface
precisa trazer o nome de usuário e o token.
{
"nomedeusuário": "sistema",
"token": "a0e5844699db4cf8a2f9afaae11becd4"
}HTTP/1.1 200 OK
Servidor: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=EB3DEE86E1FD0DAAEADF89E19CD2B1C6; Caminho=/admi
n; Somente http
Tipo de conteúdo: application/json;charset=UTF-8
Codificação de transferência: fragmentada
Data: Quarta, 19 de dezembro de 2018 08:43:17 GMT
Conexão: fechar
{"código":1000,"desc":"Sucesso"}
Um ID de canal consiste em deviceId, unitType, unitSeq e channelSeq, separados por um símbolo $, conforme mostrado na figura a seguir:
• Onde O deviceID é um número de 7 dígitos. A partir de 1.000.000, os códigos dos dispositivos recém-adicionados na plataforma
aumentam sequencialmente. UnitType é um tipo de unidade. Consulte a tabela a seguir para obter significado específico. UnitSeq
é o número de série da unidade, começando em 0.
ChannelSeq é o número do canal, começando em 0, indicando qual canal está nesta unidade.
Na figura acima, 1000000$1$0$3 indica o 4º canal da 1ª unidade da unidade de codificação do dispositivo No.1.000.000.
1 Unidade de codificação
2 Unidade de decodificação
9 Unidade de transcodificação
11 Unidade PDV
12 Unidade virtual
GET /admin/API/tree/deviceOrg?channelType=1,2,3,4,5,6,7,8,10,11,12,1
4,15,33&sort=&orgCode= HTTP/1.1
Parâmetro
Nome Tipo Descrição
Esta é uma sequência de números separados por vírgula, com cada número na sequência
representando um tipo de canal. Se o parâmetro channelType for nulo, todos os canais
channelType string
tipos são solicitados. O tipo de canal corresponde ao tipo de unidade associado ao canal, e
o significado específico pode referir-se ao tipo de unidade.
organizar string O campo não é usado e é nulo por padrão.
códigoorg string Código do departamento; se orgCode estiver em branco, todos os departamentos serão pesquisados.
{
"código": 1000,
"desc": "Sucesso",
"dados": {
"departamentos": [
{
"código": "001",
"parentCode": "",
"nome":"raiz",
"orgType":"1",
"modifyTime": "1483528546",
"departamentosCount": "1",
"domainId": "0",
"dispositivo": [
{
"id": "1000004",
"classificar": "0"
},
{
"id": "1000738",
"classificar": "0"
}
],
"canal": [
Machine Translated by Google
{
"id": "1000004$7$0$0",
"classificar": "0"
},
{
"id": "1000004$7$0$1",
"classificar": "0"
}
]
},
{
"código": "001001",
"parentCode": "001",
"nome": "Controle de acesso",
"orgType":"1",
"modifyTime": "1544749099",
"departamentosCount": "0",
"domainId": "",
"dispositivo": [],
"canal": []
}
]
}
}
Parâmetro
Tipo Descrição
Nome
código
O código de cada departamento é único e o código do nó raiz é a string “001”.
eu ia
string ID de dispositivo
-Os canais do grupo estão em canal e os significados de cada campo são os seguintes:
Lista de dispositivos
{
"orgCode":"",
"deviceCodes": [],
"categorias": []
}
Parâmetro
Tipo Descrição
Nome
Categoria do dispositivo: Filtre o tipo de dispositivo; se estiver em branco, todos os tipos de dispositivos serão
categorias
consultados em string.
• Os dados de resposta da plataforma são string Json, o nó de dispositivos em Json é do tipo array, com cada elemento
da array sendo um dispositivo e cada dispositivo tendo atributos e unidades de dispositivo. O nó Units é do tipo
array, com cada elemento do array sendo uma unidade e cada unidade tendo atributos de unidade e canais. O nó
Canais é do tipo array, com cada elemento do array sendo um canal e os atributos do canal estando sob o canal.
• Campo de atributo do dispositivo Para saber o significado de cada campo, consulte Protocolo de lista de dispositivos.
• Campo de atributo de unidade Para saber o significado de cada campo, consulte Protocolo de lista de dispositivos.
• Campo de atributo do canal Para saber o significado de cada campo, consulte
Protocolo de lista de dispositivos.
2.3ÿGestão de Pessoal
O gerenciamento de pessoal de acoplamento terceirizado geralmente não precisa acessar o MQ, mas o cliente da plataforma
precisa. Senha do cartão pessoal criptografada por AES, este é um utilitário java:
pacote test.encrypt;
importar javax.crypto.*;
importar javax.crypto.spec.SecretKeySpec;
/**
* Criptografia AES
*/
// Chave secreta
// valor hexadecimal
/**
*
Criptografia AES_128_ECB_PKCS5
*
@param conteúdo
*
chave @param
* @retornar
*/
tentar {
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
retornar bytesToHexString(bytes).toLowerCase();
} catch (Exceção e) {
devolver conteúdo;
/**
*
Descriptografia AES_128_ECB_PKCS5
*
@param conteúdo
*
chave @param
* @retornar
*/
tentar {
cipher.init(Cipher.DECRYPT_MODE, keySpec);
} catch (Exceção e) {
devolver conteúdo;
/**
*
Bytes para string hexadecimal
Machine Translated by Google
*
@param bytes
* @retornar
*/
retornar nulo;
String hv = Integer.toHexString(v);
if (hv.comprimento() <2) {
sb.append(0);
sb.append(hv);
retornar sb.toString().toUpperCase();
/**
*
@param str
* @retornar
*/
int pos = i * 2;
resultado de retorno;
/**
*
@param c
* @retornar
*/
/**
* teste
*
@param argumentos
*/
//imprime 447f26333607fa412dbd36f660899db9
System.out.println(EncryptionUtils.encryptWithAES("123456", AES_KEY));
// imprime 123456
System.out.println(EncryptionUtils.decryptWithAES("447f26333607fa412dbd36f660899db9",
AES_KEY));
}
Machine Translated by Google
3.Interface API
3.1ÿAutenticação de login
3.1.1ÿPrimeiro login
Descrição breve:
URL de solicitação:
• /admin/API/contas/autorizar
Exemplo de solicitação
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"nomedeusuário": "sistema",
"endereço de IP": "",
"clientType": "WINPC"
}
Parâmetros:
Exemplo de retorno
{
"reino": "DSS",
"randomKey": "c078b9d42eb74ebb",
"encryptType": "MD5"
}
Machine Translated by Google
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
3.1.2ÿSegundo login
Descrição breve:
URL de solicitação:
• /admin/API/contas/autorizar
Exemplo de solicitação
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"nomedeusuário": "sistema",
"randomKey": "c078b9d42eb74ebb",
"mac": "30:9c:23:79:40:08",
"endereço de IP": "",
"assinatura": "a83edfbd6a98f8cc3aedfea36d9b13bb",
"clientType": "WINPC",
"encryptType": "MD5",
"userType": "0"
}
Parâmetros:
Machine Translated by Google
Parâmetro
Tipo Descrição
Nome
Dados de autenticação, dados de autenticação=AES (PWD, randomKey) se o tipo de string do usuário for
assinatura usuário
de domínio.
Exemplo de retorno
{
"duração": 30,
"token": "5095d4a0c5cc4340b72b7e5c64fa3170",
"userId": "1",
"sipNum": "8888881000",
"emapUrl": nulo,
"serviceAbilty": nulo,
"informação da versão": {
"última versão": "1016871",
"updateUrl": "/admin/x86/General_DSS-Express_Client-x86_V1.0
00.0000002.0.R.20181011.exe;/admin/x64/General_DSS-Express_Client-x6
4_V1.000.0000002.0.R.20181011.exe"
}
}
duração interno
Intervalo de manutenção
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
Machine Translated by Google
3.1.3ÿAtualizar token
Descrição breve:
• Atualizar token
URL de solicitação:
• /admin/API/accounts/updateToken • X-
Subject-Token: {token}
Exemplo de solicitação
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"assinatura": "6684b3858a56d80c85bfa07f625baa10"
}
Parâmetros:
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados":
{ "token": "885c9c2afd784120922e9f5ef164b799",
"duração": 30
}
}
- duração interno
Próximo intervalo de atualização
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
3.1.4ÿModificar senha
Descrição breve:
URL de solicitação:
• /admin/API/Rights/Usuário/Senha/{userId}
• X-Assunto-Token: {token}
Exemplo de solicitação
Método de solicitação:
• COLOCAR
Exemplo de solicitação
{
"oldPassword": "1e27fadce9af09e120ab5142a83a679e",
"nova senha": "3b314ab6808943c6732b52039a5290b2"
}
Parâmetros:
Machine Translated by Google
Parâmetro
Tipo Descrição
Nome
Nova senha, criptografada em um tipo de criptografia retornado ao criar uma sessão de string.
Nova Senha
Observação:
Modo de criptografia:
temp = md5(senha)
temp = md5(nomedeusuário + temp)
temperatura = md5(temperatura)
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso"
}
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
3.1.5ÿSair
Descrição breve:
URL de solicitação:
• /admin/API/contas/desautorizar
• X-Assunto-Token: {token}
Exemplo de solicitação
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"nomedeusuário": "sistema",
"token": "bb15670e2ea24bac832dca223c7b52ac"
}
Parâmetros:
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso"
}
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
3.2ÿÁrvore de Dispositivos
Descrição breve:
URL de solicitação:
Machine Translated by Google
• /admin/API/tree/deviceOrg?channelTypes={channelTypes}&sort={sor t}&orgCode={orgCode} • X-
Subject-Token: {token}
Exemplo de solicitação
GET /admin/API/tree/deviceOrg?channelTypes=1,2,3,4,5,6,7,8,10,11,12,
14,15,33&sort=&orgCode= HTTP/1.1
Host: 10.35.92.66
Conexão: fechar
Tipo de conteúdo: application/json;charset=UTF-8
X-Assunto-Token: 433b9cac285d434683643f79fb86be6b
Nome do parâmetro Tipo Descrição
códigoorg nula Código da organização que significa nó raiz 001 se for nulo string O
símbolo token obtido ao efetuar login
Notas:
Método de solicitação:
• OBTER
Exemplo de solicitação
Vazio
Parâmetros: Nenhum
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados":
{ "departamentos":
[{
"código": "001",
"parentCode": "",
Machine Translated by Google
"nome": "root",
"orgType": "1",
"modifyTime": "1483528546",
"deparmentsCount": "1",
"domainId": "0",
"device": [ {
"id": "1000004",
"classificar": "0"
},
{
"id": "1000738",
"classificar": "0"
},
{
"id": "1000747",
"classificar": "0"
}
],
"canal": [
{
"id": "1000004$7$0$0",
"classificar": "0"
},
{
"id": "1000004$7$0$1",
"classificar": "0"
},
...
]
},
{
"code": "001001",
"parentCode": "001",
"name": "test99",
"orgType": "1",
"modifyTime": "1544749099",
"deparmentsCount": "0",
"domainId ": "",
"dispositivo": [],
"canal": []
}
]
}
Machine Translated by Google
- - nome sequência de
Nome do nó
- - - eu ia corda ID de dispositivo
- - - eu ia string ID do canal
Notas
• Para obter mais códigos de erro retornados, consulte a descrição do código de erro
na página inicial
Descrição breve:
URL de solicitação:
• /admin/API/árvore/dispositivos
• X-Assunto-Token: {token}
Exemplo de solicitação
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"orgCode": "",
"deviceCodes": [],
"categorias": []
}
Parâmetros:
códigoorg interno
Código da organização
códigos de dispositivo string Código do dispositivo, se for nulo, todos os dispositivos são obtidos
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados": {
"dispositivos": [
{
"código": "1000004",
"nome": "10.35.93.67",
"categoria": "8",
"tipo 2",
"modelo": "4",
"estado": "1",
"motivo offline": "0",
"protocolo": "1",
"fabricante": "1",
"dispositivoIp": "10.35.93.67",
"devicePort": "37777",
"proxyIP": "10.35.92.66",
"porta proxy": "",
"nomedeusuário": "admin",
"senha": "8c8944adede71eea53bec5d7624ea53a",
"loginType": "0",
Machine Translated by Google
"sn": "",
"orgCode": "001",
"unidades":
[{
"unitType": "7",
"unitSeq": "0",
"fingerPrintAuth": "0",
"cardAuth": "0",
"faceAuth": "0",
"userIsolate": "0",
"unlockModes ": "",
"canais": [ {
"channelCode": "1000004$7$0$0",
"channelName": "Door1",
"channelSeq": 0,
"status": "1",
"db33Code": "",
"intelliState": "",
"capacidade" : "0",
"domainId": ""
},
{
"channelCode": "1000004$7$0$1",
"channelName": "Door2",
"channelSeq": 1,
"status": "1",
"db33Code": "",
"intelliState": "",
"capacidade" : "0",
"domainId": ""
},
...
]
}
],
"sipId": "",
"sipPwd": "",
"unitEnable": "0",
"buildingEnable": "0",
"domainId": "",
"modifyTime": ""
},
{
Machine Translated by Google
"código": "1000747",
"nome": "NVR",
"categoria": "1",
"tipo": "6",
"modelo": "IPC_256",
"status": "1",
"offlineReason ": "0",
"protocolo": "1",
"fabricante": "1",
"deviceIp": "10.35.106.16",
"devicePort": "37140",
"proxyIp": "",
"proxyPort" : "",
"userName": "admin",
"password": "8c8944adede71eea53bec5d7624ea53a",
"loginType": "0",
"orgCode": "001",
"units": [ {
"unitType": "1",
"unitSeq": "0",
"assistStream": "3",
"zeroChnEncode": "1",
"streamType": "801",
"canais": [ {
"channelCode": "1000747$1$0$0",
"channelName": "IPC",
"channelSeq": 0,
"status": "1",
"cameraType": "1",
"channelType": "1", "
cameraFunctions": "0",
"forPeopleCount": "0",
"faceFunctions": "0",
"db33Code": "",
"intelliState": "",
"targetDetection": "0",
"capability": " 0",
"domainId": ""
},
{
"channelCode": "1000747$1$0$1",
"channelName": "IPC",
Machine Translated by Google
"channelSeq": 1,
"status": "1",
"cameraType": "1",
"channelType": "1",
"cameraFunctions": "0",
"forPeopleCount": "0",
"faceFunctions": "0",
"db33Code": "",
"intelliState": "",
"targetDetection": "0",
"capability": "0",
"domainId": ""
}
]
},
{
"unitType": "3",
"unitSeq": "0",
"canais": [ {
"channelCode": "1000747$3$0$0",
"channelName": "NVR_1",
"channelSeq": 0,
"status": "1",
"alarmType": "2",
"alarmLevel": "1", "
db33Code": "",
"intelliState": "",
"capability": "0",
"domainId": ""
},
{
"channelCode": "1000747$3$0$1",
"channelName": "NVR_2",
"channelSeq": 1,
"status": "1",
"alarmType": "2",
"alarmLevel": "1", "
db33Code": "",
"intelliState": "",
"capability": "0",
"domainId": ""
},
...
Machine Translated by Google
]
},
{
"unitType": "4",
"unitSeq": "0",
"canais": [
{
"channelCode": "1000747$4$0$0",
"channelName": "NVR_1",
"channelSeq": 0,
"status": "1",
"db33Code": "",
"intelliState": "",
"capacidade" : "0",
"domainId": ""
},
{
"channelCode": "1000747$4$0$1",
"channelName": "NVR_2",
"channelSeq": 1,
"status": "1",
"db33Code": "",
"intelliState": "",
"capacidade" : "0",
"domainId": ""
},
...
]
}
],
"unitEnable": "",
"buildingEnable": "",
"domainId": "",
"modifyTime": ""
},
{
"código": "1000738",
"nome": "IPC29",
"categoria": "1",
"tipo": "1",
"modelo": "IPC_256",
"status": "1",
"offlineReason ": "0",
"protocolo": "1",
Machine Translated by Google
"fabricante": "1",
"deviceIp": "10.35.106.29",
"devicePort": "31239",
"proxyIp": "",
"proxyPort": "",
"userName": "admin",
"senha ": "8c8944adede71eea53bec5d7624ea53a",
"loginType": "0", "sn":
"",
"orgCode": "001",
"unidades":
[{
"unitType": "1",
"unitSeq": "0",
"assistStream": "3",
"zeroChnEncode": "0",
"streamType": "801",
"canais": [ {
"channelCode": "1000738$1$0$0",
"channelName": "IPC29_1",
"channelSeq": 0,
"status": "1",
"cameraType": "2",
"channelType": "1", "
cameraFunctions": "0",
"forPeopleCount": "0",
"faceFunctions": "0",
"db33Code": "",
"intelliState": "",
"targetDetection": "0",
"capability": " 0",
"domainId": ""
}
]
}
],
"unitEnable": "",
"buildingEnable": "",
"domainId": "",
"modifyTime": ""
}
]
}
Machine Translated by Google
- - sn string número SN
---
Notas
Descrição breve:
URL de solicitação:
• /admin/API/árvore/pesquisa
• X-Assunto-Token: {token}
Exemplo de solicitação
Método de solicitação:
Machine Translated by Google
• OBTER
Exemplo de solicitação
{
"id": "001",
"nodeType": "1,2",
"typeCode": "01;01;01,02,03,04,05,06,07,08,21,40,43;01,02,03,04,
05,06,07,08,09,10,11,12",
"keyType": "nome",
"palavra-chave": "123",
"cascata": "0",
"Página 1",
"pageSize": "10",
"agir": ""
}
Parâmetros:
Parâmetro
Tipo Descrição
Nome
eu ia
string ID do nó
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados": {
"nextPage": "-1",
"totalCount": "1",
"resultados": [
{
"id": "001",
"nome": "raiz",
"isParent": "verdadeiro",
"nodeType": "1",
Machine Translated by Google
"domainId": "",
"classificar": "0"
}
]
}
}
- próxima página string Próxima página, -1 significa que não há próxima página
- - eu ia string ID do nó
Notas
• Para obter mais códigos de erro retornados, consulte a descrição do código de erro na
página inicial
Descrição breve:
URL de solicitação:
• /admin/API/árvore/nó-filho
• X-Assunto-Token: {token}
Exemplo de solicitação
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"tipo de dados": "01,03;01,06,38,45",
"isDomínio": 1,
"nós": [
{
"nodeId": "001",
"verificado": verdadeiro
}
],
"tamanho": 100
}
Parâmetros:
Parâmetro
Nome Tipo Descrição
Comprimento dos dados retornados. Todos os dados serão retornados por padrão se o
tamanho número
parâmetro for deixado em branco.
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados": {
"resultados": [
{
"nodeID": "1000000",
"nodeName": "37790",
"pid": "001001",
Machine Translated by Google
"gId": "001",
"nodeType": "2"
}
],
"hasMoreNodes": falso
}
}
- - nodeId string ID do nó
Notas
• Para obter mais códigos de erro retornados, consulte a descrição do código de erro
na página inicial
3.3ÿGestão de Pessoal
Descrição breve:
URL de solicitação:
• /OBMS/accessControl/pessoa
• X-Assunto-Token: {Token}
Exemplo de solicitação
X-Assunto-Token: d725f34e4f034038bf1771a8ea43c931
Nome do parâmetro Tipo Descrição
Método de solicitação:
• POSTAR
Exemplo de solicitação
{
"details":
{ "companyName": "test",
"expireTime": "1877615999",
"position": "test",
"nickName": "test",
"useTimes": "200",
"remark": " teste",
"tel": "13611111111",
"email": "test@test.com",
"idType": "0",
"maritalStatus": "2",
"aniversário": "2019-06-17" ,
"idNum": "362532195805165563",
"endereço": "cidade",
"grau": "4",
"nacionalidadeId": "brasil",
"initialTime": "1560700800"
},
"baseInfo":
{ "autoridade": "0",
"householder": "0",
"unitId": "1", "id":
"",
"pictureData": "",
"lastName": " ",
"personId": "2047",
"firstName": "test",
"departmentId": "001001",
"cardType": "0",
"gender": "1",
"status": "0",
"stageId": "",
"roomId": "36",
"buildingId": "12"
Machine Translated by Google
},
"accessRight":
{ "entranceDeviceCode": [],
"channelId":
[ "1000006$7$0$0"
],
"porGroupId": [ "1"
]
},
"autenticação": { "senha":
"9bb8291f7f9426004b3a1586c78244e4", "carros": [ {
"carNo": "A2563D8",
"carRight": "2",
"carGroup": "1"
}
],
"infraredFaceCodes": [],
"carportAmount": "1",
"fingerPrints": [],
"cartões": [ {
"cardState": "0",
"masterFlag": "1",
"duressFlag": "0",
"cardNo": "00666998",
"changeDate": "1560700800",
"issueDate": "1560700800"
}
],
"facePictures": [ "/9j/
4AAQS......FAH/9k="
]
}
}
Parâmetros:
- - carroCerto string Permissão do carro, 1 — lista negra, 2 — lista branca; 2 por padrão
- - grupo de carros string Grupo de carros, 1—não, 3—comum, 4—VIP; 1 por padrão
-
- - masterFlag string Cartão mestre ou não (cartão de geração 1), 0—não, 1—sim
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados": {
"pessoaId": "2047"
}
}
OU Repita o número do carro
{
"código": 10004,
"desc": "O número do carro já existe ou repita!",
"dados": {
"repetirCarNos": [],
"existenteCarNos": ["A2563D8"]
Machine Translated by Google
}
}
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
Descrição breve:
URL de solicitação:
• /OBMS/accessControl/person/{personId}
• X-Assunto-Token: {Token}
Exemplo de solicitação
Método de solicitação:
• COLOCAR
Exemplo de solicitação
Machine Translated by Google
{
"details":
{ "companyName": "test",
"expireTime": "1877615999",
"position": "test",
"nickName": "test",
"useTimes": "200",
"remark": " teste",
"tel": "13611111111",
"email": "test@test.com", "idType":
"5", "maritalStatus":
"1", "aniversário":
"2019-06-17" , "idNum": "",
"endereço":
"cidade", "grau": "4",
"nacionalidadeId":
"brasil", "initialTime": "1560700800"
},
"baseInfo":
{ "autoridade": "0",
"householder": "0",
"unitId": "1", "id":
"3",
"pictureData": "",
"lastName": " ",
"personId": "2047",
"firstName": "test",
"departmentId": "001001",
"cardType": "3",
"gender": "1",
"status": "0" ,
"stageId": "",
"roomId": "36",
"buildingId": "12"
},
"accessRight":
{ "entranceDeviceCode": [],
"channelId":
[ "1000006$7$0$0"
],
"porGroupId": [ "1"
]
Machine Translated by Google
},
"autenticação": {
"senha": "9bb8291f7f9426004b3a1586c78244e4",
"carros": [
{
"carNo": "...A2563D8",
"carRight": "2",
"grupo de carros": "1"
}
],
"infravermelhoFaceCodes": [],
"carportAmount": "1",
"impressões digitais": [],
"cartões": [
{
"cardState": "0",
"masterFlag": "1",
"duressFlag": "0",
"cartãoNão": "00666998",
"alterarData": "1560700800",
"data de emissão": "1560700800"
}
],
"facePictures": [
"/9j/4AAQSk......UAf/9k="
]
}
}
Parâmetros:
Tipo de identificação, 0 — carteira de identidade, 1 — carteira de identidade de oficial militar, 2 — sequência de identificação
- - carroCerto string Permissão do carro, 1 — lista negra, 2 — lista branca; 2 por padrão
- - grupo de carros string Grupo de carros, 1—não, 3—comum, 4—VIP; 1 por padrão
-
- - masterFlag string Cartão mestre ou não (cartão de geração 1), 0—não, 1—sim
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso"
}
OU Repita o número do carro
{
"código": 10004,
"desc": "O número do carro já existe ou repita!",
"dados": {
"repetirCarNos": [],
"existenteCarNos": ["A2563D8"]
}
}
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
Machine Translated by Google
Descrição breve:
URL de solicitação:
• /OBMS/accessControl/person?personIds={personIds}
• X-Assunto-Token: {Token}
Exemplo de solicitação
personIds string ID da pessoa, separado por vírgula para vários IDs, como: 1123,2077
Método de solicitação:
• EXCLUIR
Exemplo de solicitação
Vazio
Parâmetros:
Nenhum
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso"
}
Notas
Machine Translated by Google
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
Descrição breve:
URL de solicitação:
• /OBMS/accessControl/personList?key={key}&deparmentId={deparment
Id}&channelId={channelId}&personType={personType}&orderType={ou
derType}&direction={direção}&page={página}&pagesize={pagesize}
• X-Assunto-Token: {token}
Exemplo de solicitação
GET /OBMS/accessControl/personList?key=liu&deparmentId=001&channelId
=1000006$7$0$0&personType=0&orderType=0&direction=0&page=1&pagesize=
20HTTP/1.1
Anfitrião: 10.33.68.138
Conexão: fechar
Tipo de conteúdo: application/json;charset=UTF-8
X-Assunto-Token: d725f34e4f034038bf1771a8ea43c931
Parâmetro
Tipo Descrição
Nome
personType int Tipo de pessoa, 0 — comum, 1 — lista negra, 2 — visitante, 3 — patrulha, 4 — VIP
página interno
Primeira página de pesquisa, min.1
Método de solicitação:
• OBTER
Exemplo de solicitação
Vazio
Parâmetros:
Machine Translated by Google
Nenhum
Exemplo de retorno
{
"código": 1000,
"desc": "Sucesso",
"dados":
{ "dadosdapágina": [
{
"id": "3",
"personId": "2047",
"stageId": "",
"buildingId": "12",
"unitId": "1",
"roomId": "36",
"firstName" : "teste",
"sobrenome": " ",
"departmentId": "001001",
"gênero": "1",
"cardType": "0",
"status": "0",
"hasFinger": "0 ",
"autoridade": "0",
"cartãoNo":
[ "00666998"
],
"carros":
[ "zA2563D8"
],
"infraredFaceCodes": ["1"],
"headPicUrl": ""
}
],
"nextPage": "-1",
"totalCount": "1"
}
}
dados Nenhum
Machine Translated by Google
- - eu ia ID da sequência
cardType string Tipo de pessoa, 0—comum, 1—lista negra, 2—visitante, 3—patrulha, 4—VIP
- próxima página string Próxima página, -1 significa que não há próxima página
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
Descrição breve:
URL de solicitação:
• /OBMS/accessControl/person/{personId}
• X-Assunto-Token: {token}
Exemplo de solicitação
Método de solicitação:
• OBTER
Exemplo de solicitação
Vazio
Parâmetros:
Nenhum
Exemplo de retorno
{
"code": 1000,
"desc": "Sucesso",
"data":
{ "baseInfo":
{ "id": 32,
"personId": "2047",
"stageId": "",
"buildingId": " 12",
"unitId": "1",
"roomId": "36",
"firstName": "test",
"lastName": " ",
"departmentId": "001001",
"pictureData": "", "
gênero": "1",
"cardType": "2",
"status": "0",
"doméstico": "0",
"autoridade": "0"
},
"detalhes":
{ "tel": "13611111111",
"email": "joao@joao.com",
"idType": "5",
"idNum": "",
"maritalStatus": "1",
"nacionalidadeId": "brasil",
Machine Translated by Google
},
"autenticação": { "senha":
"9bb8291f7f9426004b3a1586c78244e4", "carportAmount": "1",
"cartões": [ {
"cardNo": "00666998",
"issueDate": "1560753819",
"cardState": "0",
"changeDate": "1560759729",
"duressFlag": "0",
"masterFlag": "1"
}
],
"carros": [ {
"carNo": "zA2563D8",
"carRight": "2",
"carGroup": "1"
}
],
"impressões digitais":
[{
"nome": "f009",
"masterFlag": "1",
"threadFlag": "0",
"fingerPrint": "..."
}
],
"facePictures": [ "upload/
obms/facePic/2047@1560759729172@0.jpg"
],
"infraredFaceCodes": [ "..."
Machine Translated by Google
]
},
"acessoDireito": {
"canalIds": [
"1000006$7$0$0"
],
"portaGroupIds": [
"1"
],
"entradaDeviceCodes": [
"1000001"
],
"departmentDoorGroupIds": [
"3"
]
}
}
}
- - eu ia ID da sequência
- - tipo de carta string Tipo de cartão, 0—comum, 1—lista negra, 2—visitante, 3—patrulha, 4—VIP
- - número de identificação
número de identificação da string
- - - masterFlag string Cartão mestre ou não (cartão de geração 1), 0—não, 1—sim
- - - carRight - - - string Permissão do carro, 1 — lista negra, 2 — lista branca; 2 por padrão
Notas
– Para obter mais códigos de erro retornados, consulte a descrição do código de erro na página inicial
4ÿDefinição de Dicionário
4.1ÿTipo de fabricação
Valor Tipo
1 Intelbras
2 Hikvision
3 Outros
4.2ÿTipo de dispositivo
1 DVR
2 CIP
3 NVS
6 NVR
10 SVE
1 Dispositivo de codificação
21 Bicicleta de montanha
26 Imagens térmicas
35 MCS
43 IVSS
1 Controlador de ar condicionado
1 VTNC
4 MVTH
Machine Translated by Google
6 BLOQUEIO
8 VTS (gestão)
1 Pilar de alarme
34 Dispositivo de emergência
2 Caixa de alarme
2 NVD (decodificador)
6 Comutador de matriz
4.3ÿTipo de unidade
Valor Tipo
1 Unidade de codificação
2 Saída de decodificação
3 Entrada de alarme
4 Saída de alarme
7 Unidade de ar condicionado
8 Unidade de voz
11 Unidade PDV
15 Unidade LED
4.4ÿTipo de câmera
Valor Tipo
1 Câmera bala
3 Câmera domo
Tipo de valor
1 Alarme inteligente
3 Foco elétrico
8 Instantâneo de rosto
Machine Translated by Google
Tipo de valor
9 Reconhecimento facial
10 Instantâneo do objeto
11 Rastreamento mestre-escravo
15 Trilha inteligente
Valor Tipo
56 Bloqueio normal
57 Desbloqueio normal
54 Desbloqueio anormal
55 Bloqueio anormal
41 Alarme de coação
Alarme do dispositivo
25 600004 Alarme de violação de dispositivo
de controle de acesso