REDA One Centro de ayuda
ES
Idioma
English EN Español ES Português PT Italiano próximamente Français FR Deutsch próximamente العربية próximamente
reda.one ↗
Inicio / REDA Pay / Procesamiento programado / Activar la recuperación de pagos fallidos

Activar la recuperación de pagos fallidos

A veces la conexión entre Salesforce y Payload falla mientras se envía un pago. Es posible que Payload haya cobrado el dinero, pero Salesforce nunca recibió la respuesta. REDA Pay registra ese intento como una Pay Transaction con estado failed y la marca Process Callout Exception, y muestra al pagador el mensaje que empieza con "Ooops.. we have experienced an unexpected exception. Your payment method may have been debited. Do not try to pay again…" junto con un código (es posible que se haya debitado el método de pago; no vuelvas a intentarlo).

El trabajo Sync Failed Pay Order Transactions encuentra esos intentos y le pregunta a Payload qué ocurrió realmente. Activarlo es un solo clic en la pestaña REDA Pay Admin, y toda organización de producción debería tenerlo activado.

Antes de empezar: tienes REDA Pay - Admin User.

Activar el trabajo

  1. Abre la app REDA Pay → pestaña REDA Pay Admin.
  2. En la tarjeta Sync Failed Pay Order Transactions ("System job to sync failed transactions againts a pay order in case of any runtime exceptions.", un trabajo del sistema que sincroniza las transacciones fallidas de una orden ante errores de ejecución), cambia Job Scheduled a Yes.
  3. El mensaje "Batch job scheduled successfully." lo confirma. A partir de ese momento, el trabajo se ejecuta cada 15 minutos.

Cambiarlo a No lo detiene ("Batch job revoked successfully."). El trabajo aparece en Configuración → Trabajos programados como Sync Failed Pay Order Transactions; no lo elimines allí: usa el interruptor.

La tarjeta Sync Failed Pay Order Transactions de la pestaña REDA Pay Admin con el interruptor Job Scheduled en Yes
La tarjeta Sync Failed Pay Order Transactions de la pestaña REDA Pay Admin con el interruptor Job Scheduled en Yes

Un interruptor. Luego el trabajo revisa cada 15 minutos los pagos cuyo resultado se desconoce.

Qué hace el trabajo

Cada 15 minutos:

  1. Busca las Pay Transactions creadas en la última hora que tienen Process Callout Exception.
  2. Para cada una, le pide a Payload todas las transacciones etiquetadas con esa Pay Order.
  3. Guarda lo que devuelve Payload: actualiza las transacciones que Salesforce tiene y crea las que le faltan, con su estado real: processed, declined, etc.
  4. Quita la marca. Los intentos de más de una hora no se tocan; para esos, usa Sync Transaction en la orden.
La lista relacionada Pay Transactions de una Pay Order con una transacción fallida seguida de una procesada que recuperó el trabajo
La lista relacionada Pay Transactions de una Pay Order con una transacción fallida seguida de una procesada que recuperó el trabajo

Un pago recuperado: el intento fallido queda como registro; el resultado real está a su lado.

Ejemplo práctico

HoraQué ocurre
10:02Un miembro del personal pulsa Process Order en P-052010 por $1,251.75. Payload recibe la solicitud, pero la respuesta nunca llega a Salesforce
10:02La pantalla muestra "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 un código. El miembro del personal anota el código y no lo reintenta
10:02Bajo P-052010 se guarda una Pay Transaction T-0014500 con Status failed y Process Callout Exception marcado; la orden sigue en Immediate - Not Processed
10:15Se ejecuta el trabajo de recuperación. Encuentra T-0014500, le pide a Payload todas las transacciones etiquetadas con P-052010 y recibe una: procesada, $1,251.75
10:15REDA Pay crea T-0014501 con Status processed bajo P-052010 y quita la marca de T-0014500
10:20El administrador revisa la vista de lista Not Processed, ve P-052010 con una transacción procesada y define su Processed Datetime a las 10:02, para que la orden indique Immediate - Processed

El código del mensaje es el identificador de la transacción en Payload, cuando Payload devolvió uno antes del fallo. Soporte puede encontrar el pago en Payload con él incluso antes de que se ejecute el trabajo.

Dónde ver el trabajo

DóndeQué ves
Configuración → Trabajos programadosSync Failed Pay Order Transactions, con una Siguiente ejecución programada dentro de los próximos 15 minutos
Configuración → Trabajos de ApexUna entrada de lote completada por cada ejecución
REDA Pay Logs → Attention NeededUn registro solo cuando una ejecución tuvo un error, por ejemplo Payload inaccesible
Pay TransactionsLas transacciones recuperadas aparecen con su estado real junto al intento fallido

Si el interruptor no cambia, al usuario le falta REDA Pay - Admin User; el trabajo solo lo puede programar un administrador, y luego se ejecuta como ese administrador.

Después de una recuperación: una cosa que revisar

Cuando el trabajo (o Sync Transaction, o la conciliación) agrega después una transacción processed a una orden, el Processed Datetime de la propia orden no se completa y su Status sigue indicando Immediate - Not Processed. El pago es real; la orden simplemente no lo dice. Dos consecuencias:

  • No pulses Process Pay Order en esa orden: enviaría un segundo cargo. La orden tiene debajo una transacción procesada; trátala como pagada.
  • Para que la orden se lea correctamente, un administrador puede editarla y definir Processed Datetime con la fecha de la transacción. Luego la orden se bloquea como cualquier orden procesada.

La vista de lista Not Processed de Pay Orders es donde aparecen estos casos; revísala después de cualquier recuperación.

Qué debe hacer el personal cuando aparece el mensaje

  1. No pulses nada otra vez, y no abras la pantalla de pago del mismo cliente para "probar una vez más".
  2. Copia el código del mensaje en las Internal Notes de la orden o en un caso.
  3. Dile al pagador: "Es posible que el pago se haya realizado; te lo confirmaremos en menos de una hora."
  4. En menos de 15 minutos, abre las Pay Transactions de la Pay Order: una transacción processed nueva confirma el pago; si solo hay una failed con la marca quitada y nada más, Payload nunca cobró y el pago se puede volver a cobrar.

Errores que debes evitar

ErrorQué ocurreSolución
Dejar el trabajo desactivadoClientes debitados sin registro en Salesforce hasta que alguien sincroniza a manoActívalo
Pulsar Process Pay Order en una orden que tiene una transacción procesadaUn segundo cargoRevisa primero la lista Pay Transactions
Eliminar el trabajo de Trabajos programadosEl interruptor sigue en Yes pero no se ejecuta nadaCambia a No y luego a Yes
Esperar que recupere intentos de hace una semanaMira solo la última horaUsa Sync Transaction en la orden

Preguntas frecuentes

No. Solo los intentos marcados con Process Callout Exception.

Como el administrador que lo activó. Si ese usuario se desactiva, apágalo y vuelve a encenderlo con otro administrador.

No. Los webhooks son Payload avisando a Salesforce de cambios de estado posteriores. Este trabajo es Salesforce preguntando a Payload por un intento cuya primera respuesta se perdió. Ambos deben estar en una organización de producción.

Qué sigue