REDA One Centre d’aide
FR
Langue
English EN Español ES Português PT Italiano bientôt disponible Français FR Deutsch bientôt disponible العربية bientôt disponible
reda.one ↗
Accueil / REDA Pay / Traitements planifiés / Planifier la tâche quotidienne des paiements récurrents

Planifier la tâche quotidienne des paiements récurrents

Les paiements récurrents sont des modèles ; une tâche d’arrière-plan les transforme en vrais paiements à leurs échéances. REDA Pay fournit la tâche mais ne la planifie pas : un administrateur le fait une fois, dans la Configuration. D’ici là, chaque planification créée par votre équipe ou vos clients apparaît comme active sans jamais s’exécuter.

Avant de commencer : vous avez l’autorisation Salesforce Author Apex (un administrateur système l’a) et REDA Pay - Admin User.

Planifier la tâche

  1. Ouvrez la Configuration, saisissez Classes Apex dans la zone Recherche rapide et cliquez sur Classes Apex.
  2. Cliquez sur Planifier Apex en haut de la liste.
  3. Renseignez :
ChampSaisissez
Nom de tâcheUn nom que vous reconnaîtrez dans la liste des tâches prévues, par exemple REDA Pay - Recurring Payments
Classe ApexCliquez sur la recherche et choisissez SchedulePayOrderJob (elle apparaît avec l’espace de noms REDA Pay, rpay)
FréquenceHebdomadaire, avec tous les jours de la semaine cochés
DébutAujourd’hui
FinUne date lointaine, par exemple dans dix ans
Heure de début souhaitéeUne heure calme avant votre journée de travail, par exemple 06:00. Les paiements dus ce jour-là sont créés et envoyés à cette heure
  1. Cliquez sur Enregistrer.
La page Planifier Apex de la Configuration avec le nom de tâche « REDA Pay - Recurring Payments », la classe Apex SchedulePayOrderJob, la fréquence hebdomadaire avec les sept jours cochés, les dates de début et de fin et une heure de début souhaitée
La page Planifier Apex de la Configuration avec le nom de tâche « REDA Pay - Recurring Payments », la classe Apex SchedulePayOrderJob, la fréquence hebdomadaire avec les sept jours cochés, les dates de début et de fin et une heure de début souhaitée

Une tâche, tous les jours. L’heure choisie est celle à laquelle les paiements récurrents du jour sont encaissés.

Ce que fait la tâche chaque jour

  1. Elle trouve tous les Pay Orders de type Schedule dont Schedule Active est coché et dont la Schedule Next Run Date est aujourd’hui.
  2. Elle clone chacun en un nouveau Pay Order Immediate relié par Parent Pay Order, puis traite ces ordres un par un, sans rien enregistrer de nouveau, car le client et le moyen ont été enregistrés à la création de la planification.
  3. Elle renseigne la Schedule Last Run Date de chaque planification, ce qui fait avancer la Schedule Next Run Date et ajoute un à System Run Instances.
  4. Elle écrit un REDA Pay Log en cas d’échec, et le propriétaire de l’ordre reçoit « Scheduled Payment [P-000000] failed. » pour chaque exécution échouée.

Une exécution qui échoue n’est pas rejouée ; la planification continue simplement à sa prochaine date. Consultez Configurer un paiement récurrent.

Vérifier qu’elle s’exécute

OùCe qu’il faut voir
Configuration → page Toutes les tâches prévues (Scheduled Jobs)Le nom de votre tâche, avec une date dans Prochaine exécution prévue
Configuration → Tâches ApexAprès chaque exécution, des entrées pour les classes de traitement par lot REDA Pay au statut Completed
Application REDA Pay → REDA Pay Logs → Attention NeededDes journaux de la tâche lorsque des exécutions ont échoué, avec les échecs joints dans un fichier
Vue de liste Order Type - Schedule des Pay OrdersSchedule Last Run Date = aujourd’hui pour les planifications qui étaient dues

Exemple pratique : l’exécution d’un matin

Trois planifications sont dues le 1er novembre : les loyers de deux résidents par compte bancaire et des frais de service aux propriétaires par carte.

PlanificationCe que fait la tâche à 06:00Résultat
P-051850, 1 250,00 $ par mois, Checking x-7890La clone en P-052001 (Parent Pay Order P-051850) et la traiteT-0014601 processed ; P-052001 Schedule - Processed ; sur P-051850, Last Run Date le 1er nov., Next Run Date le 1er déc., Run Instances 1
P-051860, 980,00 $ par mois, Checking x-1122La clone en P-052002 et la traitePayload refuse : provision insuffisante. T-0014602 failed ; P-052002 Schedule - Not Processed ; le propriétaire de P-051860 voit « Scheduled Payment [P-051860] failed. » ; P-051860 passe malgré tout au 1er déc.
P-051870, 45,00 $ par mois, Visa x-4242 (expirée)La clone en P-052003 et la traiteRefusé ; comme ci-dessus

Un REDA Pay Log de l’exécution consigne deux échecs, avec les deux ordres et leurs erreurs dans le fichier joint, et les administrateurs reçoivent l’e-mail « ATTENTION NEEDED ». Le recouvrement relance les deux exécutions échouées ; les planifications elles-mêmes n’ont pas besoin d’être modifiées, sauf si la carte est remplacée.

Choisir l’heure

L’heure choisie est exprimée dans le fuseau horaire de l’utilisateur qui planifie la tâche. Une heure matinale, avant la journée de travail, fait que les échecs attendent déjà dans la vue Attention Needed quand le personnel arrive, et que les payeurs voient une heure de débit constante. Évitez le début de l’heure où s’exécutent vos autres tâches lourdes ; la tâche REDA Pay appelle Payload une fois par planification et est rapide, mais elle partage les mêmes créneaux de traitement par lot.

L’exécuter plusieurs fois par jour, ou pour une date passée

La tâche s’exécute une fois par jour par conception : les planifications sont fondées sur des dates, et une seconde exécution le même jour ne trouve rien de nouveau. Si la tâche n’a pas tourné un jour donné (par exemple parce qu’elle n’était pas encore planifiée, ou que l’organisation était indisponible), un administrateur peut l’exécuter pour cette date depuis la Developer Console (ouvrez-la comme décrit dans Configurer les webhooks, partie 4 ; puis Debug → Open Execute Anonymous Window ; les menus de la Developer Console sont en anglais) :

rpay.SchedulePayOrderJob job = new rpay.SchedulePayOrderJob();
job.processDate = Date.newInstance(2026, 11, 1);   // la date manquée
System.schedule('REDA Pay - catch-up ' + String.valueOf(DateTime.now().getTime()), '0 0 * * * ?', job);

Cela planifie une exécution ponctuelle à l’heure suivante pour la date indiquée ; les planifications dues à cette date et pas encore exécutées sont traitées. La tâche accepte aussi batchSize (50 par défaut), le nombre de planifications traitées par lot.

Erreurs à éviter

ErreurCe qui se passeCorrection
Ne jamais planifier la tâcheChaque planification reste « active » indéfiniment et rien n’est débitéPlanifiez-la ; vérifiez ensuite les planifications dont la Next Run Date est passée
La planifier deux foisSans danger mais déroutant : la seconde exécution ne trouve rienGardez une seule tâche
Choisir une heure de début pendant les heures de travailLes paiements sont débités en milieu de matinée ; les échecs apparaissent quand le personnel est occupéChoisissez une heure matinale
Supprimer la tâche planifiée lors d’un « nettoyage »Le paiement automatique s’arrêtePlanifiez-la de nouveau
S’attendre à ce que la tâche rejoue les paiements échouésElle ne le fait pasEncaissez les montants manquants séparément

Questions fréquentes

La tâche s’exécute sous l’utilisateur qui l’a planifiée. Cet utilisateur doit avoir REDA Pay - Admin User et être autorisé à encaisser ; si cette personne part, planifiez de nouveau la tâche sous un autre administrateur.

Non, mais les organisations de production devraient les avoir pour que les refus et les rejets ultérieurs arrivent dans Salesforce ; consultez Configurer les webhooks.

Supprimez la tâche planifiée, depuis la page Toutes les tâches prévues, pour suspendre ; planifiez-la de nouveau pour reprendre. Les planifications dont les dates sont passées entre-temps ne sont pas rattrapées automatiquement.

Pour aller plus loin