Stripe Connector
Stripe Connector
Forbind din Stripe-konto til Brevo via Tajo for komplet synkronisering af betalingsdata, håndtering af abonnementslivscyklus og omsætningsdrevet marketingautomatisering.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Stripe |
| Kategori | E-handel |
| Opsætningskompleksitet | Let |
| Officiel integration | Ja |
| Synkroniserede data | Kunder, betalinger, abonnementer, fakturaer, hændelser |
| API-base-URL | https://api.stripe.com/v1 |
Funktioner
- Kundesynkronisering - Synkronisér Stripe-kunder med Brevo-kontakter inklusive metadata
- Betalingssporing - Spor vellykkede betalinger, refusioner og mislykkede debiteringer
- Abonnementshåndtering - Synkronisér abonnementslivscyklushændelser til retentionskampagner
- Fakturadata - Synkronisér fakturadetaljer til automatisering efter køb og fornyelse
- Omsætningsattribution - Knyt livstidsværdi og MRR til Brevo-attributter
- Webhook-hændelser - Realtidsnotifikationer om hændelser for alle betalingsaktiviteter
- Understøttelse af flere valutaer - Håndtér betalinger på tværs af flere valutaer
- Sporing af checkout-sessioner - Spor Stripe Checkout til genoprettelse af forladte betalinger
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Stripe-konto med API-adgang
- Stripe API-nøgler (publishable og secret keys)
- En Brevo-konto med API-adgang
- En Tajo-konto
Autentifikation
API-nøgle-autentifikation
Stripe bruger bearer-token-autentifikation med din secret API-nøgle.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Sikkerhed for API-nøgler
Eksponér aldrig din secret-nøgle i klientside-kode. Brug publishable-nøglen til frontend-operationer og secret-nøglen kun på din server.
Begrænsede API-nøgler
Opret begrænsede nøgler med specifikke rettigheder for øget sikkerhed:
- Gå til Stripe Dashboard > Developers > API Keys
- Klik “Create restricted key”
- Giv kun de rettigheder, Tajo kræver
Påkrævede rettigheder
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readKonfiguration
Grundlæggende opsætning
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
Knyt Stripe-kundedata til Brevo-kontaktattributter:
Standardmappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Kundens e-mailadresse (unik identifikator) |
name optional | string | Kundens fulde navn, opdelt i FIRSTNAME/LASTNAME |
phone optional | string | Mapper til SMS-attribut for WhatsApp/SMS |
currency optional | string | Standardvaluta for kunden |
created optional | timestamp | Oprettelsesdato for kunde i Stripe |
metadata optional | object | Brugerdefinerede nøgleværdi-metadata fra Stripe |
subscriptions optional | array | Aktive abonnementsdetaljer |
balance optional | integer | Kundens kontosaldo i cents |
Brugerdefineret attributmapping
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-endpoints
Kerne-endpoints
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v1/customers | Vis alle kunder |
POST | /v1/customers | Opret en kunde |
GET | /v1/customers/{id} | Hent en kunde |
POST | /v1/customers/{id} | Opdatér en kunde |
GET | /v1/charges | Vis alle debiteringer |
GET | /v1/payment_intents | Vis payment intents |
Abonnement-endpoints
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v1/subscriptions | Vis abonnementer |
GET | /v1/subscriptions/{id} | Hent et abonnement |
GET | /v1/invoices | Vis fakturaer |
GET | /v1/invoices/upcoming | Hent kommende faktura |
GET | /v1/products | Vis produkter |
GET | /v1/prices | Vis priser |
Hændelses-endpoints
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /v1/events | Vis hændelser |
GET | /v1/events/{id} | Hent en hændelse |
Hændelser
Betalingshændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
payment_intent.succeeded | Betaling gennemført | Ordrebekræftelse |
payment_intent.payment_failed | Betaling mislykkedes | Genoprettelsesmail |
charge.refunded | Refusion behandlet | Refusionsnotifikation |
charge.dispute.created | Chargeback indledt | Håndtering af tvist |
Abonnementshændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
customer.subscription.created | Nyt abonnement | Onboarding-flow |
customer.subscription.updated | Plan ændret | Upgrade/downgrade-flow |
customer.subscription.deleted | Abonnement annulleret | Churn-forebyggelse |
customer.subscription.trial_will_end | Trial slutter om 3 dage | Trial-konverteringskampagne |
invoice.payment_failed | Abonnementsbetaling mislykkedes | Dunning-e-mailsekvens |
Kundehændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
customer.created | Ny kunde tilføjet | Velkomstmail |
customer.updated | Kundedata ændret | Attributsynkronisering |
customer.deleted | Kunde fjernet | Oprydning |
Kodeeksempler
Initialisér konnektor
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});Kø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åndtér 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 });});Ratebegrænsninger
Stripe håndhæver følgende ratebegrænsninger:
| Type | Grænse | Detaljer |
|---|---|---|
| Live-tilstand | 100 læseforespørgsler/sekund | Per secret-nøgle |
| Live-tilstand | 100 skriveforespørgsler/sekund | Per secret-nøgle |
| Testtilstand | 25 forespørgsler/sekund | Per secret-nøgle |
| Webhook-levering | 100.000 hændelser/dag | Per endpoint |
Håndtering af ratebegrænsninger
Stripe returnerer svaret 429 Too Many Requests, når grænserne overskrides. Implementér eksponentiel backoff. Brug list-endpoints med auto-paginering til massehentning af data.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig API-nøgle | Tjek secret-nøgle i Stripe Dashboard |
| Webhook-signatur fejler | Forkert webhook-secret | Genkopiér webhook-signing-secret fra Dashboard |
| Kunde ikke synkroniseret | Ingen e-mail på Stripe-kunde | Sørg for, at e-mail er sat på Stripe-kunderegistreringer |
| Manglende abonnementsdata | Utilstrækkelige rettigheder | Opdatér begrænsede nøglerettigheder |
| Duplikerede hændelser | Webhook-retry-levering | Implementér idempotens med hændelses-id’er |
Fejlfindingstilstand
Aktivér udførlig logning:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueTest forbindelse
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedBest practices
- Brug begrænsede API-nøgler - Opret nøgler med minimumskrævede rettigheder
- Verificér altid webhook-signaturer - Undgå forfalskede webhook-hændelser
- Håndtér idempotens - Brug Stripe-hændelses-id’er til at forhindre duplikeret behandling
- Synkronisér kundemetadata - Gem marketingrelevante data i Stripe-metadata-felter
- Overvåg webhook-levering - Tjek Stripe Dashboard for mislykkede leveringer
- Brug testtilstand først - Validér din integration med Stripe-testtilstand og test-clocks
Sikkerhed
- API-nøgle-autentifikation - Secret-nøglebaseret adgang med understøttelse af begrænsede nøgler
- Webhook-signaturverifikation - HMAC SHA-256-signaturvalidering
- TLS-kryptering - Al API-kommunikation krypteret via HTTPS
- PCI-overholdelse - Stripe håndterer PCI DSS-overholdelse for betalingsdata
- IP-whitelisting - Valgfri IP-restriktioner for API-adgang