Déployer SaleSprint Pay
SaleSprint Pay est la page sur laquelle arrive un client quand il ouvre un lien de
facture, de relevé, de reçu ou de devis, et la page hébergée où il paie. Sur le service
géré, c’est https://pay.salesprint.org. Le code source est le répertoire pay/ du
dépôt.
Un seul déploiement sert tous les locataires. Le locataire figure dans le chemin de chaque lien, et tout est récupéré auprès de l’API SaleSprint à chaque requête. Elle n’a ni base de données, ni sessions, ni cookies.
Ce qu’elle sert
Section intitulée « Ce qu’elle sert »| Chemin | Quoi |
|---|---|
/d/{tenant}/{token} |
Un document client : facture, relevé, avoir, reçu, devis, commande, livraison, remboursement. Imprimer / enregistrer en PDF. |
/pay/{tenant}/{slug} |
La page de paiement hébergée : Mobile Money (MTN, Telecel, AirtelTigo) ou carte via la passerelle du locataire. Interroge jusqu’à ce que le paiement soit tranché. |
/api/health |
Sonde de santé. |
/ |
Une page d’accueil minimale. Elle ne liste rien. |
/robots.txt |
Interdit tout. |
Elle est volontairement séparée de la boutique (ecommerce/) : les documents de
facturation concernent tous les locataires, y compris les entreprises de services sans
boutique. Les anciennes adresses /document-links/{token} et /pay/{tenant}/{slug} de
la boutique redirigent vers elle, de sorte que les liens déjà envoyés continuent de
fonctionner.
La configurer
Section intitulée « La configurer »Tous les réglages sont des variables d’environnement côté serveur.
| Variable | Obligatoire | Notes |
|---|---|---|
SALESPRINT_API_URL |
oui | URL de base de l’API SaleSprint, telle que le serveur de l’application de paiement peut l’atteindre. |
PAY_PUBLIC_URL |
non | L’origine publique de ce site, utilisée pour construire l’adresse vers laquelle une passerelle de paiement renvoie le client. Vaut https://pay.salesprint.org par défaut en production — réglez-la si vous hébergez sous un autre nom. |
STOREFRONT_PROXY_KEY |
non | Le même secret partagé que celui de la boutique. Avec lui, l’API enregistre l’IP du visiteur lors des consultations de liens. Les pages fonctionnent sans. |
SALESPRINT_API_TIMEOUT_MS |
non | Durée d’attente de l’API. 10000 par défaut. |
PAY_MEDIA_HOSTS |
non | Hôtes d’images, séparés par des virgules, autorisés par la politique de sécurité de la page. |
PAY_CHECKOUT_HOSTS |
non | Origines de paiement https:// supplémentaires vers lesquelles la page peut envoyer un paiement par carte. Paystack et theTeller sont déjà autorisés. |
La faire tourner
Section intitulée « La faire tourner »Le répertoire fournit un Dockerfile. Le conteneur écoute sur le port 3000.
docker build -t salesprint-pay ./paydocker run -p 3000:3000 \ -e SALESPRINT_API_URL=https://api.example.com \ -e PAY_PUBLIC_URL=https://pay.example.com \ salesprint-payPlacez-la derrière TLS sur son nom d’hôte public et faites pointer votre contrôle de
santé sur /api/health.
Pour le développement local : pnpm install, créez .env.local avec au moins
SALESPRINT_API_URL, puis pnpm dev (port 3001).
Y faire pointer l’API
Section intitulée « Y faire pointer l’API »L’application de paiement ne fait qu’afficher les liens. C’est l’API qui les crée, et elle doit savoir où se trouve l’application de paiement.
À régler sur l’API et sur le planificateur (qui envoie les rappels et les relevés), avec les mêmes valeurs sur les deux :
| Variable | Ce qu’elle fait |
|---|---|
PAY_BASE_URL |
L’origine publique de l’application de paiement, p. ex. https://pay.example.com. Les liens de facture, de relevé et d’avoir, chaque bouton de paiement et chaque lien de paiement hébergé sont construits dessus. C’est aussi le dernier repli pour les autres liens clients quand un locataire n’a pas d’adresse de boutique. L’ancien nom PUBLIC_PORTAL_BASE_URL est encore lu quand celle-ci n’est pas définie. |
DOCUMENT_LINK_SECRET |
La clé dont dérive chaque lien client. La faire tourner invalide tous les liens déjà envoyés — c’est le coupe-circuit voulu, traitez-la donc comme durable. |
Sans PAY_BASE_URL, les liens se rabattent sur l’adresse de boutique de chaque locataire
ou sur son paramètre Customer Portal Base Url, et un locataire qui n’a ni l’un ni
l’autre n’obtient aucun lien.
PAY_BASE_URL sur l’API et PAY_PUBLIC_URL sur l’application de paiement doivent être
la même origine.
Vérifier que cela fonctionne
Section intitulée « Vérifier que cela fonctionne »- Ouvrez
/api/healthsur l’application de paiement. - Dans un espace de travail de test, comptabilisez une facture client pour un client ayant une adresse e-mail.
- Ouvrez le lien de l’e-mail. La facture doit s’afficher sous le nom de l’entreprise.
- Si l’espace de travail a une passerelle de paiement, appuyez sur Payer maintenant et effectuez un petit paiement. La page doit passer d’elle-même à Paiement reçu.