Stripe konektor
Stripe konektor
Poveži svoj Stripe nalog sa Brevo putem Tajo za kompletnu sinhronizaciju podataka o plaćanjima, upravljanje životnim ciklusom pretplata i marketing automatizaciju pokretanu prihodima.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Stripe |
| Kategorija | E-commerce |
| Složenost podešavanja | Lako |
| Zvanična integracija | Da |
| Sinhronizovani podaci | Kupci, Plaćanja, Pretplate, Fakture, Događaji |
| Osnovni URL API-ja | https://api.stripe.com/v1 |
Karakteristike
- Sinhronizacija kupaca - Sinhronizacija Stripe kupaca sa Brevo kontaktima uključujući metapodatke
- Praćenje plaćanja - Praćenje uspešnih plaćanja, povrata i neuspelih naknada
- Upravljanje pretplatama - Sinhronizacija događaja životnog ciklusa pretplata za kampanje zadržavanja
- Podaci faktura - Sinhronizacija detalja faktura za automatizaciju posle kupovine i obnove
- Atribucija prihoda - Mapiranje doživotne vrednosti i MRR na Brevo atribute
- Webhook događaji - Obaveštenja o događajima u realnom vremenu za sve aktivnosti plaćanja
- Podrška za više valuta - Obrada plaćanja u više valuta
- Praćenje checkout sesija - Praćenje Stripe Checkout za oporavak napuštenih plaćanja
Preduslovi
Pre nego što započneš, proveri da imaš:
- Stripe nalog sa API pristupom
- Stripe API ključeve (objavivi i tajni ključevi)
- Brevo nalog sa API pristupom
- Tajo nalog
Autentifikacija
Autentifikacija API ključem
Stripe koristi Bearer token autentifikaciju sa tvojim tajnim API ključem.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Bezbednost API ključa
Nikada ne izlažuj tajni ključ u klijentskom kodu. Koristi objavivi ključ za frontend operacije i tajni ključ samo na svom serveru.
Ograničeni API ključevi
Kreiraj ograničene ključeve sa specifičnim dozvolama za pojačanu bezbednost:
- Idi na Stripe Dashboard > Developers > API Keys
- Klikni “Create restricted key”
- Dodeli samo dozvole koje Tajo zahteva
Potrebne dozvole
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readKonfiguracija
Osnovno podešavanje
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: 22Mapiranje polja
Mapiranje Stripe podataka o kupcima na Brevo atribute kontakta:
Default Mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Email adresa kupca (jedinstveni identifikator) |
name optional | string | Puno ime kupca, podeljeno na FIRSTNAME/LASTNAME |
phone optional | string | Mapira se na SMS atribut za WhatsApp/SMS |
currency optional | string | Podrazumevana valuta kupca |
created optional | timestamp | Datum kreiranja kupca u Stripe |
metadata optional | object | Prilagođeni key-value metapodaci iz Stripe |
subscriptions optional | array | Detalji aktivnih pretplata |
balance optional | integer | Stanje naloga kupca u centima |
Mapiranje prilagođenih atributa
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 endpointi
Osnovni endpointi
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /v1/customers | Listanje svih kupaca |
POST | /v1/customers | Kreiranje kupca |
GET | /v1/customers/{id} | Dohvatanje kupca |
POST | /v1/customers/{id} | Ažuriranje kupca |
GET | /v1/charges | Listanje svih naknada |
GET | /v1/payment_intents | Listanje payment intent-ova |
Endpointi za pretplate
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /v1/subscriptions | Listanje pretplata |
GET | /v1/subscriptions/{id} | Dohvatanje pretplate |
GET | /v1/invoices | Listanje faktura |
GET | /v1/invoices/upcoming | Dohvatanje nadolazeće fakture |
GET | /v1/products | Listanje proizvoda |
GET | /v1/prices | Listanje cena |
Endpointi za događaje
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /v1/events | Listanje događaja |
GET | /v1/events/{id} | Dohvatanje događaja |
Događaji
Događaji plaćanja
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
payment_intent.succeeded | Plaćanje završeno | Potvrda porudžbine |
payment_intent.payment_failed | Plaćanje neuspešno | Email za oporavak |
charge.refunded | Povrat obrađen | Obaveštenje o povratu |
charge.dispute.created | Povrat pokrenut | Obrada spora |
Događaji pretplate
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
customer.subscription.created | Nova pretplata | Tok onboardinga |
customer.subscription.updated | Plan promenjen | Tok nadogradnje/snižavanja |
customer.subscription.deleted | Pretplata otkazana | Sprečavanje odljeva |
customer.subscription.trial_will_end | Probni period ističe za 3 dana | Kampanja konverzije probnog perioda |
invoice.payment_failed | Plaćanje pretplate neuspešno | Sekvenca email podsetnika |
Događaji kupaca
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
customer.created | Dodat novi kupac | Email dobrodošlice |
customer.updated | Podaci kupca promenjeni | Sinhronizacija atributa |
customer.deleted | Kupac uklonjen | Čišćenje |
Primeri koda
Inicijalizacija konektora
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});Pokretanje sinhronizacije kupaca
// 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// }Obrada Stripe webhook-ova
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 });});Ograničenja brzine
Stripe primenjuje sledeća ograničenja brzine:
| Tip | Limit | Detalji |
|---|---|---|
| Live mod | 100 zahteva čitanja/sekundi | Po tajnom ključu |
| Live mod | 100 zahteva pisanja/sekundi | Po tajnom ključu |
| Test mod | 25 zahteva/sekundi | Po tajnom ključu |
| Isporuka webhook-ova | 100.000 događaja/dan | Po endpointu |
Obrada ograničenja brzine
Stripe vraća odgovor 429 Too Many Requests kada se prekorače limiti. Implementiraj eksponencijalno usporavanje. Koristi list endpointe sa auto-paginacijom za bulk dohvatanje podataka.
Rešavanje problema
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| 401 Unauthorized | Nevažeći API ključ | Proveri tajni ključ u Stripe Dashboard-u |
| Validacija webhook potpisa neuspešna | Pogrešna webhook tajna | Ponovo kopiraj webhook signing secret iz Dashboard-a |
| Kupac nije sinhronizovan | Nema emaila na Stripe kupcu | Osiguraj da je email postavljen na Stripe zapisima kupaca |
| Nedostaju podaci o pretplati | Nedovoljne dozvole | Ažuriraj dozvole ograničenog ključa |
| Duplirani događaji | Ponovna isporuka webhook-ova | Implementiraj idempotentnost sa ID-ovima događaja |
Debug režim
Uključi detaljno logovanje:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueTestiraj vezu
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedNajbolje prakse
- Koristi ograničene API ključeve - Kreiraj ključeve sa minimalnim potrebnim dozvolama
- Uvek verifikuj webhook potpise - Sprečava lažne webhook događaje
- Obradi idempotentnost - Koristi Stripe ID-ove događaja da sprečiš dupliranu obradu
- Sinhronizuj metapodatke kupaca - Čuvaj podatke relevantne za marketing u Stripe metadata poljima
- Prati isporuku webhook-ova - Proveri Stripe Dashboard za neuspele isporuke
- Prvo koristi test mod - Validiraj integraciju sa Stripe test modom i test sat
Bezbednost
- Autentifikacija API ključem - Pristup zasnovan na tajnom ključu sa podrškom za ograničene ključeve
- Verifikacija webhook potpisa - HMAC SHA-256 validacija potpisa
- TLS enkripcija - Sva API komunikacija enkriptovana putem HTTPS
- PCI usklađenost - Stripe obrađuje PCI DSS usklađenost za podatke o plaćanju
- IP allowlisting - Opcijska IP ograničenja za API pristup