Stripe-kobling
Stripe-kobling
Koble Stripe-kontoen din til Brevo via Tajo for fullstendig synkronisering av betalingsdata, administrasjon av abonnementslivssyklus og inntektsdrevet markedsføringsautomatisering.
Oversikt
| Egenskap | Verdi |
|---|---|
| Plattform | Stripe |
| Kategori | E-handel |
| Oppsettskompleksitet | Enkel |
| Offisiell integrasjon | Ja |
| Synkroniserte data | Kunder, betalinger, abonnementer, fakturaer, hendelser |
| API Base URL | https://api.stripe.com/v1 |
Funksjoner
- Kundesynkronisering - Synkroniser Stripe-kunder med Brevo-kontakter, inkludert metadata
- Betalingssporing - Spor vellykkede betalinger, refusjoner og mislykkede belastninger
- Administrasjon av abonnementer - Synkroniser hendelser i abonnementslivssyklus for retensjonskampanjer
- Fakturadata - Synkroniser fakturadetaljer for automatisering etter kjøp og fornyelse
- Inntektsattribusjon - Mapp livstidsverdi og MRR til Brevo-attributter
- Webhook-hendelser - Sanntidsvarsler om hendelser for all betalingsaktivitet
- Støtte for flere valutaer - Håndter betalinger på tvers av flere valutaer
- Sporing av Checkout-økt - Spor Stripe Checkout for gjenoppretting av forlatte betalinger
Forutsetninger
Før du begynner, sørg for at du har:
- En Stripe-konto med API-tilgang
- Stripe API-nøkler (publishable og secret keys)
- En Brevo-konto med API-tilgang
- En Tajo-konto
Autentisering
API-nøkkelautentisering
Stripe bruker bearer-tokenautentisering med din secret API-nøkkel.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:API-nøkkelsikkerhet
Du må aldri eksponere din secret key i klientsidekode. Bruk publishable key for frontend-operasjoner og secret key kun på serveren din.
Begrensede API-nøkler
Opprett begrensede nøkler med spesifikke tillatelser for økt sikkerhet:
- Gå til Stripe Dashboard > Developers > API Keys
- Klikk “Create restricted key”
- Gi kun de tillatelsene Tajo krever
Påkrevde tillatelser
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readKonfigurasjon
Grunnleggende oppsett
connectors: stripe: enabled: true secret_key: "${STRIPE_SECRET_KEY}" webhook_secret: "${STRIPE_WEBHOOK_SECRET}"
# Data sync options sync: customers: true payments: true subscriptions: true invoices: true products: true
# Brevo list assignment lists: all_customers: 20 subscribers: 21 churned: 22Feltmapping
Mapp Stripe-kundedata til Brevo-kontaktattributter:
Standardmappinger
| Parameter | Type | Description |
|---|---|---|
email required | string | Kundens e-postadresse (unik identifikator) |
name optional | string | Kundens fulle navn, delt i FIRSTNAME/LASTNAME |
phone optional | string | Mappes til SMS-attributt for WhatsApp/SMS |
currency optional | string | Standardvaluta for kunden |
created optional | timestamp | Opprettelsesdato for kunde i Stripe |
metadata optional | object | Egendefinerte nøkkel-verdi metadata fra Stripe |
subscriptions optional | array | Detaljer om aktive abonnementer |
balance optional | integer | Kundens kontosaldo i cent |
Mapping av egendefinerte attributter
field_mapping: # Standard fields email: email name: FULLNAME phone: SMS
# Payment metrics total_spent: TOTAL_SPENT payment_count: PAYMENT_COUNT last_payment_date: LAST_PAYMENT_DATE average_order_value: AOV
# Subscription fields subscription_status: SUB_STATUS plan_name: PLAN_NAME mrr: MONTHLY_REVENUE subscription_start: SUB_START_DATE
# Custom metadata metadata.customer_tier: VIP_TIER metadata.referral_source: REFERRAL_SOURCEAPI-endepunkter
Kjerne-endepunkter
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /v1/customers | List alle kunder |
POST | /v1/customers | Opprett en kunde |
GET | /v1/customers/{id} | Hent en kunde |
POST | /v1/customers/{id} | Oppdater en kunde |
GET | /v1/charges | List alle belastninger |
GET | /v1/payment_intents | List payment intents |
Abonnements-endepunkter
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /v1/subscriptions | List abonnementer |
GET | /v1/subscriptions/{id} | Hent et abonnement |
GET | /v1/invoices | List fakturaer |
GET | /v1/invoices/upcoming | Hent kommende faktura |
GET | /v1/products | List produkter |
GET | /v1/prices | List priser |
Hendelses-endepunkter
| Metode | Endepunkt | Beskrivelse |
|---|---|---|
GET | /v1/events | List hendelser |
GET | /v1/events/{id} | Hent en hendelse |
Hendelser
Betalingshendelser
| Hendelse | Trigger | Bruksområde |
|---|---|---|
payment_intent.succeeded | Betaling fullført | Ordrebekreftelse |
payment_intent.payment_failed | Betaling mislyktes | Gjenopprettingse-post |
charge.refunded | Refusjon behandlet | Refusjonsvarsel |
charge.dispute.created | Chargeback startet | Tvistehåndtering |
Abonnementshendelser
| Hendelse | Trigger | Bruksområde |
|---|---|---|
customer.subscription.created | Nytt abonnement | Onboardingflyt |
customer.subscription.updated | Plan endret | Oppgradering/nedgraderingsflyt |
customer.subscription.deleted | Abonnement kansellert | Forebygging av frafall |
customer.subscription.trial_will_end | Prøveperiode slutter om 3 dager | Konverteringskampanje |
invoice.payment_failed | Abonnementsbetaling mislyktes | Purresekvens |
Kundehendelser
| Hendelse | Trigger | Bruksområde |
|---|---|---|
customer.created | Ny kunde lagt til | Velkomste-post |
customer.updated | Kundedata endret | Attributtsynkronisering |
customer.deleted | Kunde fjernet | Opprydding |
Kodeeksempler
Initialiser koblingen
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Stripeawait tajo.connectors.connect('stripe', { secretKey: process.env.STRIPE_SECRET_KEY, webhookSecret: process.env.STRIPE_WEBHOOK_SECRET});Kjør kundesynkronisering
// Full historical syncawait tajo.connectors.sync('stripe', { type: 'full', resources: ['customers', 'subscriptions', 'payments'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('stripe');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// customersSynced: 12500,// subscriptionsSynced: 8200,// paymentsSynced: 45000// }Håndter Stripe-webhooks
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
app.post('/webhooks/stripe', async (req, res) => { const sig = req.headers['stripe-signature'];
let event; try { event = stripe.webhooks.constructEvent( req.body, sig, process.env.STRIPE_WEBHOOK_SECRET ); } catch (err) { return res.status(400).send(`Webhook Error: ${err.message}`); }
// Forward to Tajo for Brevo sync await tajo.connectors.handleWebhook('stripe', { type: event.type, data: event.data.object });
res.status(200).json({ received: true });});Hastighetsgrenser
Stripe håndhever følgende hastighetsgrenser:
| Type | Grense | Detaljer |
|---|---|---|
| Live-modus | 100 lese-forespørsler/sekund | Per secret key |
| Live-modus | 100 skrive-forespørsler/sekund | Per secret key |
| Testmodus | 25 forespørsler/sekund | Per secret key |
| Webhook-levering | 100 000 hendelser/dag | Per endepunkt |
Håndtering av hastighetsgrenser
Stripe returnerer et 429 Too Many Requests-svar når grenser overskrides. Implementer eksponentiell backoff. Bruk liste-endepunkter med automatisk paginering for bulk-datahenting.
Feilsøking
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig API-nøkkel | Sjekk secret key i Stripe Dashboard |
| Webhook-signatur mislyktes | Feil webhook-hemmelighet | Kopier webhook signing secret på nytt fra Dashboard |
| Kunde ikke synkronisert | Ingen e-post på Stripe-kunde | Sørg for at e-post er satt på Stripe-kundepostene |
| Manglende abonnementsdata | Utilstrekkelige tillatelser | Oppdater tillatelser for begrenset nøkkel |
| Dupliserte hendelser | Webhook-forsøkleveranse | Implementer idempotens med hendelses-ID-er |
Feilsøkingsmodus
Aktiver detaljert logging:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueTest tilkobling
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedBeste praksis
- Bruk begrensede API-nøkler - Opprett nøkler med minimum nødvendige tillatelser
- Verifiser alltid webhook-signaturer - Forhindre forfalskede webhook-hendelser
- Håndter idempotens - Bruk Stripe hendelses-ID-er for å forhindre duplikatbehandling
- Synkroniser kundemetadata - Lagre markedsføringsrelevante data i Stripe metadata-felt
- Overvåk webhook-levering - Sjekk Stripe Dashboard for mislykkede leveranser
- Bruk testmodus først - Valider integrasjonen din med Stripe testmodus og test clocks
Sikkerhet
- API-nøkkelautentisering - Tilgang basert på secret key med støtte for begrensede nøkler
- Verifisering av webhook-signatur - HMAC SHA-256-signaturvalidering
- TLS-kryptering - All API-kommunikasjon kryptert via HTTPS
- PCI-samsvar - Stripe håndterer PCI DSS-samsvar for betalingsdata
- IP-hvitelisting - Valgfrie IP-restriksjoner for API-tilgang