03 · Umsatz
Die übrigen Stripe-Zahlungen verknüpfen
Nicht jede Stripe-Zahlung beginnt bei einem Checkout. Jede Art hat einen Platz, an dem die Besucher-ID mitfahren kann, oder eine E-Mail für den Abgleich.
01PaymentIntents, die du erstellst
Mit dem Payment Element oder jedem Ablauf, in dem dein Server den PaymentIntent erstellt, schreib die Besucher-ID in die Metadaten des 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 } : {},
});
02Abos, die du erstellst
Ein über die API erstelltes Abo gibt seine Metadaten an jede Rechnung weiter, sodass die erste Zahlung und jede Verlängerung die ID tragen:
// 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 } : {},
});
03Am Kunden
Auch die Metadaten des Kunden werden gelesen, eine am Kunden gespeicherte ID erreicht also jede seiner Zahlungen, Rechnungen inklusive:
// 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 } : {},
});
04Rechnungen und manuelle Belastungen
Eine Rechnung, die du von Hand sendest, oder eine im Stripe-Dashboard erstellte Belastung hat keinen Checkout, der eine ID tragen könnte. Sobald der Kunde angemeldet ist (oder auf deiner Erfolgsseite), identifiziere ihn mit der E-Mail, mit der er bezahlt: Eine Zahlung, deren Kunden-E-Mail übereinstimmt, wird verknüpft, mit mittlerer Sicherheit. Die E-Mail wird beim Eintreffen gehasht, und nur der Hash wird behalten.
// 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 });
05Verlängerungen, Upgrades und Erstattungen
Diese folgen von selbst: Eine Verlängerung oder ein Upgrade wird so verknüpft wie die erste Zahlung des Abos, eine Erstattung oder Rückbuchung wie die Zahlung, die sie rückgängig macht, mit derselben Sicherheit.
06Prüfen, ob es geklappt hat
Fehlt etwas, oder sieht es bei dir anders aus? Schreib an support@tallybyoutpost.com und nenne die Seite.