Stripe Bağlayıcısı
Stripe Bağlayıcısı
Eksiksiz ödeme verisi senkronizasyonu, abonelik yaşam döngüsü yönetimi ve gelir odaklı pazarlama otomasyonu için Stripe hesabınızı Tajo aracılığıyla Brevo’ya bağlayın.
Genel Bakış
| Özellik | Değer |
|---|---|
| Platform | Stripe |
| Kategori | E-ticaret |
| Kurulum Karmaşıklığı | Kolay |
| Resmi Entegrasyon | Evet |
| Senkronize Edilen Veri | Müşteriler, Ödemeler, Abonelikler, Faturalar, Olaylar |
| API Temel URL’si | https://api.stripe.com/v1 |
Özellikler
- Müşteri senkronizasyonu - Stripe müşterilerini meta verilerle birlikte Brevo kişileriyle senkronize edin
- Ödeme takibi - Başarılı ödemeleri, iadeleri ve başarısız ücretleri takip edin
- Abonelik yönetimi - Müşteri tutma kampanyaları için abonelik yaşam döngüsü olaylarını senkronize edin
- Fatura verileri - Satın alma sonrası ve yenileme otomasyonu için fatura detaylarını senkronize edin
- Gelir atıfı - Yaşam boyu değer ve MRR’yi Brevo özniteliklerine eşleyin
- Webhook olayları - Tüm ödeme aktiviteleri için gerçek zamanlı olay bildirimleri
- Çoklu para birimi desteği - Birden fazla para birimi üzerinden ödemeleri yönetin
- Ödeme oturumu takibi - Terk edilmiş ödeme kurtarma için Stripe Checkout’u takip edin
Ön Koşullar
Başlamadan önce sahip olmanız gerekenler:
- API erişimi olan bir Stripe hesabı
- Stripe API anahtarları (yayınlanabilir ve gizli anahtarlar)
- API erişimi olan bir Brevo hesabı
- Bir Tajo hesabı
Kimlik Doğrulama
API Anahtar Kimlik Doğrulaması
Stripe, gizli API anahtarınızla bearer belirteç kimlik doğrulaması kullanır.
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:API Anahtarı Güvenliği
Gizli anahtarınızı asla istemci tarafı kodda göstermeyin. Frontend işlemleri için yayınlanabilir anahtarı, gizli anahtarı yalnızca sunucunuzda kullanın.
Kısıtlanmış API Anahtarları
Gelişmiş güvenlik için belirli izinlere sahip kısıtlanmış anahtarlar oluşturun:
- Stripe Dashboard > Developers > API Keys bölümüne gidin
- “Create restricted key” tıklayın
- Yalnızca Tajo’nun gerektirdiği izinleri verin
Gerekli İzinler
customers: readcharges: readpayment_intents: readsubscriptions: readinvoices: readevents: readproducts: readprices: readYapılandırma
Temel Kurulum
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: 22Alan Eşleme
Stripe müşteri verilerini Brevo kişi özniteliklerine eşleyin:
Varsayılan Eşlemeler
| Parameter | Type | Description |
|---|---|---|
email required | string | Müşteri e-posta adresi (benzersiz tanımlayıcı) |
name optional | string | Müşteri tam adı, FIRSTNAME/LASTNAME olarak bölünür |
phone optional | string | WhatsApp/SMS için SMS özniteliğine eşlenir |
currency optional | string | Müşteri için varsayılan para birimi |
created optional | timestamp | Stripe'da müşteri oluşturma tarihi |
metadata optional | object | Stripe'dan özel anahtar-değer meta verileri |
subscriptions optional | array | Aktif abonelik detayları |
balance optional | integer | Müşteri hesap bakiyesi (kuruş cinsinden) |
Özel Öznitelik Eşleme
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 Uç Noktaları
Temel Uç Noktalar
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /v1/customers | Tüm müşterileri listele |
POST | /v1/customers | Bir müşteri oluştur |
GET | /v1/customers/{id} | Bir müşteriyi getir |
POST | /v1/customers/{id} | Bir müşteriyi güncelle |
GET | /v1/charges | Tüm ücretleri listele |
GET | /v1/payment_intents | Ödeme niyetlerini listele |
Abonelik Uç Noktaları
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /v1/subscriptions | Abonelikleri listele |
GET | /v1/subscriptions/{id} | Bir aboneliği getir |
GET | /v1/invoices | Faturaları listele |
GET | /v1/invoices/upcoming | Yaklaşan faturayı getir |
GET | /v1/products | Ürünleri listele |
GET | /v1/prices | Fiyatları listele |
Olay Uç Noktaları
| Yöntem | Uç Nokta | Açıklama |
|---|---|---|
GET | /v1/events | Olayları listele |
GET | /v1/events/{id} | Bir olayı getir |
Olaylar
Ödeme Olayları
| Olay | Tetikleyici | Kullanım Alanı |
|---|---|---|
payment_intent.succeeded | Ödeme tamamlandı | Sipariş onayı |
payment_intent.payment_failed | Ödeme başarısız | Kurtarma e-postası |
charge.refunded | İade işlendi | İade bildirimi |
charge.dispute.created | Geri ödeme talebi başlatıldı | Anlaşmazlık yönetimi |
Abonelik Olayları
| Olay | Tetikleyici | Kullanım Alanı |
|---|---|---|
customer.subscription.created | Yeni abonelik | Başlangıç akışı |
customer.subscription.updated | Plan değişti | Yükseltme/düşürme akışı |
customer.subscription.deleted | Abonelik iptal edildi | Müşteri kaybı önleme |
customer.subscription.trial_will_end | Deneme 3 gün içinde sona erecek | Deneme dönüşüm kampanyası |
invoice.payment_failed | Abonelik ödemesi başarısız | Borç hatırlatma e-posta dizisi |
Müşteri Olayları
| Olay | Tetikleyici | Kullanım Alanı |
|---|---|---|
customer.created | Yeni müşteri eklendi | Karşılama e-postası |
customer.updated | Müşteri verisi değişti | Öznitelik senkronizasyonu |
customer.deleted | Müşteri kaldırıldı | Temizleme |
Kod Örnekleri
Bağlayıcıyı Başlat
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});Müşteri Senkronizasyonunu Çalıştır
// 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 Webhook’larını İşle
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 });});Hız Limitleri
Stripe aşağıdaki hız limitlerini uygular:
| Tür | Limit | Detaylar |
|---|---|---|
| Live mode | 100 okuma isteği/saniye | Gizli anahtar başına |
| Live mode | 100 yazma isteği/saniye | Gizli anahtar başına |
| Test mode | 25 istek/saniye | Gizli anahtar başına |
| Webhook teslimatı | 100.000 olay/gün | Uç nokta başına |
Hız Limit Yönetimi
Stripe, limitler aşıldığında 429 Too Many Requests yanıtı döndürür. Üstel geri çekilme uygulayın. Toplu veri alımı için otomatik sayfalama ile liste uç noktalarını kullanın.
Sorun Giderme
Sık Karşılaşılan Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| 401 Unauthorized | Geçersiz API anahtarı | Stripe Dashboard’da gizli anahtarı kontrol edin |
| Webhook imza hatası | Yanlış webhook gizli anahtarı | Dashboard’dan webhook imza gizli anahtarını yeniden kopyalayın |
| Müşteri senkronize edilmiyor | Stripe müşterisinde e-posta yok | Stripe müşteri kayıtlarında e-postanın ayarlandığından emin olun |
| Abonelik verileri eksik | Yetersiz izinler | Kısıtlanmış anahtar izinlerini güncelleyin |
| Yinelenen olaylar | Webhook tekrar teslimatı | Olay kimlikleri ile idempotency uygulayın |
Hata Ayıklama Modu
Ayrıntılı günlüklemeyi etkinleştirin:
connectors: stripe: debug: true log_level: verbose log_webhooks: trueBağlantıyı Test Et
tajo connectors test stripe# ✓ API connection successful# ✓ Customers readable# ✓ Subscriptions readable# ✓ Payments readable# ✓ Webhook endpoint verifiedEn İyi Uygulamalar
- Kısıtlanmış API anahtarları kullanın - Minimum gerekli izinlerle anahtarlar oluşturun
- Webhook imzalarını her zaman doğrulayın - Sahte webhook olaylarını önleyin
- Idempotency’yi yönetin - Yinelenen işlemeyi önlemek için Stripe olay kimliklerini kullanın
- Müşteri meta verilerini senkronize edin - Pazarlama için ilgili verileri Stripe meta veri alanlarında saklayın
- Webhook teslimatını izleyin - Başarısız teslimatlar için Stripe Dashboard’u kontrol edin
- Önce test modunu kullanın - Stripe test modu ve test saatleriyle entegrasyonunuzu doğrulayın
Güvenlik
- API Anahtar Kimlik Doğrulaması - Kısıtlanmış anahtar desteği ile gizli anahtar tabanlı erişim
- Webhook imza doğrulaması - HMAC SHA-256 imza doğrulaması
- TLS şifrelemesi - Tüm API iletişimi HTTPS aracılığıyla şifrelenir
- PCI uyumluluğu - Stripe ödeme verileri için PCI DSS uyumluluğunu yönetir
- IP beyaz listesi - API erişimi için isteğe bağlı IP kısıtlamaları