Skip to main content
Un compte est soit prépayé, soit postpayé à un instant donné, défini par account_balance.billing_mode. Le postpayé est désactivé tant que smsg.balance.postpaid.enabled n’est pas true, donc migrer ajoute deux colonnes et ne change rien tant que vous ne le dites pas.

Ce qui change

Un compte postpayé n’est pas débité du tout. Son balance reste à zéro, aucun bloc n’est réservé, et ce qu’il doit est dérivé de cdr_submit lorsque la facture est préparée. Ce que le gateway applique à la place est credit_limit — combien d’usage non facturé peut s’accumuler avant que le compte ne soit refusé.
credit_limit = 0 signifie pas de crédit, pas illimité.Il n’y a aucune représentation de l’illimité et il n’est pas prévu qu’il y en ait. Une faute de frappe ou un champ de formulaire manquant doit échouer en mode fermé : un compte qui ne peut rien envoyer est un appel au support, et un compte qui peut tout envoyer est un mois de trafic que personne ne peut facturer.
Atteindre la limite est le même refus qu’épuiser du crédit prépayé — SMPP 0x402, HTTP 402, raison insufficientCredit. Délibérément : les deux signifient « vous ne pouvez pas envoyer maintenant », et deux codes de statut obligeraient chaque client de la plateforme à en apprendre un deuxième.

Facture exacte, mise en application approximative

Ce sont deux tâches différentes, et elles ne partagent délibérément pas d’implémentation.

Le contrôle de limite

Lit un chiffre en mémoire rafraîchi sur le même sondage de 30 secondes qui applique les rechargements. Il est autorisé à être périmé.

La facture

Une fonction pure de cdr_submit sur une fenêtre semi-ouverte. Ne lit jamais ce compteur, ne lit jamais account_balance, ne lit jamais le grand livre.
Donc la seule chose qui peut rendre une facture fausse est une ligne cdr_submit manquante ou en trop. Rien dans le chemin de mise en application ne peut corrompre une facture.

La péremption est biaisée en toute sécurité

Un sondage ne peut jamais que resserrer la marge de manœuvre, jamais l’élever — parce que la requête ne peut pas voir les messages envoyés pendant qu’elle tournait. La marge de manœuvre monte seulement quand la dette diminue réellement : une période clôturée, un remboursement arrivé, ou un opérateur a changé la limite. Ce biais est le point. La péremption refuse trop tôt plutôt que trop tard.

Jusqu’où au-delà de la limite un compte peut aller

La dernière ligne est celle à surveiller si vous exécutez jamais plus d’un gateway contre une base de données. Elle est mentionnée parce qu’elle est celle qui monte à l’échelle, pas parce qu’elle est un problème actuel.
Ne facturez jamais depuis le compteur, et n’ajoutez jamais une ligne de grand livre par message pour rendre la facturation exacte.Cela mettrait une écriture en base sur le chemin de l’argent à des milliers par seconde — la chose exacte que ce sous-système existe pour éviter — et cdr_submit est déjà l’enregistrement par message.

Choisir entre les deux

Le prépayé est le défaut le plus sûr pour un nouveau compte. Le postpayé mérite son risque avec des clients dont le volume rend les rechargements constants une nuisance.

En lien

Crédit prépayé

Blocs, réservations et l’identité de l’argent.

Relevés

Clôturer une période et émettre la facture.