Stripe Connector
Stripe Connector
Poveži svoj Stripe račun z Brevo prek Tajo za popolno sinhronizacijo podatkov o plačilih, upravljanje življenjskega cikla naročnin in marketinško avtomatizacijo, ki jo poganja prihodek.
Pregled
| Lastnost | Vrednost |
|---|---|
| Platforma | Stripe |
| Kategorija | E-commerce |
| Zahtevnost nastavitve | Enostavna |
| Uradna integracija | Da |
| Sinhronizirani podatki | Stranke, plačila, naročnine, računi, dogodki |
| API Base URL | https://api.stripe.com/v1 |
Funkcionalnosti
- Sinhronizacija strank – sinhroniziraj Stripe stranke s stiki Brevo, vključno z metapodatki
- Sledenje plačilom – sledi uspešnim plačilom, vračilom in neuspelim bremenitvam
- Upravljanje naročnin – sinhroniziraj dogodke življenjskega cikla naročnin za retenacijske kampanje
- Podatki o računih – sinhroniziraj podrobnosti računov za avtomatizacijo po nakupu in obnavljanje
- Pripisovanje prihodka – preslikaj življenjsko vrednost in MRR v atribute Brevo
- Webhook dogodki – obvestila o dogodkih v realnem času za vse plačilne aktivnosti
- Podpora za več valut – obravnavaj plačila v več valutah
- Sledenje Checkout sejam – spremljaj Stripe Checkout za obnovo neuspelih plačil
Predpogoji
Preden začneš, se prepričaj, da imaš:
- Stripe račun z dostopom do API
- Stripe API ključe (publishable in secret keys)
- Brevo račun z dostopom do API
- Tajo račun
Avtentikacija
Avtentikacija z API ključem
Stripe uporablja bearer token avtentikacijo s tvojim secret API ključem.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Varnost API ključa
Nikoli ne izpostavljaj svojega secret ključa v kodi na strani odjemalca. Za frontend operacije uporabljaj publishable ključ, secret ključ pa samo na strežniku.
Omejeni API ključi
Za večjo varnost ustvari omejene ključe z določenimi dovoljenji:
- Pojdi v Stripe Dashboard > Developers > API Keys
- Klikni “Create restricted key”
- Odobri samo dovoljenja, ki jih Tajo potrebuje
Zahtevana dovoljenja
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readKonfiguracija
Osnovna nastavitev
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: 22Preslikava polj
Preslikaj podatke strank Stripe v atribute stikov Brevo:
Privzete preslikave
| Parameter | Type | Description |
|---|---|---|
email required | string | E-mail naslov stranke (enolični identifikator) |
name optional | string | Polno ime stranke, razdeljeno na FIRSTNAME/LASTNAME |
phone optional | string | Preslika se v atribut SMS za WhatsApp/SMS |
currency optional | string | Privzeta valuta stranke |
created optional | timestamp | Datum ustvarjanja stranke v Stripe |
metadata optional | object | Metapodatki po meri (ključ-vrednost) iz Stripe |
subscriptions optional | array | Podrobnosti aktivnih naročnin |
balance optional | integer | Stanje računa stranke v centih |
Preslikava atributov po meri
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 končne točke
Osnovne končne točke
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /v1/customers | Seznam vseh strank |
POST | /v1/customers | Ustvari stranko |
GET | /v1/customers/{id} | Pridobi stranko |
POST | /v1/customers/{id} | Posodobi stranko |
GET | /v1/charges | Seznam vseh bremenitev |
GET | /v1/payment_intents | Seznam plačilnih namenov |
Končne točke za naročnine
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /v1/subscriptions | Seznam naročnin |
GET | /v1/subscriptions/{id} | Pridobi naročnino |
GET | /v1/invoices | Seznam računov |
GET | /v1/invoices/upcoming | Pridobi prihajajoči račun |
GET | /v1/products | Seznam izdelkov |
GET | /v1/prices | Seznam cen |
Končne točke za dogodke
| Metoda | Končna točka | Opis |
|---|---|---|
GET | /v1/events | Seznam dogodkov |
GET | /v1/events/{id} | Pridobi dogodek |
Dogodki
Dogodki plačil
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
payment_intent.succeeded | Plačilo zaključeno | Potrditev naročila |
payment_intent.payment_failed | Plačilo neuspelo | E-mail za obnovo |
charge.refunded | Obdelano vračilo | Obvestilo o vračilu |
charge.dispute.created | Sprožen chargeback | Obravnava spora |
Dogodki naročnin
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
customer.subscription.created | Nova naročnina | Uvajalni tok |
customer.subscription.updated | Spremenjen plan | Tok nadgradnje/znižanja |
customer.subscription.deleted | Preklicana naročnina | Preprečevanje odhoda |
customer.subscription.trial_will_end | Preizkus se izteče v 3 dneh | Kampanja za pretvorbo preizkusa |
invoice.payment_failed | Neuspelo plačilo naročnine | Sekvenca dunning e-mailov |
Dogodki strank
| Dogodek | Sprožilec | Primer uporabe |
|---|---|---|
customer.created | Dodana nova stranka | Pozdravni e-mail |
customer.updated | Spremenjeni podatki stranke | Sinhronizacija atributov |
customer.deleted | Odstranjena stranka | Čiščenje |
Primeri kode
Inicializacija konektorja
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});Zagon sinhronizacije strank
// 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// }Obravnava Stripe webhookov
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 });});Omejitve zahtevkov
Stripe uveljavlja naslednje omejitve zahtevkov:
| Tip | Omejitev | Podrobnosti |
|---|---|---|
| Live mode | 100 read zahtevkov/sekundo | Na secret key |
| Live mode | 100 write zahtevkov/sekundo | Na secret key |
| Test mode | 25 zahtevkov/sekundo | Na secret key |
| Dostava webhookov | 100.000 dogodkov/dan | Na končno točko |
Obravnava omejitev zahtevkov
Stripe vrne odgovor 429 Too Many Requests, ko so omejitve presežene. Implementiraj eksponentno zakasnitev. Za množični prenos podatkov uporabi list končne točke z samodejno paginacijo.
Odpravljanje težav
Pogoste težave
| Težava | Vzrok | Rešitev |
|---|---|---|
| 401 Unauthorized | Neveljaven API ključ | Preveri secret key v Stripe Dashboard |
| Neuspel podpis webhooka | Napačen webhook secret | Ponovno skopiraj webhook signing secret iz Dashboard |
| Stranka ni sinhronizirana | Ni e-maila na Stripe stranki | Zagotovi, da so e-maili nastavljeni na Stripe strankah |
| Manjkajo podatki o naročnini | Nezadostna dovoljenja | Posodobi dovoljenja omejenega ključa |
| Podvojeni dogodki | Webhook ponovna dostava | Implementiraj idempotentnost z ID-ji dogodkov |
Način odpravljanja napak
Omogoči podrobno beleženje:
connectors: stripe: debug: true log_level: verbose log_webhooks: truePreizkus povezave
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedNajboljše prakse
- Uporabi omejene API ključe – ustvari ključe z minimalno potrebnimi dovoljenji
- Vedno preveri webhook podpise – prepreči ponarejene webhook dogodke
- Obravnavaj idempotentnost – uporabi ID-je Stripe dogodkov za preprečevanje podvojene obdelave
- Sinhroniziraj metapodatke stranke – shrani marketinško pomembne podatke v Stripe metadata polja
- Spremljaj dostavo webhookov – preveri Stripe Dashboard za neuspele dostave
- Najprej uporabi test način – validiraj svojo integracijo s Stripe test mode in test clocks
Varnost
- Avtentikacija z API ključem – dostop na osnovi secret ključa z podporo za omejene ključe
- Preverjanje webhook podpisov – validacija HMAC SHA-256 podpisov
- TLS šifriranje – vsa API komunikacija šifrirana prek HTTPS
- PCI skladnost – Stripe obravnava PCI DSS skladnost za plačilne podatke
- Seznam dovoljenih IP – opcijske IP omejitve za dostop do API