When discussing how MemberMouse handles recurring billing, we first need to distinguish between payment services that support card-on-file functionality, and those that don’t. Card-on-file functionality is when the payment service stores a customer’s credit card information in a secure way and provides a payment token that can be used to make future payments.
With payment services that don’t support card-on-file functionality (i.e. PayPal, Authorize.net), MemberMouse has no control over the recurring billing process. When the customer purchases a subscription via one of these services, a schedule is set up within the payment service, and they take responsibility for rebilling the customer at the appropriate time. MemberMouse listens for notifications of failed or successful billing, and takes the appropriate action.
Avec les services de paiement par carte, le plugin MemberMouse de votre site est chargé de suivre le calendrier des paiements et d'envoyer des demandes de paiement au service de paiement (c'est-à-dire Stripe, Braintree, Authorize.net CIM) lorsqu'un paiement est dû. Cet arrangement est plus souple, mais il exige que notre plugin assume la responsabilité de la facturation récurrente.
Historically, MemberMouse addressed this by synchronizing your site’s billing schedule with a centralized server. Only the schedule ID and rebill date were stored on the server, no personal information for any customer was ever stored remotely. Centralizing billing allowed us to overcome certain environmental limitations of the time, and guarantee that billing would run every few hours. All versions of MemberMouse prior to 2.4.5 use this centralized approach.
À partir de MemberMouse 3.0, nous utilisons WP-Cron and a new queueing system to handle recurring billing entirely within the plugin. This means that billing on your site is no longer dependent on our centralized infrastructure, but it introduces some additional considerations for site operators. By default, we’ve scheduled local billing to run every 15 minutes, but advanced users may utilize our Filtres WordPress pour modifier cet intervalle.
La facturation locale peut nécessiter l'exécution d'une activité sur le site
One important limitation of WordPress is that WP-Cron can only run scheduled tasks when it is triggered. Many hosting providers overcome this limitation by periodically triggering WP-Cron using other parts of their infrastructure. However, a minority of providers don’t offer this feature, and in this case, billing will only run when the site is accessed.
En général, la plupart des sites sont consultés au moins une fois toutes les quelques heures, en raison du trafic des membres et des moteurs de recherche, ce qui est suffisant pour assurer une facturation fiable. Cependant, il est théoriquement possible qu'un site sans cron centralisé ne soit pas consulté pendant une période prolongée, et dans ce cas, la facturation locale ne fonctionnerait pas comme prévu.
Heureusement, il est facile de répondre à cette préoccupation en utilisant un service de surveillance du temps de fonctionnement. Ces services accèdent périodiquement à votre site et confirment qu'il répond comme prévu. Si le site ne répond pas, le service de surveillance du temps de fonctionnement vous avertit par courrier électronique ou par message texte. En plus de fournir un indicateur de fiabilité important, les contrôles périodiques effectués par le service de surveillance déclencheront la facturation en fonction des besoins.
Il existe de nombreux services de surveillance du temps de fonctionnement, et plusieurs d'entre eux proposent des offres gratuites qui sont plus que suffisantes pour les sites web de petite et moyenne taille. Voici quelques services qui proposent un niveau gratuit :
Lorsque vous configurez la surveillance, vous avez la possibilité de choisir la fréquence à laquelle le système envoie des demandes à votre site. Bien qu'il puisse sembler intuitivement préférable de surveiller à une fréquence plus élevée, gardez à l'esprit que chaque enregistrement exige que votre serveur traite et réponde à une demande, ce qui utilise des ressources. Pour la plupart des clients, nous recommandons une fréquence de surveillance de 15 à 30 minutes.
Notez que certains hébergeurs avec un cron centralisé recommandent de désactiver WP-Cron et de s'appuyer entièrement sur leur infrastructure pour les déclenchements, mais nous vous le déconseillons. Les déclenchements périodiques fournissent un niveau minimum d'activité, mais la file d'attente est configurée pour fonctionner plus fréquemment si possible, et pour de meilleurs résultats, elle devrait être autorisée à le faire.
Création et restauration de sauvegardes de votre site
Étant donné que toutes les informations relatives à la facturation locale sont stockées dans votre installation WordPress, la restauration d'une sauvegarde de votre site ramène le calendrier de facturation à un état antérieur. Cela signifie que les factures qui ont été traitées après la création de la sauvegarde seront remises en file d'attente pour être exécutées à nouveau.
To help you manage situations where a backup is restored, we’ve introduced a new Paiements à venir qui vous permet d'ignorer ou d'annuler les re-facturations individuellement ou en bloc.
En règle générale, les refacturations en retard sont exécutées le plus rapidement possible et le système commence à les traiter dès que la restauration est terminée. Les protections que MemberMouse peut offrir à cet égard sont basées sur les caractéristiques du service de paiement. Les clients qui utilisent Stripe sont protégés par :
- Enregistrement des métadonnées - Lorsque MemberMouse traite une facture dans Stripe, il enregistre des informations sur la prochaine facture à traiter. Lorsqu'une sauvegarde datant de plus de 24 heures est restaurée, nous recherchons dans les métadonnées Stripe si la prochaine facture programmée a déjà été traitée. Si des données correspondantes sont trouvées, nous interrompons temporairement la facturation locale et affichons un message vous invitant à prendre des mesures pour corriger les calendriers de paiement dans MemberMouse. L'article La refacturation sur place a été suspendue explique comment faire face à cette situation.
- Idempotence des transactions - Chaque transaction exécutée sur Stripe utilise un Clé d'idempotence généré à partir des informations de la commande. Stripe rejettera les transactions qui ont déjà été facturées au cours des dernières 24 heures.
Si vous créez manuellement une sauvegarde avant une migration ou une autre activité de maintenance importante, vous pouvez interrompre temporairement la facturation locale avant de commencer. S'il s'avère nécessaire de restaurer cette sauvegarde, la facturation locale sera déjà interrompue lorsque la restauration sera terminée. Vous pouvez alors ignorer tous les paiements qui ont déjà été facturés et activer la facturation locale une fois cette étape terminée. Les paramètres du planificateur de facturation locale se trouvent à l'adresse suivante MemberMouse > Paramètres généraux > Autres paramètresen bas de la page.

