03 · Ingresos
Vincula el resto de tus pagos de Stripe
No todos los pagos de Stripe empiezan en un checkout. Cada tipo tiene un lugar donde puede viajar el ID del visitante, o un email con el que cotejarlo.
01PaymentIntents que creas tú
Con el Payment Element, o con cualquier flujo en el que tu servidor crea el PaymentIntent, pon el ID del visitante en los metadatos del 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 } : {},
});
02Suscripciones que creas tú
Una suscripción creada con la API pasa sus metadatos a cada factura, así que el primer pago y cada renovación llevan el ID:
// 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 } : {},
});
03En el cliente
También se leen los metadatos del cliente, así que un ID guardado en el cliente llega a cada pago que haga, facturas incluidas:
// 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 } : {},
});
04Facturas y cargos manuales
Una factura que envías a mano o un cargo hecho en el panel de Stripe no tiene checkout que lleve un ID. Cuando el cliente haya iniciado sesión (o esté en tu página de éxito), identifícalo con el email con el que paga: un pago cuyo email de cliente coincida queda vinculado, con confianza media. El email se convierte en hash al llegar y solo se guarda el hash.
// 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 });
05Renovaciones, mejoras de plan y reembolsos
Estos se vinculan solos: una renovación o mejora de plan se vincula como se vinculó el primer pago de la suscripción, y un reembolso o contracargo, como el pago que revierte, con la misma confianza.
06Comprueba que funciona
¿Falta algo o no coincide con lo que ves? Escribe a support@tallybyoutpost.com y dinos qué página.