Stripe
Spor salg fra Stripe Checkout og Payment Links med en webhook – engangskøb, abonnementer og refusioner.
Tager kunderne betaling i Stripe Checkout eller via Payment Links på jeres eget site, melder Stripe salget direkte til os gennem en webhook. Det dækker engangskøb, abonnementer og fornyelser. Der skal ikke et sporingsscript på siden – men klik-id'et skal med til Stripe.
Før du starter
- Adgang til jeres Stripe-dashboard.
- Adgang til koden, der opretter Checkout Sessions – eller til jeres Payment Links.
- Jeres butiks-id. Adressen under Program → Opsætning har det sat ind; her står
DIN_BUTIKi stedet.
Vi beder aldrig om jeres Stripe-API-nøgle. I giver os kun webhookens signing secret, som udelukkende kan bekræfte, at en besked kommer fra jer.
1. Opret webhooken
I Stripe: gå til Workbench → Webhooks → Create an event destination.
- Vælg Your account og payload-formatet Snapshot – ikke Thin, som Stripe foreslår. Thin sender ikke ordredataene, og så kan salget ikke registreres.
- Vælg begivenhederne:
checkout.session.completedcheckout.session.async_payment_succeededinvoice.payment_succeededcustomer.subscription.deletedcharge.refundedcharge.dispute.created
- Vælg Webhook endpoint, og brug adressen:
https://app.affilyflow.com/api/stripe/webhook/DIN_BUTIKinvoice.payment_succeeded og customer.subscription.deleted skal kun med, når I sælger abonnementer med provision på fornyelser.
2. Indsæt signing secret
Kopier endpointets Signing secret (starter med whsec_), og indsæt den under Opsætning i Affilyflow. Uden den afviser vi alle hændelser. Send den ikke i en mail – det er butiksejeren, der indsætter den.
3. Send klik-id'et med
Affiliates sender kunder til jeres site med ?afid=… i adressen. Gem klik-id'et i en cookie på jeres topdomæne, når kunden lander, så det overlever skiftet fra www til fx et app-subdomæne:
// On every page: keep the click ID from ?afid= in a cookie on your main domain (90 days)
const afid = new URLSearchParams(location.search).get('afid');
if (afid && /^c_[A-Za-z0-9_-]{4,64}$/.test(afid)) {
const domain = location.hostname.split('.').slice(-2).join('.');
document.cookie = 'af_click=' + afid + '; domain=.' + domain + '; path=/; max-age=7776000; SameSite=Lax; Secure';
}
// On your server, read the af_click cookie from the request when creating the Checkout Session.Send det med som client_reference_id, når I opretter Checkout Session:
// stripe.checkout.sessions.create({ ...,
client_reference_id: req.cookies.af_click || undefined,
// })- Domænet regnes som de to sidste led af adressen. Har jeres domæne flere led (fx
.co.uk), så ret det til jeres eget. - Opretter I sessionen på serveren, skal værdien sendes med fra browseren i forespørgslen.
- Bruger I Payment Links, så sæt klik-id'et på linket som
?client_reference_id=….
Tjek bagefter i Stripe, at client_reference_id på begivenheden checkout.session.completed er "c_…" og ikke null. Er den null, nåede klik-id'et ikke frem – tjek cookie-domænet.
Hvad Stripe melder
- Beløbet. Provisionen regnes af betalingens beløb uden moms, direkte fra Stripe.
- Valuta. Salg i andre valutaer omregnes til kroner med ECB-kursen på salgstidspunktet, og kursen låses på salget.
- Abonnementer. Slå recurring provision til under Program, så giver hver fornyelse automatisk provision, så længe programmet siger. Samme faktura kan aldrig tælle to gange.
- Refusioner. En hel refusion eller en indsigelse afviser salget, og affiliaten får besked. En delvis refusion nedsætter provision og gebyr i samme forhold. Betaler programmet et fast beløb pr. salg, ændres det ikke af en delvis refusion.
Test
Stripe sender ikke testbetalinger videre til os – betalinger i testtilstand registreres ikke. Vil I teste:
- Tryk Åbn testlink under testtrinnet i Opsætning.
- Køb noget billigt med et rigtigt kort i samme browser.
- Refunder købet bagefter i Stripe.
Live-testen i Opsætning viser testklikket og købet. Ellers bekræftes sporingen af sig selv ved det første affiliate-køb, og programmet bliver synligt for affiliates, når vi har modtaget den første hændelse fra jeres webhook.
Mangler du noget?
Skriv til os – vi svarer hurtigt, og siden bliver rettet.