Stripe конектор
Stripe конектор
Свържи своя акаунт в Stripe с Brevo чрез Tajo за пълна синхронизация на данни за плащания, управление на жизнения цикъл на абонаментите и маркетингова автоматизация, задвижвана от приходи.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Stripe |
| Категория | E-commerce |
| Сложност на настройка | Лесна |
| Официална интеграция | Да |
| Синхронизирани данни | Клиенти, плащания, абонаменти, фактури, събития |
| Base URL на API | https://api.stripe.com/v1 |
Функции
- Синхронизация на клиенти – Синхронизирай клиентите от Stripe с контактите в Brevo, включително метаданни
- Проследяване на плащания – Проследявай успешни плащания, рефанди и неуспешни chargeове
- Управление на абонаменти – Синхронизирай събития от жизнения цикъл на абонамент за кампании за задържане
- Данни за фактури – Синхронизирай детайли от фактури за автоматизация след покупка и подновяване
- Атрибуция на приходи – Мапвай lifetime value и MRR към атрибути в Brevo
- Уебхук събития – Известия в реално време за всички дейности по плащания
- Поддръжка на много валути – Обработка на плащания в множество валути
- Проследяване на checkout сесии – Проследявай Stripe Checkout за възстановяване на изоставени плащания
Предварителни условия
Преди да започнеш, увери се, че имаш:
- Акаунт в Stripe с API достъп
- API ключове на Stripe (publishable и secret ключове)
- Акаунт в Brevo с API достъп
- Акаунт в Tajo
Автентикация
Автентикация с API ключ
Stripe използва bearer token автентикация с твоя secret API ключ.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:Сигурност на API ключа
Никога не излагай своя secret key в client-side код. Използвай publishable key за frontend операции и secret key само на твоя сървър.
Ограничени API ключове
Създавай ограничени ключове с конкретни разрешения за повишена сигурност:
- Отиди в Stripe Dashboard > Developers > API Keys
- Щракни върху “Create restricted key”
- Предостави само разрешенията, които Tajo изисква
Необходими разрешения
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readКонфигурация
Основна настройка
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: 22Мапване на полета
Мапвай данни за клиенти в Stripe към атрибути на контактите в Brevo:
Мапвания по подразбиране
| Parameter | Type | Description |
|---|---|---|
email required | string | Имейл адрес на клиента (уникален идентификатор) |
name optional | string | Пълно име на клиента, разделено на FIRSTNAME/LASTNAME |
phone optional | string | Мапва към атрибут SMS за WhatsApp/SMS |
currency optional | string | Валута по подразбиране за клиента |
created optional | timestamp | Дата на създаване на клиента в Stripe |
metadata optional | object | Персонализирани ключ-стойност метаданни от Stripe |
subscriptions optional | array | Детайли за активни абонаменти |
balance optional | integer | Баланс на акаунта на клиента в центове |
Мапване на персонализирани атрибути
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 крайни точки
Основни крайни точки
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /v1/customers | Списък с всички клиенти |
POST | /v1/customers | Създаване на клиент |
GET | /v1/customers/{id} | Получаване на клиент |
POST | /v1/customers/{id} | Обновяване на клиент |
GET | /v1/charges | Списък с всички chargeове |
GET | /v1/payment_intents | Списък с payment intents |
Крайни точки за абонаменти
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /v1/subscriptions | Списък с абонаменти |
GET | /v1/subscriptions/{id} | Получаване на абонамент |
GET | /v1/invoices | Списък с фактури |
GET | /v1/invoices/upcoming | Получаване на предстояща фактура |
GET | /v1/products | Списък с продукти |
GET | /v1/prices | Списък с цени |
Крайни точки за събития
| Метод | Крайна точка | Описание |
|---|---|---|
GET | /v1/events | Списък със събития |
GET | /v1/events/{id} | Получаване на събитие |
Събития
Събития от плащания
| Събитие | Тригер | Случай на употреба |
|---|---|---|
payment_intent.succeeded | Плащане завършено | Потвърждение на поръчка |
payment_intent.payment_failed | Плащане неуспешно | Имейл за възстановяване |
charge.refunded | Обработен рефанд | Известие за рефанд |
charge.dispute.created | Иницииран chargeback | Обработка на спор |
Събития от абонаменти
| Събитие | Тригер | Случай на употреба |
|---|---|---|
customer.subscription.created | Нов абонамент | Onboarding поток |
customer.subscription.updated | Променен план | Поток за upgrade/downgrade |
customer.subscription.deleted | Отменен абонамент | Превенция на churn |
customer.subscription.trial_will_end | Пробен период приключва след 3 дни | Кампания за конвертиране на trial |
invoice.payment_failed | Неуспешно плащане на абонамент | Dunning серия от имейли |
Клиентски събития
| Събитие | Тригер | Случай на употреба |
|---|---|---|
customer.created | Добавен нов клиент | Welcome имейл |
customer.updated | Променени клиентски данни | Синхронизация на атрибути |
customer.deleted | Премахнат клиент | Почистване |
Примери с код
Инициализация на конектора
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});Стартиране на синхронизация на клиенти
// 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// }Обработка на 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 });});Ограничения на заявките
Stripe налага следните ограничения на заявките:
| Тип | Лимит | Детайли |
|---|---|---|
| Live mode | 100 read заявки/секунда | На secret key |
| Live mode | 100 write заявки/секунда | На secret key |
| Test mode | 25 заявки/секунда | На secret key |
| Доставяне на уебхуци | 100 000 събития/ден | На крайна точка |
Обработка на лимити
Stripe връща отговор 429 Too Many Requests, когато лимитите са надвишени. Внедри exponential backoff. Използвай list крайни точки с auto-pagination за масово извличане на данни.
Отстраняване на проблеми
Чести проблеми
| Проблем | Причина | Решение |
|---|---|---|
| 401 Unauthorized | Невалиден API ключ | Провери secret key в Stripe Dashboard |
| Неуспешен webhook signature | Неправилен webhook secret | Копирай отново webhook signing secret от Dashboard |
| Клиентът не е синхронизиран | Няма имейл в Stripe клиента | Увери се, че имейлът е зададен в записите на клиентите в Stripe |
| Липсват данни за абонамент | Недостатъчни разрешения | Обнови разрешенията на ограничения ключ |
| Дублирани събития | Повторна доставка на уебхук | Внедри idempotency с event IDs |
Режим за дебъг
Активирай подробно логване:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueТест на връзката
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedДобри практики
- Използвай ограничени API ключове – Създавай ключове с минимално необходимите разрешения
- Винаги верифицирай подписите на уебхуците – Предотвратявай подправени уебхук събития
- Обработвай idempotency – Използвай Stripe event IDs, за да предотвратиш дублирана обработка
- Синхронизирай клиентски метаданни – Съхранявай маркетингово релевантни данни в metadata полета на Stripe
- Мониторирай доставката на уебхуци – Проверявай Stripe Dashboard за неуспешни доставки
- Първо използвай test mode – Валидирай интеграцията с Stripe test mode и test clocks
Сигурност
- Автентикация с API ключ – Достъп на база secret key с поддръжка на ограничени ключове
- Верификация на подпис на уебхук – HMAC SHA-256 валидация на подпис
- TLS криптиране – Цялата API комуникация е криптирана чрез HTTPS
- PCI съвместимост – Stripe осигурява PCI DSS съвместимост за данни за плащания
- IP whitelisting – Опционални IP ограничения за API достъп