Stripe कनेक्टर
Stripe कनेक्टर
संपूर्ण भुगतान डेटा सिंक्रोनाइज़ेशन, सब्सक्रिप्शन जीवनचक्र प्रबंधन, और राजस्व-आधारित मार्केटिंग ऑटोमेशन के लिए अपने Stripe खाते को Tajo के माध्यम से Brevo से कनेक्ट करें।
अवलोकन
| गुण | मान |
|---|---|
| प्लेटफ़ॉर्म | Stripe |
| श्रेणी | ई-कॉमर्स |
| सेटअप जटिलता | आसान |
| आधिकारिक इंटीग्रेशन | हां |
| सिंक किया गया डेटा | ग्राहक, भुगतान, सब्सक्रिप्शन, इनवॉइस, इवेंट्स |
| API बेस URL | https://api.stripe.com/v1 |
विशेषताएं
- ग्राहक सिंक - मेटाडेटा सहित Stripe ग्राहकों को Brevo कॉन्टैक्ट्स के साथ सिंक करें
- भुगतान ट्रैकिंग - सफल भुगतान, रिफ़ंड, और विफल चार्ज ट्रैक करें
- सब्सक्रिप्शन प्रबंधन - रिटेंशन अभियानों के लिए सब्सक्रिप्शन जीवनचक्र इवेंट्स सिंक करें
- इनवॉइस डेटा - पोस्ट-परचेज़ और नवीनीकरण ऑटोमेशन के लिए इनवॉइस विवरण सिंक करें
- राजस्व एट्रिब्यूशन - जीवनकाल मूल्य और MRR को Brevo एट्रिब्यूट्स में मैप करें
- वेबहुक इवेंट्स - सभी भुगतान गतिविधियों के लिए रीयल-टाइम इवेंट सूचनाएं
- मल्टी-करेंसी समर्थन - कई मुद्राओं में भुगतान संभालें
- चेकआउट सत्र ट्रैकिंग - त्याग किए गए भुगतान रिकवरी के लिए Stripe Checkout ट्रैक करें
पूर्वावश्यकताएं
शुरू करने से पहले, सुनिश्चित करें कि आपके पास है:
- API एक्सेस वाला एक Stripe खाता
- Stripe API कीज़ (पब्लिशेबल और सीक्रेट कीज़)
- API एक्सेस वाला एक Brevo खाता
- एक Tajo खाता
प्रमाणीकरण
API की प्रमाणीकरण
Stripe आपकी सीक्रेट API की के साथ बियरर टोकन प्रमाणीकरण का उपयोग करता है।
curl https://api.stripe.com/v1/customers \ -u sk_live_YOUR_SECRET_KEY:API की सुरक्षा
अपनी सीक्रेट की को क्लाइंट-साइड कोड में कभी भी उजागर न करें। फ्रंटएंड संचालन के लिए पब्लिशेबल की का उपयोग करें और सीक्रेट की केवल अपने सर्वर पर उपयोग करें।
प्रतिबंधित 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 | WhatsApp/SMS के लिए 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 | सभी चार्ज की सूची |
GET | /v1/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 | चार्जबैक शुरू | विवाद हैंडलिंग |
सब्सक्रिप्शन इवेंट्स
| इवेंट | ट्रिगर | उपयोग मामला |
|---|---|---|
customer.subscription.created | नया सब्सक्रिप्शन | ऑनबोर्डिंग फ्लो |
customer.subscription.updated | योजना बदली | अपग्रेड/डाउनग्रेड फ्लो |
customer.subscription.deleted | सब्सक्रिप्शन रद्द | चर्न रोकथाम |
customer.subscription.trial_will_end | ट्रायल 3 दिनों में समाप्त | ट्रायल रूपांतरण अभियान |
invoice.payment_failed | सब्सक्रिप्शन भुगतान विफल | डनिंग ईमेल अनुक्रम |
ग्राहक इवेंट्स
| इवेंट | ट्रिगर | उपयोग मामला |
|---|---|---|
customer.created | नया ग्राहक जोड़ा गया | स्वागत ईमेल |
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 निम्नलिखित दर सीमाएं लागू करता है:
| प्रकार | सीमा | विवरण |
|---|---|---|
| लाइव मोड | 100 रीड अनुरोध/सेकंड | प्रति सीक्रेट की |
| लाइव मोड | 100 राइट अनुरोध/सेकंड | प्रति सीक्रेट की |
| टेस्ट मोड | 25 अनुरोध/सेकंड | प्रति सीक्रेट की |
| वेबहुक डिलीवरी | 100,000 इवेंट्स/दिन | प्रति एंडपॉइंट |
दर सीमा हैंडलिंग
सीमाएं पार होने पर Stripe एक 429 Too Many Requests प्रतिक्रिया देता है। एक्सपोनेंशियल बैकऑफ़ लागू करें। बल्क डेटा पुनर्प्राप्ति के लिए ऑटो-पेजीनेशन के साथ सूची एंडपॉइंट्स का उपयोग करें।
समस्या निवारण
सामान्य समस्याएं
| समस्या | कारण | समाधान |
|---|---|---|
| 401 Unauthorized | अमान्य API की | Stripe Dashboard में सीक्रेट की जांचें |
| वेबहुक सिग्नेचर विफल | गलत वेबहुक सीक्रेट | Dashboard से वेबहुक साइनिंग सीक्रेट पुनः कॉपी करें |
| ग्राहक सिंक नहीं हुआ | Stripe ग्राहक पर कोई ईमेल नहीं | सुनिश्चित करें कि Stripe ग्राहक रिकॉर्ड्स पर ईमेल सेट है |
| सब्सक्रिप्शन डेटा गायब | अपर्याप्त अनुमतियां | प्रतिबंधित की अनुमतियां अपडेट करें |
| डुप्लिकेट इवेंट्स | वेबहुक पुनः डिलीवरी | इवेंट 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 कीज़ का उपयोग करें - न्यूनतम आवश्यक अनुमतियों के साथ कीज़ बनाएं
- हमेशा वेबहुक सिग्नेचर सत्यापित करें - धोखाधड़ी वाले वेबहुक इवेंट्स को रोकें
- इडेम्पोटेंसी संभालें - डुप्लिकेट प्रोसेसिंग को रोकने के लिए Stripe इवेंट IDs का उपयोग करें
- ग्राहक मेटाडेटा सिंक करें - Stripe मेटाडेटा फ़ील्ड्स में मार्केटिंग-प्रासंगिक डेटा स्टोर करें
- वेबहुक डिलीवरी की निगरानी करें - विफल डिलीवरी के लिए Stripe Dashboard जांचें
- पहले टेस्ट मोड का उपयोग करें - Stripe टेस्ट मोड और टेस्ट क्लॉक्स के साथ अपने इंटीग्रेशन को मान्य करें
सुरक्षा
- API की प्रमाणीकरण - प्रतिबंधित की समर्थन के साथ सीक्रेट की-आधारित एक्सेस
- वेबहुक सिग्नेचर सत्यापन - HMAC SHA-256 सिग्नेचर सत्यापन
- TLS एन्क्रिप्शन - HTTPS के माध्यम से सभी API संचार एन्क्रिप्टेड
- PCI अनुपालन - Stripe भुगतान डेटा के लिए PCI DSS अनुपालन संभालता है
- IP व्हाइटलिस्टिंग - API एक्सेस के लिए वैकल्पिक IP प्रतिबंध