Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Deck of Cards
id1
Card
defaulttrue
labelEscopo Funcional / Manual

O sistema disponibiliza o plugin de nome "TOTVS Pagamento instantâneinstantâneo", onde o usuário terá a possibilidade de gerenciar o pagamento feito pela modalidade PIX.

Sendo assim, quando o Plugin estiver ativo e as configurações realizadas corretamente, ao finalizar um pedido utilizando o Tipo de Cobrança configurado para o Pagamento instantâneo, já será gerado em tela um QRCode que permitirá o usuário realizar o pagamento.

Após o pagamento, a aplicação vai consultar o plugin e exibir em tela que o Pagamento por PIX foi realizado, gerando o pedido com status Finalizado.

Configuração do Plugin

Na tela de Plugins de integração acessado em Configuração > Integração, o sistema disponibiliza um card de nome "TOTVS Pagamento Instantâneo" para ativar esse o recurso, como mostra a imagem a seguir:

Image RemovedImage Added

Ao clicar no botão "Configurar", é aberto a tela de configurações, contendo os as informações:

Image Removed

  • Título "TOTVS Pagamento Instantâneo"
  • Grupo de elementos "Configurações do TPI"Tenant URL: campo de texto, para receber

    Informe cada campo conforme a configuração detalhada a seguir:

    Configuração do TPI
    Tenant

    Informe a URL em que a API do TOTVS Pagamento Instantâneo (TPI) estará sendo servida (Ex: https://produtosfa.rac.staging.totvs.app)

    Usuário: campo de texto, para receber o usuário
    UsuárioInforme o Usuário da autenticação básica do TPI
    Senha
    : campo de texto, com máscara de password, para receber
    Informe a senha da autenticação básica do TPI
    Client ID
    : campo de texto, para receber
    Informe o identificador do sistema solicitante da requisição
    Cliente secret: campo de texto, com máscara de password, para receber o
    Client secretInforme a senha do sistema solicitante da requisição
    Carteira
    : campo de texto, para receber
    Informe o código da carteira digital. Para o pix, terá o identificador "pix"
    Business
    Unid ID: campo de texto, para receber
    unit IDInforme o identificador da unidade de negócio geradora de transações de pagamento
    POS ID
    : campo de texto, para receber
    Informe o identificador do ponto de venda cadastrado
    Grupo de elementos "Configurações
    Configuração do SFA
    "
    Tipos de
    Cobrança: Campo pesquisa multipla escolha, buscando todos os tipos de cobrança ativos. Esse campo receberá os tipos de cobrança que, ao selecionados no cabeçalho do pedido, dispararão
    cobrança

    Selecione os Tipos de cobrança que serão utilizados para disparar a requisição da transação de pagamento.

    Timeout ao gerar transação
    : Campo numérico para determinar
    Campo que determina a quantidade de segundos que o sistema aguardará o retorno da criação da transação
    Timeout consulta pagamento
    : Campo numérico para determinar
    Campo que determina quantos segundos o sistema irá aguardar
    para a consulta de pagamento
    para a consulta de pagamento.

    Após essa configuração, o Plugin já está passível de utilização na Aplicação.

    Configuração de envio de e-mail para contexto "Plugin TOTVS Pagamento Instantâneo"

    Neste momento, o cliente pode É importante que o usuário realize a configuração de e-mail para envio do QRCode, assim o cliente do Pedido poderá receber as informações do processo de pagamento por Cartão de crédito e PIX por e-mail disparado pelo próprio Totvs CRM SFA através da conta de e-mail configurada na ferramenta.

    Nos tópicos a seguir, iremos é detalhar como será o comportamento para cada modelo.

    Estas configurações são acessadas somente por usuários administradores e deve estar localizada em: Configuração > Email > Configuração de envio.

    Contexto

    Campo que permite selecionar o contexto “Plugin TOTVS Pagamento instantâneo”. Este contexto permitirá que seja configurado um envio de e-mail que tem relação com o processo de pagamento com pix.

    O contexto “Plugin TOTVS Pagamento instantâneo ” somente será apresentado quando a configuração do plugin TOTVS Pagamento Instantâneo também estiver ativo (pluginintegracao.idnativo = 1)

    Condição para envio 

    Campo que permite selecionar o registro chamado “Envio de QR Code PIX - sob demanda”. O propósito desta configuração é enviar o link de pagamento gerado pela TOTVS Pagamento instantâneo conforme a solicitação do usuário responsável pelo pedido. Ou seja, é necessário que o usuário acione o botão de enviar na tela de QR Code para que essa configuração seja executada. E com isso a aplicação encaminha um e-mail ao(s) destinatário(s) conforme as configurações informadas.

    Arquivo do relatório

    Campo que permita anexar um modelo de relatório nos e-mails enviados. Podendo ser o espelho do pedido, ou um resumo do pedido entre outras possibilidades de relatório no formato PRPT.

    Enviar para (Contexto)

    Campo que permite definir quem receberá o e-mail:

    • Cliente
    • Profissional logado
    • Profissional selecionado no cabeçalho
    • Profissional supervisor do selecionado no cabeçalho

    É possível também selecionar o campo check-box de "Exibir tela de confirmação/edição de e-mail" com label de "Permitir editar e-mails de contexto na tela de confirmação de e-mail".

    • Caso o parâmetro estiver marcado, os e-mails selecionados no contexto não poderão ser editados na tela de confirmação de envio.
    • Caso o parâmetro estiver desmarcado, os e-mails selecionados no contexto serão pré-preenchidos como sugestão, e podem ser editados na tela de confirmação de envio.
    • Deverá ser persistida em campo configuracaoenvio.idneditaemail, byte default 0, que deverá ser criado pelo tools, opção 3.

    Assunto 

    Será adicionado este campo que deve permitir configurar um assunto padrão de envio nos e-mails que tratam deste processo de pagamento com cartão de crédito. Também será possível adicionar uma TAG dentro deste assunto, que irá fazer com que a aplicação troque a TAG do assunto pelo número do pedido referente ao processo de pagamento de cartão de crédito. Desta forma, o cliente quando receber o e-mail, já irá conseguir ver através do assunto qual a numeração que se trata.

    CONFIGURAÇÃO DO CORPO DO E-MAIL 

    Neste campo é possível configurar um corpo do e-mail personalizado para este tipo de situação. Onde o usuário cria um template de e-mail para que fique alinhado com o cliente e dar mais credibilidade ao processo. A seguir um protótipo de como ficará essa parte da configuração:

    • Corpo 

    Neste campo é exibido as tags: 

    • "NÚMERO DO PEDIDO” - Se  o usuário incluir essa tag no corpo, ao enviar o e-mail será substituído pelo número do pedido em questão.
    • “IMAGEM QR CODE” - Se o usuário incluir essa tag no corpo, ao enviar o e-mail será substituído pela imagem do QR Code gerada pela TPI (pedidopagamento.imagem)
    • "PIX COPIA E COLA" - Se o usuário incluir essa tag no corpo, ao enviar o e-mail será substituído pelo código do QR Code gerado pela TPI. (pedidopagamento.codigotransacao)

    Pagamento instantâneo por PIX no

    pedido de venda

    Pedido de Venda

    Após a configuração realizada nos pontos acima, o Pedido de venda já estará pronto para realizar o processo gerando essa forma de pagamento em QRCode.

    Assim, ao Ao confeccionar um pedido de venda no SFA, contanto que o campo "Tipo de cobrança" do cabeçalho do pedido esteja vinculado com o plugin de integração "TOTVS Pagamento Instantâneo", pelo campo "Tipos de cobrança", o sistema irá disparar a seguinte lógica de funcionamento;

    Ao finalizar um pedido, contato que não haja aprovações pendentes para o pedido, o sistema irá realizar realiza a solicitação do QR code para pagamento junto à TOTVS Pagamento Instantâneo, respeitando o tempo do campo "Timeout ao gerar transação".
    Quando a requisição for bem sucedida, o sistema exibirá exibe em tela o QR Code (pedidopagamento.imagem), juntamente com o código do "PIX copia e cola"(pedidopagamento.codigopagamento), armazenando a informação vinculado ao pedido de venda (processorTransactionId) (pedidopagamento.tokentransacao).

    Caberá ao usuário vendedor compartilhar a informação para pagamento.

    Assim quando ativo, o usuário finalizado o pedidoPor exemplo, ao finalizar o pedido normalmente:  

    E automaticamente já Logo em seguida é exibido em tela o tempo de requisição do Plugin TOTVSPagamento Instantâneo para gerar o QRCode do pagamento:

    Assim que o pagamento é gerado, é exibido em tela a as opções de leitura do QRCode, Opção de Cancelar o pagamento, Enviar via email e Finalizar o pagamento:

    Quando o pagamento é realizado no tempo dentro do tempo determinado nas configurações, é exibido em tela a mensagem de aprovação"Pagamento aprovado":

    O mesmo processo é realizado no Android, e ocorre da seguinte forma: 

    Image RemovedImage RemovedImage RemovedImage Removed

    Caso a geração do QR Code não seja bem sucedida, por qualquer que seja o motivo, o sistema exibe a mensagem: 

    , e ocorre da seguinte forma: 

    Image AddedImage AddedImage AddedImage AddedImage Removed


    Além disso, se a configuração de envio de e-mail de contexto "Plugin TOTVS Pagamento Instantâneo" estiver ativa, o sistema exibirá botão "Enviar" com ícone de envelope, para enviar o QR Code por e-mail ao cliente.

    Image Added ou Image Added

    Ao clicar no botão enviar, o sistema deverá trazer exibe os e-mails trazidos pelo contexto da configuração de e-mail, respeitando o que foi definido na flag "Não permitir editar e-mails de contexto na tela de confirmação de envio", porém dar também da a possibilidade de o usuário adicionar novos e-mails para receber o QR Code.

    Dessa forma, ainda que o e-mail do cadastro não esteja correto, o usuário tem a oportunidade de colocar o e-mail correto para recebimento do QR Code.

    Image Removed ou Image Removed

        • Se a flag "Não permitir editar e-mails de contexto na tela de confirmação de envio" estiver marcada, o ícone de "X para excluir e-mail" não é exibido para e-mails que vieram do cadastro da configuração de envio.
          • Caso contrário, o sistema exibe o ícone de "X para excluir e-mail" em todos os e-mails da tela

    O correto, o usuário tem a oportunidade de colocar o e-mail correto para recebimento do QR Code. Nestes casos que o envio do QR Code é realizado por e-mail, o sistema seguirá realizando a consulta de pagamento de 10 em 10 segundos no servidor, até que obtenha um resultado diferente de PENDENTE do servidor de pagamentos da TPI.

    Caso

    .

    E assim como no exemplo anterior, o servidor

    responda

    responde que o pagamento está aprovado, o sistema

    irá exibir

    exibe a mensagem de "Pagamento aprovado. Pedido finalizado com sucesso."

    . Dessa

      Dessa forma, o pedido será finalizado e o status de pagamento (pedidopagamento.idtiposituacaopagamento, onde sgltiposituacaopagamento="APR") será atualizado para APROVADO.

    Mensagens de alerta ao gerar o Pagamento

    Nos casos de alguma inconscistencia no processo, é sempre alertado ao usuário em tela sobre o procedimento, por exemplo:

    Caso a geração do QR Code não seja bem sucedida, por qualquer que seja o motivo, o sistema exibe a mensagem: 

    Image AddedImage Removed

    Caso o servidor responda que o pagamento está expirado ou cancelado, o sistema irá

    exibir

    exibe a mensagem de "Pagamento expirado/cancelado. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento é atualizado para o código de retorno (cancelado (sgl CAN)/expirado (sgl EXP)).

    O sistema respeita o tempo máximo de consulta de status de pagamento, segundo o parâmetro "Timeout consulta pagamento". Quando o tempo de requisição de pagamento ultrapassar o tempo definido no campo de timeout, o usuário será notificado: "Pedido finalizado com sucesso! Entretanto, o pagamento precisa ser aprovado para que o pedido seja devidamente encaminhado para faturamento". Dessa forma, o pedido é finalizado e o status de pagamento permanecerá como PENDENTE.

    Caso a resposta não seja bem sucedida, por qualquer motivo o sistema

    deverá notificar

    notificado o usuário.

    Image Removed

    O

    Botão Cancelar

    Como visto no exemplo anterior, o sistema também disponibiliza o botão "Cancelar", que, ao clicado,

    exibe  ade

    exibe uma mensagem de confirmação para o usuário: "A ação irá cancelar o QR Code, que não poderá mais ser pago. Deseja prosseguir?" Sim/não.

    Image Added

    Se sim,

    disparar

    é disparado uma requisição de cancelamento do QR Code para o servidor do TPI.

    Image Removed

    Caso a resposta seja bem sucedida, o sistema

    deverá

    irá notificar o usuário: "Pagamento cancelado com sucesso. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento deverá ser atualizado para cancelado(sgl CAN).

    Caso a resposta não seja bem sucedida, o sistema deverá notificar o usuário: "Pagamento não pode ser cancelado. Tente novamente mais tarde ou entre em contato com o suporte técnico"

    O sistema exibirá

    Botão Finalizar

    Como visto no exemplo anterior, o sistema também disponibiliza o botão "Finalizar", que, ao clicado,

    deverá notificar

    notifica o usuário: "Pedido finalizado com ressalva! O pedido precisa ter seu pagamento aprovado para ser encaminhado para faturamento. Você será notificado automaticamente das atualizações, porém pode consultar instantaneamente o status do pagamento pela tela de pagamentos do pedido". Dessa forma, o pedido será finalizado e o status de pagamento permanecerá como PENDENTE (sgl PEND).

    Acompanhamento

    /

    das Operações de pagamento após a finalização do pedido (parte da documentação que ainda não foi refatorada)

    Após a finalização do pedido, o sistema disponibiliza ícone de "status Status de pagamento" na listagem de pedidos, e também no "Roda teto" do pedido, exibindo o status do último registro de pagamento vinculado ao pedido.

    Os status possíveis são:

    PENDENTE: com ícone de "alerta amarelo", o status representa o pagamento gerado mas com pagamento ainda pendente de aprovação

    APROVADO: com ícone de "check verde", o status representa o pagamento já validado no servidor como aprovado.

    CANCELADO: com ícone "X vermelho", o status representa o pagamento que foi cancelado pelo operador.

    EXPIRADO: com ícone de "ampulheta", o status representa o pagamento que não foi pago a tempo, e teve seu registro expirado pelo servidor de pagamento.

    REEMBOLSADO: com ícone de "dinheiro amarelo", o status representa o pagamento que tinha sido aprovado, mas foi reembolsado ao pagador.

    Ao clicar no ícone de "status de pagamento" relacionado a um pedido, o sistema exibe tela conforme o protótipo a seguir:

    No Android, a consulta dos registros será online, para garantir que os dados sempre estejam atualizados. Caso não seja possível realizar a conexão online, o sistema deverá mostrar a data de atualização como a data da ultima sincronização.

    Os campos disponíveis são:

    • Identificador transação: identificador do token que será o mesmo identificador exibido na plataforma da TOTVS Pagamento Instantâneo.

    Ao clicar sobre o conteúdo, o sistema deverá copiar o identificador para a área de transferência do dispositivo, e disparar uma mensagem toast: "Copiado para área de transferência"

    • Status pagamento: além do ícone, exibe o nome do status de pagamento conforme possibilidades supracitadas.
    • Data criação: Data de criação da transação no servidor de pagamento.
    • Data última atualização: Data referente à última observação do pagamento
    • Histórico do pagamento: Ícone que, ao clicado, exibe tela conforme o protótipo a seguir, exibindo o conteúdo textual da tabela de observações de pagamento, para acompanhamento do histórico.

    • Exibir QR Code: Ícone que, ao clicado, consultará no banco para retornar a imagem e conteúdo do QR code para pagamento. Nessa tela, as opções de "Cancelar" e "Cobrar depois" não serão exibidas, somente a função "Enviar e-mail". O timer de consulta de pagamento também não será disparado.

    Caso a resposta não seja bem sucedida, por qualquer motivo o sistema deverá notificar o usuário: "Pagamento não pôde ser criado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}. ". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pôde ser criado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"

    • Consultar pagamento: Ícone que, ao clicado, fará uma requisição ao servidor do TPI para retornar o status atual do pagamento.

    Caso o servidor responda que o pagamento está aprovado, o sistema irá exibir mensagem toast de "Pagamento aprovado" Dessa forma, o status do pagamento será atualizado para APROVADO.

    Caso o servidor responda que o pagamento está expirado, o sistema irá exibir mensagem toast de "Pagamento expirado" Dessa forma, o status do pagamento será atualizado para EXPIRADO.

    Caso o servidor responda que o pagamento está cancelado, o sistema irá exibir mensagem toast de "Pagamento cancelado" Dessa forma, o status do pagamento será atualizado para CANCELADO.

    Caso o servidor responda que o pagamento está reembolsado, o sistema irá exibir mensagem toast de "Pagamento reembolsado" Dessa forma, o status do pagamento será atualizado para REEMBOLSADO.

    Caso o servidor responda que o pagamento está pendente, o sistema irá exibir a mensagem toast de "Pagamento pendente"

    Caso a resposta não seja bem sucedida, por qualquer motivo, o sistema deverá notificar o usuário: "Pagamento não pôde ser consultado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}.". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pôde ser consultado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"

    • Cancelar pagamento: Ícone que, ao clicado, deverá exibir mensagem de confirmação para o usuário: "A ação irá cancelar o QR Code, que não poderá mais ser pago. Deseja prosseguir?" Sim/não. Se sim, fará uma requisição ao servidor do TPI para cancelar o pagamento

    Caso a resposta seja bem sucedida, o sistema deverá exibir mensagem toast: "Pagamento cancelado". Dessa forma, o status de pagamento deverá ser atualizado para CANCELADO.

    Caso a resposta não seja bem sucedida, o sistema deverá notificar o usuário: "Pagamento não pode ser cancelado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}. ". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pôde ser criado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"

    Haverá botão "Novo pagamento" que deverá ser exibido sempre que não houver a presença de nenhum pagamento com status APROVADO ou PENDENTE, para pedidos de origem Web/Android, sem numeropedidoerp, de status PENDENTE.

    Esse botão, quando clicado, fará a criação de nova transação junto à TPI, e exibir o conteúdo do QR code, em tela semelhante ao resultado do ícone "Exibir QR code"

    Fluxo de pagamento quando há aprovações de pedidos

    Ao finalizar um pedido com tipos de cobrança vinculados com o plugin de integração TPI, em que o mesmo seja encaminhado para aprovação, qualquer que seja, o sistema não realiza a criação do pagamento. Ao invés, informa o usuário com a seguinte mensagem: "A geração do pagamento do pedido deverá ser gerada após a aprovação do pedido, para que seja devidamente encaminhado para faturamento."

    Nesse cenário, o pedido passa pelo fluxo de aprovação padrão, onde os usuários determinarão a situação das aprovações do pedido entre os seguintes status:

    PENDENTE
    APROVADO
    REPROVADO
    CONTESTADO
    CANCELADO

    Um pedido é declarado totalmente aprovado quando apenas possui aprovações vinculadas nos status de APROVADO ou CANCELADO.

    Além dos filtros definidos no ponto 3, o botão "Novo pagamento" na tela de "Pagamento do pedido" somente deve ser exibido para pedidos com as situações acima, ou não contendo aprovações vinculadas. 

    Isso para permitir que, após aprovado, o usuário tenha a opção de clicar no botão "Novo pagamento" para gerar um QR Code, compartilhar ao seu cliente, e posteriormente consultar pagamento pelo ícone "Consultar pagamento".

    Na notificação que é gerada pela aplicação quando o pedido é aprovado, o sistema consulta se o plugin "TOTVS Pagamento instantâneo" está ativo e o pedido está vinculado com um dos tipos de cobrança configurados no plugin. Se positivo, o sistema deverá adicionar a mensagem "Será necessário gerar um pagamento para o pedido X através da tela de "Pagamentos do pedido""

    Persistência e integração de dados de pagamento

    A presente documentação apenas define que os tokens de pagamento serão armazenados em banco de dados do SFA, vinculados com os pedidos de venda.

    A integração de dados de pagamento com o ERP deverá ocorrer sob demanda, de maneira configurável ou customizada, mediante identificação dos campos de destino pelo cliente que utiliza o plugin de integração.


    Card
    labelEscopo Técnico

    Detalhamento técnico - Comportamento 

    • Pelo tools, opção 5 é inserido um registro na tabela "pluginintegracao" com código "TOTVS_PAG".
    • Pelo tools, opção 3, o sistema deverá criar cria a tabela pedidopagamento, com os seguintes campos:
      • idpedidopagamento: PK
      • idpedido: FK para tabela pedido, not-null
      • datahoracriacao: timestamp, not-null
      • datahoraultatualizacao: timestamp, nullable
      • tokentransacao: varchar(200), not-null
      • idtiposituacaopagamento: FK para tabela tiposituacaopagamento, not null
      • valor: decimal (18,6), not-null
      • imagem: bytea, nullable
      • link: varchar(200), nullable
      • codigopagamento: varchar(200), nullable
      • codigoerp: varchar(80), nullable
    • Pelo tools, opção 3, o sistema deverá criar cria a tabela tiposituacaopagamento, com os seguintes campos:
      • idtiposituacaopagamento: PK
      • sgltiposituacaopagamento: varchar(10), not-null
      • descricao: varchar(80), not-null
      • idnativo, byte, not null, default 1
      • codigoerp: varchar(80), nullable
    • Pelo tools, opção 3, o sistema deverá criar cria a tabela observacaopagamento, com os seguintes campos:
      • idobservacaopagamento,
      • observacao: varchar(4000) not null
      • idpedidopagamento: FK para tabela pedidopagamento, not-null
      • idtiposituacaopagamento: FK para tabela tiposituacaopagamento, not-null
      • idusuario: FK para tabela usuário, not-null
      • datahora: timestamp, not-null
      • codigoerp: varchar(80), nullable
    • Pelo tools, opção 5, o sistema deverá criar cria os seguintes registros na tabela tiposituacaopagamento:
      • sgltiposituacaopagamento: "PEND"
        • descricao: "Pendente"
        • idnativo: 1
      • ,sgltiposituacaopagamento: "APR"
        • descricao: "Aprovado"
        • idnativo: 1
      • ,sgltiposituacaopagamento: "EXP"
        • descricao: "Expirado"
        • idnativo: 1
      •  sgltiposituacaopagamento: "REEMB"
        • descricao: "Reembolsado"
        • idnativo: 1
      • sgltiposituacaopagamento: "CAN"
        • descricao: "Cancelado"
        • idnativo: 1
    • Ao finalizar o pedido, a aplicação deverá realizar realiza uma requisição GET para a rota ${"Cadastro de plugin TPI"."Configurações do Pentaho"."URL"}/kettle/executeJob?rep=COMMON_SERVICES&job=COMMONS_Bloco_TPIGENERATEPAYMENT&idpedido=${pedido.idpedido}
      • Autenticação básica com {"Cadastro de plugin TPI"."Configurações do Pentaho"."Usuário"} e {"Cadastro de plugin TPI"."Configurações do Pentaho"."Senha"}
      • O retorno da rota será:
        • codigotransacao
        • imagempagamento
        • codigopagamento
        • valor
      • Enquanto o retorno da request estiver sendo aguardado, na tela, deverá exibir exibe um timer segundo o que foi configurado em ${"Cadastro de plugin TPI"."Configurações do SFA"."Timeout ao gerar transação"}
        • Após o timer zerar, o sistema deverá notificar notifica o usuário que "Pagamento não pôde ser criado no servidor do {nome do plugin}. Tente novamente em breve ou entre em contato com o suporte"
      • Ao receber o QR Code de maneira bem sucedida, o sistema
      deverá realizar
      • realiza a persistência da tabela pedidopagamento, segundo o de-para a seguir:
        • idpedidopagamento: PK sequencial
        • datahoracriacao: current_timestamp
        • datahoraultatualizacao: current_timestamp
        • tokentransacao: retorno.codigotransacao 
        • idtiposituacaopagamento: id de sgl "PEND"
        • valor: retorno.valor
        • imagem: retorno.imagempagamento
        • link: null
        • codigopagamento: retorno.codigopagamento
      • Deverá ser persistido Persiste também, registro na tabela observacaopagamento, com os campos:
        • observacao: Pagamento de ID ${pedidopagamento.tokentransacao} criado.
          Código do pix copia e cola: ${retorno.codigopagamento}
        • idpedidopagamento: id do registro persistido acima
        • idtiposituacaopagamento: id de sgl "PEND"
        • idusuario: id do usuário logado
        • datahora: current_timestamp

    Após a consulta do QR code, o sistema deverá realizar realiza a consulta de pagamento de 10 em 10 segundos no servidor, até que obtenha um resultado diferente de PENDENTE do servidor de pagamentos da TPI.

      • Requisição GET para a rota ${"Cadastro de plugin TPI"."Configurações do Pentaho"."URL"}/kettle/executeJob?rep=COMMON_SERVICES&job=COMMONS_Bloco_TPIGETSTATUS&codigotransacao=${pedidopagamento.tokentransacao}
        • Autenticação básica com {"Cadastro de plugin TPI"."Configurações do Pentaho"."Usuário"} e {"Cadastro de plugin TPI"."Configurações do Pentaho"."Senha"}
        • O retorno da rota será:
          • status: retorno.status
            •  Os possíveis valores da resposta serãosão:
              • pending: pendente de aprovação

              • approved: aprovado pagamento

              • expired: expirado o QR Code por prazo (padrão 1h)

              • refunded: estornado o valor para o consumidor final, após realizado o pagamento do QR Code

              • cancelled: pedido cancelado pelo operador, sem realizar o pagamento

        • Enquanto o status de pagamento estiver sendo retornado como pendente, na tela, deverá ser será exibido um timer segundo o que foi configurado em ${"Cadastro de plugin TPI"."Configurações do SFA"."Timeout consulta pagamento"}
          • Após o timer zerar, o sistema deverádeve
            • Substituir a label "PIX aguardando pagamento" por "Pagamento não confirmado"
            • O texto "O pedido será finalizado quando o pagamento for confirmado" para "Clique em finalizar para pagamento posterior"

    Caso o servidor responda que o pagamento está aprovado, o sistema irá exibir exibe mensagem de "Pagamento aprovado. Pedido finalizado com sucesso.". Dessa forma, o pedido será finalizado e o status de pagamento (pedidopagamento.idtiposituacaopagamento, onde sgltiposituacaopagamento="APR") será atualizado para APROVADO.

        • Deverá ser É alterado o campo pedidopagamento.datahoraultatualizacao
        • Deverá ser É persistido um registro em observacaopagamento, com a mensagem: "Pagamento aprovado", e idtiposituacaopagamento de sgl "APR"

    Caso o servidor responda que o pagamento está expirado ou cancelado, o sistema irá exibir exibe a mensagem de "Pagamento expirado/cancelado. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento deverá ser atualizado para o código de retorno (cancelado (sgl CAN)/expirado (sgl EXP)).

        • Deverá ser É alterado o campo pedidopagamento.datahoraultatualizacao
        • Deverá ser É persistido um registro em observacaopagamento, com a mensagem: "Pagamento expirado/cancelado", e idtiposituacaopagamento de sgl "CAN" ou "REEMB", dependendo do retorno

    O sistema exibirá exibe o botão "Cancelar", que, ao clicado, deverá exibir exibe mensagem de confirmação para o usuário: "A ação irá cancelar o QR Code, que não poderá mais ser pago. Deseja prosseguir?" Sim/não. Se sim, disparar uma requisição de cancelamento do QR Code para o servidor do TPI.

    • Requisição GET para a rota ${"Cadastro de plugin TPI"."Configurações do Pentaho"."URL"}/kettle/executeJob?rep=COMMON_SERVICES&job=COMMONS_Bloco_TPICANCELPAYMENT&codigotransacao=${pedidopagamento.tokentransacao}
      • Autenticação básica com {"Cadastro de plugin TPI"."Configurações do Pentaho"."Usuário"} e {"Cadastro de plugin TPI"."Configurações do Pentaho"."Senha"}
      • O retorno da rota será:
        • status: retorno.status
        • Os possíveis valores da resposta serão:
          • refunded: estornado o valor para o consumidor final, após realizado o pagamento do QR Code
          • cancelled: pedido cancelado pelo operador, sem realizar o pagamento

    Sincronização de pedido instantaneamente durante operações de pagamento

    Para que não exista risco de um pedido já pago permaneça no android sem ser sincronizado, o sistema disponibilizará disponibiliza função de "Sincronização instantânea" via função de "envio de dados" da Sincronização para processos online como o processo de geração de pagamento.

    O envio de dados aconteceria acontecerá de maneira síncrona nos gatilhos abaixo, enviando apenas os dados (DATS) de pedido e suas dependências.

    A sincronização instantânea aconteceria será realizada nas etapas de:

    • Inicio do processo de finalização, enviando o pedido gravado, antes da chamada da criação do pagamento.
    • Após recebimento do QR Code, enviando o registro da tabela de pagamentos do pedido.
    • Após recebimento da atualização do status de pagamento, enviando o registro da tabela de pagamentos do pedido.
    • Após recebimento da confirmação do cancelamento do pedido, enviando o registro da tabela de pagamentos do pedido
    • Após a finalização do pedido, sendo ele pago, ou selecionado para cobrança posterior, atualizando o registro de status do pedido para PENDENTE.
    • Geração de novo pagamento, enviando o registro da tabela de pagamentos do pedido

    Dessa forma, o pedido devidamente pago, seja atualizado pela integração, de maneira, agendada, ou seja atualizado instantaneamente, via consulta de pagamentos, fará com que o pedido esteja em condições de ser exportado na próxima execução da integração.

    OBS: Anteriormente, no Android, pedidos que haviam sido finalizados ainda continuavam editáveis até a sincronização. Agora, esses pedidos que já foram transmitidos ao servidor deverão não ser serão mais editáveis, como acontece na Web, por exemplo.