Aller au contenu

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.

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.

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.

Le répertoire fournit un Dockerfile. Le conteneur écoute sur le port 3000.

Fenêtre de terminal
docker build -t salesprint-pay ./pay
docker run -p 3000:3000 \
-e SALESPRINT_API_URL=https://api.example.com \
-e PAY_PUBLIC_URL=https://pay.example.com \
salesprint-pay

Placez-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).

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.

  1. Ouvrez /api/health sur l’application de paiement.
  2. Dans un espace de travail de test, comptabilisez une facture client pour un client ayant une adresse e-mail.
  3. Ouvrez le lien de l’e-mail. La facture doit s’afficher sous le nom de l’entreprise.
  4. 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.