Conector Stripe
Conector Stripe
Conectați contul Stripe la Brevo prin Tajo pentru sincronizarea completă a datelor de plată, gestionarea ciclului de viață al abonamentelor și automatizarea marketingului bazată pe venituri.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Stripe |
| Categorie | E-commerce |
| Complexitate configurare | Ușoară |
| Integrare oficială | Da |
| Date sincronizate | Clienți, Plăți, Abonamente, Facturi, Evenimente |
| URL de bază API | https://api.stripe.com/v1 |
Funcționalități
- Sincronizare clienți - Sincronizați clienții Stripe cu contactele Brevo inclusiv metadatele
- Urmărire plăți - Urmăriți plățile reușite, rambursările și taxele eșuate
- Gestionare abonamente - Sincronizați evenimentele de ciclu de viață al abonamentelor pentru campanii de retenție
- Date facturi - Sincronizați detaliile facturilor pentru automatizarea post-cumpărare și reînnoire
- Atribuire venituri - Mapați valoarea de viață și MRR la atributele Brevo
- Evenimente webhook - Notificări de evenimente în timp real pentru toate activitățile de plată
- Suport multi-valută - Gestionați plăți în mai multe valute
- Urmărire sesiune Checkout - Urmăriți Stripe Checkout pentru recuperarea plăților abandonate
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont Stripe cu acces API
- Chei API Stripe (chei publicabile și secrete)
- Un cont Brevo cu acces API
- Un cont Tajo
Autentificare
Autentificare cu cheie API
Stripe utilizează autentificarea cu token Bearer cu cheia secretă API.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Securitate cheie API
Nu expuneți niciodată cheia secretă în codul client. Utilizați cheia publicabilă pentru operațiunile frontend și cheia secretă doar pe serverul dvs.
Chei API restricționate
Creați chei restricționate cu permisiuni specifice pentru securitate sporită:
- Mergeți la Stripe Dashboard > Developers > API Keys
- Faceți clic pe “Create restricted key”
- Acordați doar permisiunile necesare Tajo
Permisiuni necesare
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readConfigurare
Configurare de bază
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: 22Mapare câmpuri
Mapați datele clienților Stripe la atributele de contact Brevo:
Mapări implicite
| Parameter | Type | Description |
|---|---|---|
email required | string | Adresa de e-mail a clientului (identificator unic) |
name optional | string | Numele complet al clientului, împărțit în FIRSTNAME/LASTNAME |
phone optional | string | Mapează la atributul SMS pentru WhatsApp/SMS |
currency optional | string | Valuta implicită a clientului |
created optional | timestamp | Data creării clientului în Stripe |
metadata optional | object | Metadate personalizate cheie-valoare din Stripe |
subscriptions optional | array | Detalii abonamente active |
balance optional | integer | Soldul contului clientului în cenți |
Mapare atribute personalizate
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_SOURCEPuncte finale API
Puncte finale principale
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v1/customers | Listează toți clienții |
POST | /v1/customers | Creează un client |
GET | /v1/customers/{id} | Recuperează un client |
POST | /v1/customers/{id} | Actualizează un client |
GET | /v1/charges | Listează toate taxele |
GET | /v1/payment_intents | Listează intențiile de plată |
Puncte finale abonamente
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v1/subscriptions | Listează abonamentele |
GET | /v1/subscriptions/{id} | Recuperează un abonament |
GET | /v1/invoices | Listează facturile |
GET | /v1/invoices/upcoming | Recuperează factura viitoare |
GET | /v1/products | Listează produsele |
GET | /v1/prices | Listează prețurile |
Puncte finale evenimente
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /v1/events | Listează evenimentele |
GET | /v1/events/{id} | Recuperează un eveniment |
Evenimente
Evenimente de plată
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
payment_intent.succeeded | Plată finalizată | Confirmare comandă |
payment_intent.payment_failed | Plată eșuată | E-mail de recuperare |
charge.refunded | Rambursare procesată | Notificare rambursare |
charge.dispute.created | Contestație inițiată | Gestionare contestație |
Evenimente abonamente
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
customer.subscription.created | Abonament nou | Flux de onboarding |
customer.subscription.updated | Plan modificat | Flux upgrade/downgrade |
customer.subscription.deleted | Abonament anulat | Prevenire churn |
customer.subscription.trial_will_end | Perioadă de probă se termină în 3 zile | Campanie conversie perioadă de probă |
invoice.payment_failed | Plată abonament eșuată | Secvență e-mail dunning |
Evenimente clienți
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
customer.created | Client nou adăugat | E-mail de bun venit |
customer.updated | Date client modificate | Sincronizare atribute |
customer.deleted | Client eliminat | Curățare |
Exemple de cod
Inițializare conector
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});Rulare sincronizare clienți
// 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// }Gestionare webhook-uri Stripe
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 });});Limite de rată
Stripe aplică următoarele limite de rată:
| Tip | Limită | Detalii |
|---|---|---|
| Mod live | 100 cereri de citire/secundă | Per cheie secretă |
| Mod live | 100 cereri de scriere/secundă | Per cheie secretă |
| Mod test | 25 cereri/secundă | Per cheie secretă |
| Livrare webhook | 100.000 evenimente/zi | Per punct final |
Gestionare limite de rată
Stripe returnează un răspuns 429 Too Many Requests când limitele sunt depășite. Implementați backoff exponențial. Utilizați punctele finale de listare cu auto-paginare pentru recuperarea datelor în bloc.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Cheie API invalidă | Verificați cheia secretă în Stripe Dashboard |
| Eșec semnătură webhook | Secret webhook incorect | Re-copiați secretul de semnare webhook din Dashboard |
| Client nesincronizat | Fără e-mail pe clientul Stripe | Asigurați-vă că e-mailul este setat pe înregistrările clientului Stripe |
| Date abonament lipsă | Permisiuni insuficiente | Actualizați permisiunile cheii restricționate |
| Evenimente duplicate | Livrare webhook cu reîncercare | Implementați idempotența cu ID-uri de eveniment |
Modul de depanare
Activați jurnalizarea verbosă:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueTestare conexiune
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedBune practici
- Utilizați chei API restricționate - Creați chei cu permisiunile minime necesare
- Verificați întotdeauna semnăturile webhook - Preveniți evenimentele webhook falsificate
- Gestionați idempotența - Utilizați ID-urile evenimentelor Stripe pentru a preveni procesarea duplicată
- Sincronizați metadatele clienților - Stocați datele relevante pentru marketing în câmpurile de metadate Stripe
- Monitorizați livrarea webhook-urilor - Verificați Stripe Dashboard pentru livrări eșuate
- Utilizați mai întâi modul de test - Validați integrarea cu modul de test Stripe și ceasuri de test
Securitate
- Autentificare cu cheie API - Acces bazat pe cheie secretă cu suport cheie restricționată
- Verificare semnătură webhook - Validare semnătură HMAC SHA-256
- Criptare TLS - Toate comunicațiile API criptate prin HTTPS
- Conformitate PCI - Stripe gestionează conformitatea PCI DSS pentru datele de plată
- Allowlisting IP - Restricții IP opționale pentru accesul API