Stripe Connector

Stripe Connector

เชื่อมต่อบัญชี Stripe ของคุณกับ Brevo ผ่าน Tajo เพื่อการซิงค์ข้อมูลการชำระเงินที่สมบูรณ์ การจัดการ subscription lifecycle และระบบอัตโนมัติทางการตลาดที่ขับเคลื่อนด้วยรายได้

ภาพรวม

คุณสมบัติค่า
แพลตฟอร์มStripe
หมวดหมู่E-commerce
ความซับซ้อนในการตั้งค่าง่าย
การผสานรวมอย่างเป็นทางการใช่
ข้อมูลที่ซิงค์ลูกค้า การชำระเงิน Subscriptions Invoices เหตุการณ์
API Base URLhttps://api.stripe.com/v1

ฟีเจอร์

  • การซิงค์ลูกค้า - ซิงค์ลูกค้า Stripe กับผู้ติดต่อ Brevo รวมถึง metadata
  • การติดตามการชำระเงิน - ติดตามการชำระเงินที่สำเร็จ การคืนเงิน และการเรียกเก็บที่ล้มเหลว
  • การจัดการ subscription - ซิงค์เหตุการณ์ subscription lifecycle สำหรับแคมเปญ retention
  • ข้อมูล invoice - ซิงค์รายละเอียด invoice สำหรับระบบอัตโนมัติหลังการซื้อและการต่ออายุ
  • การระบุแหล่งที่มาของรายได้ - แมป lifetime value และ MRR กับแอตทริบิวต์ Brevo
  • เหตุการณ์ webhook - การแจ้งเตือนเหตุการณ์แบบเรียลไทม์สำหรับกิจกรรมการชำระเงินทั้งหมด
  • รองรับหลายสกุลเงิน - จัดการการชำระเงินข้ามหลายสกุลเงิน
  • การติดตาม Checkout session - ติดตาม Stripe Checkout สำหรับการกู้คืนการชำระเงินที่ถูกละทิ้ง

ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:

  1. บัญชี Stripe ที่มีสิทธิ์เข้าถึง API
  2. Stripe API keys (publishable และ secret keys)
  3. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
  4. บัญชี Tajo

การยืนยันตัวตน

การยืนยันตัวตนด้วย API Key

Stripe ใช้การยืนยันตัวตน bearer token กับ secret API key ของคุณ

Terminal window
curl https://api.stripe.com/v1/customers \
-u sk_live_YOUR_SECRET_KEY:

ความปลอดภัย API Key

อย่าเปิดเผย secret key ในโค้ดฝั่ง client ใช้ publishable key สำหรับการดำเนินการ frontend และ secret key เฉพาะบนเซิร์ฟเวอร์ของคุณเท่านั้น

Restricted API Keys

สร้าง restricted keys พร้อมสิทธิ์เฉพาะเพื่อความปลอดภัยที่เพิ่มขึ้น:

  1. ไปที่ Stripe Dashboard > Developers > API Keys
  2. คลิก “Create restricted key”
  3. ให้สิทธิ์เฉพาะที่ Tajo ต้องการ

สิทธิ์ที่จำเป็น

customers: read
charges: read
payment_intents: read
subscriptions: read
invoices: read
events: read
products: read
prices: 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

Custom key-value metadata จาก Stripe

subscriptions optional
array

รายละเอียด subscription ที่ใช้งานอยู่

balance optional
integer

ยอดคงเหลือบัญชีลูกค้าในหน่วย cents

การแมป Custom Attribute

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_SOURCE

API Endpoints

Core Endpoints

เมธอดEndpointคำอธิบาย
GET/v1/customersแสดงรายการลูกค้าทั้งหมด
POST/v1/customersสร้างลูกค้า
GET/v1/customers/{id}ดึงลูกค้า
POST/v1/customers/{id}อัปเดตลูกค้า
GET/v1/chargesแสดงรายการ charges ทั้งหมด
GET/v1/payment_intentsแสดงรายการ payment intents

Subscription Endpoints

เมธอดEndpointคำอธิบาย
GET/v1/subscriptionsแสดงรายการ subscriptions
GET/v1/subscriptions/{id}ดึง subscription
GET/v1/invoicesแสดงรายการ invoices
GET/v1/invoices/upcomingดึง invoice ที่กำลังจะมาถึง
GET/v1/productsแสดงรายการสินค้า
GET/v1/pricesแสดงรายการราคา

Event Endpoints

เมธอดEndpointคำอธิบาย
GET/v1/eventsแสดงรายการเหตุการณ์
GET/v1/events/{id}ดึงเหตุการณ์

เหตุการณ์

เหตุการณ์การชำระเงิน

เหตุการณ์ทริกเกอร์กรณีใช้งาน
payment_intent.succeededการชำระเงินสำเร็จการยืนยันคำสั่งซื้อ
payment_intent.payment_failedการชำระเงินล้มเหลวอีเมลกู้คืน
charge.refundedประมวลผลการคืนเงินการแจ้งเตือนการคืนเงิน
charge.dispute.createdเริ่ม chargebackการจัดการข้อพิพาท

เหตุการณ์ Subscription

เหตุการณ์ทริกเกอร์กรณีใช้งาน
customer.subscription.createdสมัคร subscription ใหม่เวิร์กโฟลว์ onboarding
customer.subscription.updatedเปลี่ยนแผนเวิร์กโฟลว์ upgrade/downgrade
customer.subscription.deletedยกเลิก subscriptionการป้องกัน churn
customer.subscription.trial_will_endTrial สิ้นสุดใน 3 วันแคมเปญ conversion ทดลองใช้
invoice.payment_failedการชำระเงิน subscription ล้มเหลวลำดับอีเมล dunning

เหตุการณ์ลูกค้า

เหตุการณ์ทริกเกอร์กรณีใช้งาน
customer.createdเพิ่มลูกค้าใหม่อีเมลต้อนรับ
customer.updatedข้อมูลลูกค้าเปลี่ยนการซิงค์แอตทริบิวต์
customer.deletedลบลูกค้าCleanup

ตัวอย่างโค้ด

เริ่มต้น Connector

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Stripe
await tajo.connectors.connect('stripe', {
secretKey: process.env.STRIPE_SECRET_KEY,
webhookSecret: process.env.STRIPE_WEBHOOK_SECRET
});

รันการซิงค์ลูกค้า

// Full historical sync
await tajo.connectors.sync('stripe', {
type: 'full',
resources: ['customers', 'subscriptions', 'payments'],
since: '2023-01-01'
});
// Check sync status
const status = await tajo.connectors.status('stripe');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// customersSynced: 12500,
// subscriptionsSynced: 8200,
// paymentsSynced: 45000
// }

จัดการ Stripe Webhooks

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 บังคับใช้ rate limits ต่อไปนี้:

ประเภทขีดจำกัดรายละเอียด
Live mode100 read คำขอ/วินาทีต่อ secret key
Live mode100 write คำขอ/วินาทีต่อ secret key
Test mode25 คำขอ/วินาทีต่อ secret key
การส่ง webhook100,000 เหตุการณ์/วันต่อ endpoint

การจัดการ Rate Limit

Stripe ส่งคืนการตอบสนอง 429 Too Many Requests เมื่อเกินขีดจำกัด ใช้ exponential backoff ใช้ list endpoints พร้อม auto-pagination สำหรับการดึงข้อมูลจำนวนมาก

การแก้ไขปัญหา

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
401 UnauthorizedAPI key ไม่ถูกต้องตรวจสอบ secret key ใน Stripe Dashboard
Webhook signature ล้มเหลวWebhook secret ไม่ถูกต้องคัดลอก webhook signing secret ใหม่จาก Dashboard
ลูกค้าไม่ซิงค์ไม่มีอีเมลในลูกค้า Stripeตรวจสอบให้แน่ใจว่าอีเมลถูกตั้งค่าใน Stripe customer records
ข้อมูล subscription หายไปสิทธิ์ไม่เพียงพออัปเดตสิทธิ์ restricted key
เหตุการณ์ซ้ำกันการส่ง webhook ซ้ำใช้ idempotency กับ event IDs

โหมด Debug

เปิดใช้งาน verbose logging:

connectors:
stripe:
debug: true
log_level: verbose
log_webhooks: true

ทดสอบการเชื่อมต่อ

Terminal window
tajo connectors test stripe
# ✓ API connection successful
# ✓ Customers readable
# ✓ Subscriptions readable
# ✓ Payments readable
# ✓ Webhook endpoint verified

แนวทางปฏิบัติที่ดีที่สุด

  1. ใช้ restricted API keys - สร้าง keys ที่มีสิทธิ์ขั้นต่ำที่จำเป็น
  2. ตรวจสอบลายเซ็น webhook เสมอ - ป้องกันเหตุการณ์ webhook ที่ปลอม
  3. จัดการ idempotency - ใช้ Stripe event IDs เพื่อป้องกันการประมวลผลซ้ำ
  4. ซิงค์ customer metadata - เก็บข้อมูลที่เกี่ยวข้องกับการตลาดใน Stripe metadata fields
  5. ตรวจสอบการส่ง webhook - ตรวจสอบ Stripe Dashboard สำหรับการส่งที่ล้มเหลว
  6. ใช้ test mode ก่อน - ตรวจสอบการผสานรวมของคุณกับ Stripe test mode และ test clocks

ความปลอดภัย

  • การยืนยันตัวตนด้วย API Key - การเข้าถึงด้วย secret key พร้อมรองรับ restricted key
  • การตรวจสอบลายเซ็น webhook - การตรวจสอบลายเซ็น HMAC SHA-256
  • การเข้ารหัส TLS - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน HTTPS
  • ความสอดคล้องกับ PCI - Stripe จัดการความสอดคล้องกับ PCI DSS สำหรับข้อมูลการชำระเงิน
  • IP whitelisting - การจำกัด IP เสริมสำหรับการเข้าถึง API

แหล่งข้อมูลที่เกี่ยวข้อง

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

ผู้ช่วย AI

สวัสดี! ถามฉันเกี่ยวกับเอกสารได้เลย

เริ่มต้นฟรีกับ Brevo