Esta página detalha, passo a passo, as operações necessárias para utilizar as funções de SuperBINA 2 Server no seu aplicativo, website, software ou sistema. Se você ainda não conhece quais são as funções disponíveis, recomendamos a leitura da descrição da funcionalidade de SuperBINA 2 Server – para depois adentrar nos detalhes técnicos a seguir.

Se preferir, descarregue a versão .pdf deste documento, usando o link a seguir.

Clique aqui para acessar o relatório completo em formato .pdf

Tamanho: 1,15 Mb - 10 páginas em formato A4
Publicado em: São Paulo (SP) - Brasil

SuperBINA 2 Server é ‘motorizado’ por VersaCloud

SuperBINA 2 Server disponibiliza sua funcionalidade por meio de APIs, que devem ser chamadas por intermédio da plataforma VersaCloud. O acesso a essas APIs pode se dar pelo uso de diversos protocolos, como por exemplo um webservice.

Os detalhes para a execução de uma chamada individual de API dependem tanto do protocolo em uso, como da linguagem ou ambiente de programação que você estiver utilizando.

O webservice de VersaCloud disponibiliza sua especificação em formato WSDL em http://api.versacloud.technology/invoke/vc.asmx?wsdl. Caso você não tenha muita prática no uso de web services, recomendamos a leitura desta introdução, que não requer a instalação de qualquer software.

Vários exemplos detalhados adicionais estão disponíveis em http://www.mbi.com.br/mbi/english/versacloud/cookbook-index/, explicando o processo de chamada de uma única API. Caso necessário, use a tradução automática disponivel no cabeçalho do site.

Deste ponto em diante vamos supor que você já criou uma função genérica de nome vcAPICall no seu ambiente de programação, cuja única missão é chamar o entry point de VersaCloud, passando adiante todos parâmetros que a função recebe, e retorna o único valor retornado por VersaCloud.

Observamos que todos os parâmetros e valores de retorno são sequencias de caracteres (strings) de no máximo 256 caracteres, para que possam ser transmitidos como parte de arquivos XML (caso deseje conhecer os tipos de valores utilizados nas APIs em detalhes, consulte http://www.mbi.com.br/mbi/english/versacloud/type-index/).

Pré-requisitos para acessar a funcionalidade de SuperBINA 2 Server

Para poder usar a funcionalidade de SuperBINA 2 Server, é preciso dispor de uma conta de usuário. Portanto, você precisa, inicialmente:

1. Criar (ao menos) uma conta de usuário

2. Autorizar essa(s) conta(s) a usar SuperBINA 2 Server

Logo após, como terceiro passo, esse(s) usuário(s) já pode(m) chamar as funções de SuperBINA 2 Server. Acompanhe, nas três seções seguintes, a explicação detalhada de cada um destes passos.

Criação de usuários para uso do SuperBINA 2 Server – Resumo

SuperBINA 2 Server exige a identificação e autenticação de seus usuários não apenas para fins de segurança, mas para poder debitar o eventual custo das chamadas realizadas nas contas dos usuários (algumas chamadas são gratuitas, e outras tem custo).

Para cadastrar um novo usuário para uso do SuperBINA 2 Server, é necessário executar os seguintes passos, chamando uma API em cada um:

a. 'UserAddAllow', para solicitar permissão para acrescentar um novo usuário.

b. 'UserAddCommit', para confirmar o acréscimo do novo usuário.

c. 'UserTokenGet' para obter e armazenar o certificado de registro do novo usuário (chamado também de token do usuário).

d. 'UserPasswordSetAllow' para solicitar permissão para cadastrar a senha de acesso do novo usuário.

e. 'UserPasswordSetCommit' para confirmar o cadastramento da senha de acesso.

Criação de usuários para uso do SuperBINA 2 Server – Explicação Detalhada

Aqui detalhamos cada um dos cinco passos citados no resumo da seção anterior.

Inicialmente, lembramos que toda solução baseada na plataforma VersaCloud possui um certificado ou token de solução, que no caso de SuperBINA 2 Server é a sequencia de 128 dígitos hexadecimais:

36D2563F76D0BE27A6A065A34E8027E393CB149B9135617222BF19C6479308C7
93A52734D5A20826E3A77DEC5DECFB537F228621C42D06868B8B7C3037B831B8

Como este certificado será usado diversas vezes nas chamadas das APIS, vamos iniciar salvando este token em uma variável (de tipo adequado para sequencias de 128 caracteres):

solutiontokenSuperBINA2 = "36D2563F76D0BE27A6A065A34E8027E393CB149B9135617222BF19C6479308C7" +
"93A52734D5A20826E3A77DEC5DECFB537F228621C42D06868B8B7C3037B831B8"

Note que usamos uma sintaxe arbitrária, que você precisa adaptar ao seu ambiente de programação.

a. Obter permissão para acréscimo de um usuário

A transação de acréscimo de um novo usuário se inicia com uma chamada a 'UserAddAllow' (consulte a página de detalhamento da API para uma especificação completa dos parâmetros):

operationhandleLogin = vcAPICall("UserAddAllow", "superbina@mbi.com.br", "SuperBINA Demostração", "20130201", "PortBR", "Brasil", solutiontokenSuperBINA2, "False")

O valor de retorno representa um protocolo de transação (que armazenamos na variável operationhandleLogin), ou um código de erro, caso a permissão para acrescentar o novo usuário não possa ser concedida (por exemplo, porque ele já está cadastrado). Códigos de erro sempre iniciam em ":@Err#".

Nota: o usuário ‘superbina@mbi.com.br’ deve ser substituído por um endereço de e mail válido, porque este é usado apenas como exempo. Adicionalmente, o usuário identificado pelo e mail ‘superbina@mbi.com.br’ foi autorizado a operar somente até 30 de setembro de 2016. Assim, caso você o utilize acidentalmente, obterá um código de erro.

b. Confirmar o acréscimo de um usuário

Quando 'UserAddAllow' retorna um protocolo de transação, precisamos confirmar o acréscimo do novo usuário, por meio de uma chamada da API 'UserAddCommit':

operationhandleLogoff = vcAPICall("UserAddCommit", operationhandleLogin)

c. Obter e salvar o certificado de registro do usuário

Neste momento o usuário já foi criado, mas ele ainda não possui uma senha de acesso: este é o único momento no qual é possível obter o certificado ou token de registro do usuário, necessário para criar a senha inicial (e também para que o usuário possa modificar sua senha no futuro, razão pela qual este certificado deve ser armazenado pelo usuário).

Para isso basta chamar a API 'UserTokenGet':

usertokenSuperBINA2 = UserTokenGet(solutiontokenSuperBINA2, "superbina@mbi.com.br")

Nós armazenamos esse certificado numa variável do programa – na prática, esse certificado também deve ser armazenado pelo usuário para uso futuro (por exemplo, na sua relação de Contatos).

d. Obter permissão para definir a senha do usuário

A transação de definição da senha do usuário se inicia por meio de um pedido de permissão de definição da senha. Esse pedido é implementando pela chamada da API 'UserPasswordSetAllow':

operationhandlePasswordSet = vcAPICall("UserPasswordSetAllow", "superbina@mbi.com.br", usertokenSuperBINA2, "}sup3rB1na{")

Note que os parâmetros são o e-mail de cadastro do usuário, seu certificado de registro e a sua nova senha (que precisa conter ao menos um caractere maiúsculo, um minúsculo, um dígito e um caractere especial).

e. Confirmar a nova senha do usuário

Se o passo anterior tiver retornado um protocolo de transação (isto é, não ocorreu um erro), então basta agora confirmar a definição da senha por meio de uma chamada da API 'UserPasswordSetCommit':

operationhandlePasswordSetCommit = vcAPICall("UserPasswordSetCommit", operationhandlePasswordSet)

Detalhes adicionais sobre o cadastramento de usuários podem ser encontrados nas liçoes 2 e 3 do tutorial introdutório às APIs de VersaCloud. Caso necessário, use a tradução automática disponivel no cabeçalho do site, além de consultar a documentação de referência de cada API citada – disponível pelos links associados aos nomes das APIs.

Autorizar usuários a usar o SuperBINA 2 Server

Usuários criados por meio da sequencia de chamadas detalhada na seção anterior (ou quaisquer outros usuários já cadastrados na plataforma VersaCloud) precisam de autorização para usar os serviços de SuperBINA 2 Server, antes de que possam chamar sua funcionalidade.

Essa autorização é concedida por meio da transação de acréscimo do usuário à solução SuperBINA 2 Server, que pode ser implementada por meio da chamadas das APIs 'UserSolutionAddAllow' e 'UserSolutionAddCommit'.

A primeira delas solicita permissão para executar a transação (que será negada, por exemplo, se o usuário já possuir a autorização necessária), enquanto a segunda confirma o acréscimo de SuperBINA 2 Server às autorizações do usuário:

operationhandleUserSolutionAdd = vcAPICall("UserSolutionAddAllow", "superbina@mbi.com.br", solutiontokenSuperBINA2)

operationhandleUserSolutionCommit = vcAPICall("UserSolutionAddCommit", operationhandleUserSolutionAdd)

Como acessar a funcionalidade de SuperBINA 2 Server

O acesso a qualquer funcionalidade de SuperBINA 2 Server, detalhadas logo adiante, exige que o usuário esteja conectado (logado) à plataforma VersaCloud e ao SuperBINA 2 no momento de chamar as APIs de SuperBINA 2.

Assim, qualquer chamada de API de SuperBINA 2 (que consiste na execução de uma transação baseada nas três APIs 'MethodInvokeAllow', 'MethodInvokeParameterAdd' e 'MethodInvokeCommit') deve ser precedida de chamadas das APIs 'UserLoginAllow' e 'SolutionLoginAllow', e seguida (após chamarmos todas as APIs de SuperBINA 2 Server que desejar) de chamadas das APIs 'SolutionLoginCommit' e 'UserLoginCommit'.

Observe o código a seguir:

operationhandleUserLogin = vcAPICall("UserLoginAllow", "superbina@mbi.com.br", "}sup3rB1na{", "3600")

operationhandleSolutionLogin = vcAPICall("SolutionLoginAllow", operationhandleUserLogin, solutiontokenSuperBINA2, "3600")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeAllow", …)

OperationhandleMethodInvoke = vcAPICall("MethodInvokeParameterAdd", …)

OperationhandleMethodInvoke = vcAPICall("MethodInvokeCommit", …)

operationhandleSolutionLogin = vcAPICall("SolutionLoginCommit", operationhandleSolutionLogin)

operationhandleUserLogin = vcAPICall("UserLoginCommit", operationhandleUserLogin)

Note que no exemplo acima acionamos uma única transação. Na prática, entre o login inicial e o final da operação, é possível chamar quantas transações forem necessárias, desde que elas ocorram dentro do tempo especificado como último parâmetro das APIs …LoginAllow (3600 segundos no exemplo acima).

A funcionalidade “Phone2City”

A funcionalidade chamada de “Phone2City” no SuperBINA 2 Server, permite descobrir onde estão localizados os telefones de um determinado DDD e prefixo.

Para o exemplo desta seção, usaremos o prefixo (21) 4004, que por ser um prefixo de telefone baseado em VoIP, é usado em diversas cidades da área de DDD 21.

Assim como todas as demais funcionalidades de SuperBINA 2 Server, “Phone2City” é implementada por meio de três APIs:

1. “Phone2CityQtty” permite saber quantas informações estão disponíveis (seis neste caso)

2. “Phone2CityCost” permite saber qual o custo para obter as informações (zero neste caso, ou seja gratuito)

3. “Phone2CityGet” permite obter as informações desejadas (o valor de retorno especifica uma URL para download dos resultados)

Observe o código a seguir, para obter a lista das cidades onde estão localizados telefones de DDD 21 e prefixo 4004:

OperationhandleMethodInvoke = vcAPICall("MethodInvokeAllow", operationhandleSolutionLogin, "Phone2CityGet")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeParameterAdd", OperationhandleMethodInvoke, OperationhandleMethodInvoke, "br", "21", "4004")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeCommit", OperationhandleMethodInvoke)

Observe como o protocolo de login na solução é usado para indicar a validade da conexão do usuário com a solução ao chamar 'MethodInvokeAllow'.

'MethodInvokeParameterAdd' acrescenta os parâmetros que são enviados ao SuperBINA 2 Server (que incluem o protocolo da transação, o código do país, DDD e prefixo).

Finalmente, 'MethodInvokeCommit' confirma a execução da função desejada, e retorna uma URL como esta: http://delivery.superbina.com.br/2016-09-28T13-39-35.103ZE18405DA597DE2E25F12149D.txt.

Acessando esta URL usando um browser (usamos o Mozilla Firefox no exemplo), visualizamos os resultados (os campos, em cada linha, são separados por tabulações):

Note que os arquivos gerados por SuperBINA 2 Server estão garantidamente disponíveis por 96 horas. Depois desse prazo, o servidor elimina os arquivos para recuperar espaço em disco.

A funcionalidade “Phone2Owner”

A funcionalidade “Phone2Owner” permite obter informações, se disponíveis, sobre o titular de uma linha telefônica no Brasil. Ela é equivalente à funcionalidade disponível para os usuários do software SuperBINA 1, com a diferença que agora ela pode ser incluída em qualquer software.

A API “Phone2OwnerQtty” retorna um ou zero, conforme haja ou não informação disponível. “Phone2OwnerCost” retorna o valor cem, indicando que o custo da funcionalidade é de um crédito, a ser debitado da conta do usuário quando for acionada a API “Phone2OwnerGet” para gerar o arquivo com os resultados.

Valores que representam custos em créditos são expressos sempre como cem vezes seu valor real, de forma a poder expressá-los sempre como número inteiro. Assim, o custo 100 equivale a um crédito, 1500 a quinze créditos, 50 a meio crédito, 1 a um centésimo de crédito. Veja aqui a definição formal do tipo versacoin.

Por exemplo, para consultar a quem pertence o telefone (61) 3411-1221, usamos este código:

OperationhandleMethodInvoke = vcAPICall("MethodInvokeAllow", operationhandleSolutionLogin, "Phone2OwnerGet")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeParameterAdd", OperationhandleMethodInvoke, OperationhandleMethodInvoke, "br", "61", "34111221")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeCommit", OperationhandleMethodInvoke)

Ao abrir a URL resultante no browser, verificamos que este telefone está localizado no Palácio do Planalto:

A funcionalidade “Owner2Phone”

A funcionalidade “Owner2Phone” permite a operação inversa de “Phone2Owner”, ou seja, a partir do nome de um possível titular de linha telefônica, é possível obter os dados das linhas de telefone correspondentes.

“Phone2OwnerQtty” permite saber para quantas linhas de telefone há dados para o nome especificado. “Phone2OwnerCost” informa qual o número de créditos a serem debitados da conta do usuário (o custo por número de telefone é decrescente, quanto maior o tamanho da lista gerada). Finalmente, “Phone2OwnerGet” gera os resultados.

As três APIs que implementam a funcionalidade “Owner2Phone” permitem informar nomes de forma parcial, e permitem filtrar os resultados de interesse por UF e/ou nome de cidade.

Por exemplo, a chamada a seguir busca todos os dados disponíveis referentes a pessoas cujo nome inicia em “Roberto Carlos” e ainda contém o sobrenome “Silva”, apenas na cidade do Rio de Janeiro (RJ).

OperationhandleMethodInvoke = vcAPICall("MethodInvokeAllow", operationhandleSolutionLogin, "Owner2PhoneGet")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeParameterAdd", OperationhandleMethodInvoke, OperationhandleMethodInvoke, "Roberto Carlos%Silva%", "br", "RJ", "Rio de Janeiro")

OperationhandleMethodInvoke = vcAPICall("MethodInvokeCommit", OperationhandleMethodInvoke)

A figura a seguir exibe a primeira parte do arquivo de dados resultantes:

Como configurar o compartilhamento das receitas geradas

A MBI pode compartilhar as receitas geradas pelos usuários do software no qual você embutir chamadas a SuperBINA 2 Server (o desenvolvedor do software de front-end tem direito a 25% dos créditos consumidos pelos usuários).

Para se credenciar como parceiro, é necessário que o desenvolvedor possua uma conta de usuário de seu uso específico já cadastrada, e então deve solicitar para a MBI que esta conta receba os direitos de desenvolvedor.

Uma vez que você tenha recebido a confirmação de que sua conta foi promovida a desenvolvedor parceiro, você deverá criar um certificado de uso de SuperBINA 2 exclusivamente seu: quando seu software realizar o login na solução SuperBINA 2, você usará seu certificado (no lugar do certificado ou token público citado no início deste artigo), para que o servidor saiba que é o software que você desenvolveu que está gerando a demanda para o SuperBINA 2 Server.

Para você criar seu próprio certificado de acesso ao SuperBINA2 Server, basta executar uma transação SolutionTokenClone, exemplificada pelas chamadas detalhadas a seguir (note que a transação exige que você se conecte com a sua conta de desenvolvedor):

operationhandleUserLogin = vcAPICall("UserLoginAllow", "email@desenvolvedor", "senha", "90")

operationhandleTokenClone = vcAPICall("SolutionTokenCloneAllow", operationhandleUserLogin, solutiontokenSuperBINA2, "C")

solutiontokenPersonalizado = vcAPICall("SolutionTokenCloneCommit", operationhandleTokenClone)

operationhandleUserLogin = vcAPICall("UserLoginCommit", operationhandleUserLogin)

Se não ocorrer nenhum erro, o resultado gerado ao chamar 'SolutionTokenCloneCommit' será um certificado novo para a solução SuperBINA 2 Server, composto de 128 dígitos hexadecimais.

Lembre-se: a partir deste momento use este token/certificado ao chamar a API 'SolutionLoginAllow' para conectar seus usuários ao SuperBINA 2 Server. Como só você possui o valor deste token, ele serve para identificar as chamadas feitas a partir do seu software, de forma a garantir a identificação das transações nas quais você participa da receita gerada.