03 · Revenus
Lier le reste de vos paiements Stripe
Tous les paiements Stripe ne commencent pas par une page de paiement. Chaque type a un endroit où l’identifiant du visiteur peut voyager, ou un e-mail par lequel le rapprocher.
01Les PaymentIntents que vous créez
Avec le Payment Element, ou tout parcours où votre serveur crée le PaymentIntent, placez l’identifiant du visiteur dans les métadonnées du PaymentIntent :
// Where your server creates the PaymentIntent (the Payment Element, Elements).
const visitorId = req.cookies['_tally_vid'];
const paymentIntent = await stripe.paymentIntents.create({
amount: 4900,
currency: 'usd',
automatic_payment_methods: { enabled: true },
metadata: visitorId ? { 'tally_visitor_id': visitorId } : {},
});
02Les abonnements que vous créez
Un abonnement créé via l’API transmet ses métadonnées à chaque facture : le premier paiement et chaque renouvellement portent donc l’identifiant :
// A subscription your server creates: its invoices carry its metadata.
const visitorId = req.cookies['_tally_vid'];
const subscription = await stripe.subscriptions.create({
customer: customerId,
items: [{ price: 'price_123' }],
metadata: visitorId ? { 'tally_visitor_id': visitorId } : {},
});
03Sur le client
Les métadonnées du client sont lues aussi : un identifiant enregistré sur le client atteint donc chacun de ses paiements, factures comprises :
// When you create the customer (or later, with stripe.customers.update).
const visitorId = req.cookies['_tally_vid'];
const customer = await stripe.customers.create({
email: user.email,
metadata: visitorId ? { 'tally_visitor_id': visitorId } : {},
});
04Factures et paiements manuels
Une facture envoyée à la main ou un paiement créé dans le tableau de bord Stripe n’a pas de page de paiement pour transporter un identifiant. Une fois le client connecté (ou sur votre page de confirmation), identifiez-le par l’e-mail qu’il utilise pour payer : un paiement dont l’e-mail client correspond est lié, avec une confiance moyenne. L’e-mail est haché dès son arrivée et seul le hachage est conservé.
// Once the customer is signed in (or on your success page), with the email they pay with.
// It is hashed when it arrives; only the hash is kept.
window.tally = window.tally || function () { (tally.q = tally.q || []).push(arguments); };
tally('identify', { email: user.email });
05Renouvellements, passages à une offre supérieure et remboursements
Ceux-ci suivent d’eux-mêmes : un renouvellement ou un passage à une offre supérieure est lié comme l’a été le premier paiement de l’abonnement, et un remboursement ou une rétrofacturation comme le paiement annulé, avec la même confiance.
06Vérifier que ça marche
Il manque quelque chose, ou ce n’est pas ce que vous voyez ? Écrivez à support@tallybyoutpost.com en précisant la page.