Campo opcional
Caso este callback não seja informado, ao executar alguma operação, será exibido uma interface para o usuário com todas as interações, ou seja, você não precisará tratar nenhum desses estados.
Será executado o callback de interação quando for necessário enviar todos os passos que devem ser executados, entre eles a exibição de mensagens ou a solicitação de alguns dados para dar continuidade aos pagamentos. Ao chamar esta função, um objeto chamado data
será enviado com os seguintes campos:
const authenticationRequest = {
authenticationKey: '795180024C04479982560F61B3C2C06E',
backgroundInteraction: function(data)
{
if(data.responseType == CapptaCheckout.responseType.SHOW_MESSAGE)
{
console.log(data.details.message)
}
if (data.responseType == CapptaCheckout.responseType.REQUEST_DATA)
{
switch (data.details.interactionType) {
case CapptaCheckout.interactionType.ASK_TWO_OPTIONS:
case CapptaCheckout.interactionType.ASK_UNDO_OR_CONFIRM_PENDING_PAYMENTS:
confirm(data.details.message) ? data.next(1) : data.next(0)
break
case CapptaCheckout.interactionType.ASK_REVERSAL_PASSWORD:
default:
var response = prompt(data.details.message)
response ? data.next(response) : data.back()
break
}
}
}
};
Nome | Tipo | Descrição |
---|---|---|
responseType | number | Representa o estado que a operação está, ou seja, se esta apenas exibindo mensagens ou esperando alguma informação. |
details | object | Representa os detalhes do estado atual, ou seja, tipo de interação, mensagem e métodos |
details.message | string | Mensagem do TEF que deverá ser mostrada ao usuário |
Observação
Dependendo do estado da interação, novos campos no objeto
details
estarão disponíveis.
Abaixo se encontra quais propriedades estarão disponíveis em cada interação.
SHOW_MESSAGE
Neste estado, apenas as propriedades padrão estarão disponíveis. É necessário informar ao usuário o conteúdo do campo data.details.message
, somente através desse campo que as mensagens do TEF serão informadas, como por exemplo a mensagem: "Por favor, insira ou passe o cartão".
if(data.responseType == CapptaCheckout.responseType.SHOW_MESSAGE)
{
// Exemplo: "Por favor, insira ou passe o cartão"
console.log(data.details.message)
}
REQUEST_DATA
Neste estado, é necessário informar ao usuário o conteúdo do campo data.details.message
, somente através desse campo que os pedidos de dados serão exibidas para o usuário e assim enviar as respostas para o TEF da Cappta. Algumas novas propriedades estarão disponíveis, sendo elas:
Nome | Tipo | Descrição | Disponíveis em quais tipos de interação? |
---|---|---|---|
details.interactionType | number | Tipo de interação, este campo mostra qual a pergunta que o software integrador precisará fazer para o usuário. | Todas |
details.next(resposta) | function | Método para continuar a interação dependendo da reposta informada via paramêtro. | Todas |
details.back() | function | Retrocede para a etapa anterior. | ASK_REVERSAL_PASSWORD |
if (data.responseType == CapptaCheckout.responseType.REQUEST_DATA)
{
switch (data.details.interactionType) {
case CapptaCheckout.interactionType.ASK_TWO_OPTIONS:
case CapptaCheckout.interactionType.ASK_UNDO_OR_CONFIRM_PENDING_PAYMENTS:
confirm(data.details.message) ? data.next(1) : data.next(0)
break
case CapptaCheckout.interactionType.ASK_REVERSAL_PASSWORD:
default:
var response = prompt(data.details.message)
response ? data.next(response) : data.back()
break
}
}
Tipos de interação do REQUEST_DATA
ASK_TWO_OPTIONS
Nesta interação, somente será aceito os valores númericos 1 ou 0, ou seja sim ou não, respectivamente.
if (data.responseType == CapptaCheckout.responseType.REQUEST_DATA)
{
switch (data.details.interactionType) {
case CapptaCheckout.interactionType.ASK_TWO_OPTIONS:
// Exemplo: "Deseja cancelar a operação?"
confirm(data.details.message)
? data.next(1) // Sim
: data.next(0) // Não
break
}
}
ASK_UNDO_OR_CONFIRM_PENDING_PAYMENTS
Nesta interação, somente será aceito os valores númericos 1 ou 0, ou seja confirmar ou desfazer, respectivamente.
if (data.responseType == CapptaCheckout.responseType.REQUEST_DATA)
{
switch (data.details.interactionType) {
case CapptaCheckout.interactionType.ASK_UNDO_OR_CONFIRM_PENDING_PAYMENTS:
// Exemplo: "A última transação está pendente, deseja confirmar ou desfazer?"
confirm(data.details.message)
? data.next(1) // Confirmar
: data.next(0) // Desfazer
break
}
}
ASK_REVERSAL_PASSWORD
Nesta interação, o valor esperado é um texto contendo a senha administrativa do CapptaGpPlus para fazer o estorno de uma transação.
if (data.responseType == CapptaCheckout.responseType.REQUEST_DATA)
{
switch (data.details.interactionType) {
case CapptaCheckout.interactionType.ASK_REVERSAL_PASSWORD:
// Exemplo: "Insira a senha Administrativa"
var response = prompt(data.details.message)
response
? data.next(response)
: data.back()
break
}
}
DEMAIS INTERAÇÕES
Nesta interação, o valor esperado é um texto.
Geralmente esse tipo de interação é um pedido do TEF para inserir o número de controle, nome do portador do cartão ou qualquer outra informação necessária.
if (data.responseType == CapptaCheckout.responseType.REQUEST_DATA)
{
switch (data.details.interactionType) {
default:
// Exemplo: "Digite o número de controle"
var response = prompt(data.details.message)
response
? data.next(response)
: data.back()
break
}
}