REDA One Centro de ajuda
PT
Idioma
English EN Español ES Português PT Italiano em breve Français FR Deutsch em breve العربية em breve
reda.one ↗
Início / REDA Pay / Processamento agendado / Ativar a recuperação de pagamentos com falha

Ativar a recuperação de pagamentos com falha

De vez em quando, a conexão entre o Salesforce e a Payload falha enquanto um pagamento está sendo enviado. A Payload pode ter recebido o dinheiro, mas o Salesforce nunca recebeu a resposta. O REDA Pay registra essa tentativa como uma Pay Transaction com status failed e a marcação Process Callout Exception ativada, e mostra ao pagador a mensagem que começa com "Ooops.. we have experienced an unexpected exception. Your payment method may have been debited. Do not try to pay again…", com um código.

O trabalho Sync Failed Pay Order Transactions encontra essas tentativas e pergunta à Payload o que realmente aconteceu. Ativá-lo é uma etapa de um clique na guia REDA Pay Admin, e toda organização de produção deve tê-lo ativado.

Antes de começar: você tem o REDA Pay - Admin User.

Ativar o trabalho

  1. Abra o aplicativo REDA Pay → guia REDA Pay Admin.
  2. No cartão Sync Failed Pay Order Transactions ("System job to sync failed transactions againts a pay order in case of any runtime exceptions."), mude Job Scheduled para Yes.
  3. A mensagem "Batch job scheduled successfully." confirma. Daí em diante, o trabalho roda a cada 15 minutos.

Mudar para No o interrompe ("Batch job revoked successfully."). O trabalho aparece na página Todos os trabalhos agendados da Configuração como Sync Failed Pay Order Transactions; não o exclua lá, use a chave.

O cartão Sync Failed Pay Order Transactions na guia REDA Pay Admin, com a chave Job Scheduled em Yes
O cartão Sync Failed Pay Order Transactions na guia REDA Pay Admin, com a chave Job Scheduled em Yes

Uma chave. O trabalho então verifica a cada 15 minutos os pagamentos cujo resultado é desconhecido.

O que o trabalho faz

A cada 15 minutos, ele:

  1. Encontra as Pay Transactions criadas na última hora que têm o Process Callout Exception.
  2. Para cada uma, pede à Payload todas as transações marcadas com aquela Pay Order.
  3. Salva o que a Payload devolve: atualiza as transações que o Salesforce tem e cria as que faltam, com o status real (processed, declined e assim por diante).
  4. Limpa a marcação. Tentativas com mais de uma hora não são tocadas; use o Sync Transaction na ordem para elas.
A lista relacionada Pay Transactions de uma Pay Order mostrando uma transação com falha seguida de uma processada, recuperada pelo trabalho
A lista relacionada Pay Transactions de uma Pay Order mostrando uma transação com falha seguida de uma processada, recuperada pelo trabalho

Um pagamento recuperado: a tentativa com falha fica registrada; o resultado real fica ao lado dela.

Exemplo prático

HorárioO que acontece
10:02Um membro da equipe pressiona Process Order na P-052010, de $1,251.75. A Payload recebe a solicitação, mas a resposta nunca chega ao Salesforce
10:02A tela mostra "Ooops.. we have experienced an unexpected exception. Your payment method may have been debited. Do not try to pay again and quote following code to the support team…", seguido de um código. O membro da equipe anota o código e não tenta de novo
10:02Abaixo da P-052010, uma Pay Transaction T-0014500 é salva com Status failed e Process Callout Exception marcado; a ordem continua Immediate - Not Processed
10:15O trabalho de recuperação roda. Ele encontra a T-0014500, pede à Payload todas as transações marcadas com a P-052010 e recebe uma: processada, $1,251.75
10:15O REDA Pay cria a T-0014501 com Status processed abaixo da P-052010 e limpa a marcação da T-0014500
10:20O administrador confere o modo de exibição de lista Not Processed, vê a P-052010 com uma transação processada e define o Processed Datetime dela como 10:02, para que a ordem mostre Immediate - Processed

O código na mensagem é o identificador da Payload para a transação, quando a Payload devolveu um antes da falha. O suporte consegue encontrar o pagamento na Payload a partir dele, mesmo antes de o trabalho rodar.

Onde ver o trabalho

OndeO que você vê
Configuração → página Todos os trabalhos agendadosSync Failed Pay Order Transactions, com uma Próxima execução agendada dentro de 15 minutos
Configuração → Trabalhos do ApexUma entrada de lote concluída para cada execução
REDA Pay Logs → Attention NeededUm log só quando uma execução deu erro, por exemplo a Payload inacessível
Pay TransactionsAs transações recuperadas aparecem com o status real ao lado da tentativa com falha

Se a chave se recusa a mudar, o usuário não tem o REDA Pay - Admin User; o trabalho só pode ser agendado por um administrador e então roda como esse administrador.

Depois de uma recuperação: uma coisa a conferir

Quando o trabalho (ou o Sync Transaction, ou a conciliação) acrescenta uma transação processed a uma ordem depois do fato, o Processed Datetime da própria ordem não é preenchido e o Status dela continua Immediate - Not Processed. O pagamento é real; só a ordem não diz isso. Duas consequências:

  • Não pressione Process Pay Order em uma ordem assim: isso enviaria uma segunda cobrança. A ordem tem uma transação processada abaixo dela; trate-a como paga.
  • Para que a ordem fique correta, um administrador pode editá-la e definir o Processed Datetime com a data da transação. A ordem então fica bloqueada como qualquer ordem processada.

O modo de exibição de lista Not Processed de Pay Orders é onde esses casos aparecem; confira-o depois de qualquer recuperação.

O que a equipe deve fazer quando a mensagem aparece

  1. Não pressione nada de novo e não abra a tela de pagamento do mesmo cliente para "tentar mais uma vez".
  2. Copie o código da mensagem para as Internal Notes da ordem ou para um caso.
  3. Diga ao pagador: "O pagamento pode ter sido concluído; vamos confirmar dentro de uma hora."
  4. Em até 15 minutos, abra as Pay Transactions da Pay Order: uma nova transação processed confirma o pagamento; só uma failed com a marcação limpa e nada mais significa que a Payload nunca o recebeu, e o pagamento pode ser feito de novo.

Erros comuns a evitar

ErroO que aconteceSolução
Deixar o trabalho desativadoClientes debitados sem registro no Salesforce até alguém sincronizar à mãoAtive-o
Pressionar Process Pay Order em uma ordem que tem uma transação processadaUma segunda cobrançaConfira antes a lista de Pay Transactions
Excluir o trabalho na página de trabalhos agendadosA chave continua em Yes, mas nada rodaMude para No e depois para Yes
Esperar que ele recupere tentativas de uma semana atrásEle olha só uma hora para trásUse o Sync Transaction na ordem

Perguntas frequentes

Não. Só nas tentativas marcadas com Process Callout Exception.

Como o administrador que o ativou. Se esse usuário for desativado, desative e ative de novo a chave como outro administrador.

Não. Os webhooks são a Payload avisando o Salesforce sobre mudanças de status posteriores. Este trabalho é o Salesforce perguntando à Payload sobre uma tentativa cuja primeira resposta se perdeu. Os dois são necessários em uma organização de produção.

O que vem a seguir