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.
Bei Card-on-File-Zahlungsdiensten ist das MemberMouse-Plugin auf Ihrer Website für die Verfolgung des Zahlungsplans und das Senden von Zahlungsaufforderungen an den Zahlungsdienst (z. B. Stripe, Braintree, Authorize.net CIM) verantwortlich, wenn eine Zahlung fällig ist. Diese Vereinbarung ist flexibler, erfordert jedoch, dass unser Plugin die Verantwortung für die wiederkehrende Rechnungsstellung übernimmt.
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.
Beginnend mit MemberMouse 3.0, verwenden wir 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 WordPress-Filter um dieses Intervall zu ändern.
Lokale Abrechnung erfordert möglicherweise eine Standortaktivität
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.
Im Allgemeinen werden die meisten Websites aufgrund des Mitglieder- und Suchmaschinenverkehrs mindestens einmal alle paar Stunden aufgerufen, was für eine zuverlässige Abrechnung ausreicht. Theoretisch ist es jedoch möglich, dass auf eine Website ohne zentrales Cron über einen längeren Zeitraum nicht zugegriffen wird, und in diesem Fall würde die lokale Abrechnung nicht zum erwarteten Zeitpunkt erfolgen.
Glücklicherweise lässt sich dieses Problem mit Hilfe eines Dienstes zur Überwachung der Betriebszeit leicht lösen. Diese Dienste greifen in regelmäßigen Abständen auf Ihre Website zu und überprüfen, ob sie wie erwartet antwortet. Wenn die Website nicht reagiert, werden Sie per E-Mail oder Textnachricht benachrichtigt. Die regelmäßigen Überprüfungen durch den Überwachungsdienst liefern nicht nur einen wichtigen Maßstab für die Zuverlässigkeit, sondern veranlassen auch, dass die Abrechnung nach Bedarf erfolgt.
Es gibt viele verfügbare Dienste zur Überwachung der Betriebszeit, und einige bieten eine kostenlose Stufe an, die für kleine und mittelgroße Websites mehr als ausreichend ist. Hier sind ein paar Dienste, die eine kostenlose Stufe anbieten:
Bei der Konfiguration der Überwachung haben Sie die Möglichkeit zu wählen, wie oft das System Anfragen an Ihre Website sendet. Auch wenn es intuitiv besser erscheint, mit einer höheren Frequenz zu überwachen, sollten Sie bedenken, dass Ihr Server bei jedem Check-in eine Anfrage bearbeiten und beantworten muss, was Ressourcen verbraucht. Für die meisten Kunden empfehlen wir eine Überwachungsfrequenz von 15-30 Minuten.
Beachten Sie, dass einige Hosting-Provider mit zentralisiertem Cron empfehlen, WP-Cron zu deaktivieren und sich bei Triggern ganz auf ihre Infrastruktur zu verlassen, wovon wir jedoch abraten. Die regelmäßige Auslösung sorgt für ein Mindestmaß an Aktivität, aber die Warteschlange ist so konfiguriert, dass sie nach Möglichkeit häufiger ausgeführt wird, und für optimale Ergebnisse sollte man ihr dies auch erlauben.
Erstellen und Wiederherstellen von Backups Ihrer Website
Da alle Informationen für die lokale Abrechnung in Ihrer WordPress-Installation gespeichert sind, wird durch die Wiederherstellung eines Backups Ihrer Website der Abrechnungszeitplan auf einen früheren Stand zurückgesetzt. Das bedeutet, dass Abrechnungen, die nach der Erstellung des Backups verarbeitet wurden, erneut in die Warteschlange gestellt werden.
To help you manage situations where a backup is restored, we’ve introduced a new Bevorstehende Zahlungen Seite, auf der Sie Rechnungen einzeln oder in großen Mengen überspringen oder stornieren können.
Im Allgemeinen werden überfällige Rückbuchungen so schnell wie möglich ausgeführt, und das System beginnt mit ihrer Bearbeitung, sobald die Wiederherstellung abgeschlossen ist. Die Schutzmaßnahmen, die MemberMouse dagegen anbieten kann, basieren auf den Merkmalen des Zahlungsdienstes. Kunden, die Stripe verwenden, sind geschützt durch:
- Aufzeichnung von Metadaten - Wenn MemberMouse eine Abrechnung in Stripe verarbeitet, werden Informationen über die nächste zu verarbeitende Abrechnung aufgezeichnet. Wenn eine mehr als 24 Stunden alte Sicherungskopie wiederhergestellt wird, durchsuchen wir die Stripe-Metadaten, um festzustellen, ob die nächste geplante Rückbuchung bereits verarbeitet wurde. Wenn übereinstimmende Daten gefunden werden, wird die lokale Rechnungsstellung vorübergehend angehalten und eine Meldung angezeigt, die Sie auffordert, die Zahlungspläne in MemberMouse zu korrigieren. Der Artikel Die erneute Rechnungsstellung vor Ort wurde pausiert erklärt, wie man mit dieser Situation umgehen kann.
- Idempotenz von Transaktionen - Jede über Stripe durchgeführte Transaktion verwendet eine Entpotenzierungsschlüssel aus Bestellinformationen generiert. Stripe lehnt Transaktionen ab, die innerhalb der letzten 24 Stunden bereits abgerechnet wurden.
Wenn Sie vor einer Migration oder einer anderen größeren Wartungsmaßnahme manuell eine Sicherungskopie erstellen, können Sie die lokale Rechnungsstellung vorübergehend unterbrechen, bevor Sie damit beginnen. Sollte es notwendig sein, diese Sicherung wiederherzustellen, wird die lokale Fakturierung bereits pausiert, wenn die Wiederherstellung abgeschlossen ist. Sie können dann alle Zahlungen, die bereits in Rechnung gestellt wurden, überspringen und die lokale Rechnungsstellung aktivieren, sobald dieser Schritt abgeschlossen ist. Die Einstellungen für den Scheduler für die lokale Rechnungsstellung finden Sie unter MemberMouse > Allgemeine Einstellungen > Andere Einstellungenin der Nähe des unteren Seitenrandes.

