การสมัครสมาชิก
AM จัดการวงจรชีวิตการสมัครสมาชิกบน Stripe ให้กับบัญชี เพื่อให้คุณโฟกัสกับราคาและการควบคุมสิทธิ์การเข้าถึงแทนการดูแล webhook
คุณสามารถสร้าง checkout session ให้ลูกค้าจัดการแพลนได้เอง และซิงก์สิทธิ์การเข้าถึงบัญชีกับ Stripe ได้ต่อเนื่อง
ลำดับการสมัครสมาชิก
Endpoints
| Endpoint | วัตถุประสงค์ |
|---|---|
POST /api/accounts/:account_id/subscriptions/stripe/checkout-session | เริ่ม checkout สำหรับสมัครสมาชิก |
POST /api/accounts/:account_id/subscriptions/stripe/portal-session | เปิด customer portal |
POST /api/accounts/:account_id/subscriptions/stripe/checkout-session-sync | ซิงก์ checkout session เป็น subscription |
POST /api/accounts/:account_id/subscriptions/sync | ซิงก์ subscriptions จาก Stripe |
POST /api/accounts/:account_id/subscriptions/change | เปลี่ยนแพลนหรือราคา |
POST /api/accounts/:account_id/subscriptions/cancel | ยกเลิกการสมัครสมาชิก |
GET /api/accounts/:account_id/subscriptions | แสดงรายการ subscriptions |
GET /api/accounts/:account_id/subscriptions/features | แสดงรายการฟีเจอร์ที่เปิดใช้งาน |
GET /api/accounts/:account_id/subscriptions/identity | ดึง Stripe customer identity |
POST /api/applications/:application_id/subscriptions/stripe/webhook | ตัวรับ Stripe webhook |
Checkout Session
สร้าง Stripe Checkout session สำหรับการสมัครสมาชิกใหม่:
// Request
{
price_id: "price_...",
success_url: "https://app.example.com/success",
cancel_url: "https://app.example.com/cancel"
}
// Response
{
url: "https://checkout.stripe.com/..."
}
ให้ redirect ผู้ใช้ไปยัง URL ที่ส่งกลับมา หลังชำระเงิน Stripe จะ redirect กลับไปยัง success URL ของคุณ
Customer Portal
เปิดให้ลูกค้าจัดการด้วยตนเอง:
- อัปเดตวิธีชำระเงิน
- ดูใบแจ้งหนี้
- ยกเลิกการสมัครสมาชิก
- เปลี่ยนแพลน
// Request
{
return_url: "https://app.example.com/settings";
}
// Response
{
url: "https://billing.stripe.com/...";
}
ตัวตนการสมัครสมาชิก
แต่ละบัญชีมี subscription identity สำหรับแมประหว่างบัญชีกับลูกค้า Stripe ใช้เพื่อ resolve webhook จาก Stripe และซิงก์สถานะการเรียกเก็บเงิน
เหตุการณ์ Webhook
AM จัดการ Stripe webhook และ retry เมื่อเกิดความล้มเหลว:
| Event | การทำงาน |
|---|---|
checkout.session.completed | ผูกลูกค้าและสร้าง subscription |
customer.subscription.* | ซิงก์ข้อมูล subscription |
invoice.paid | ซิงก์ใบแจ้งหนี้และอัปเดตสิทธิ์เข้าถึง |
invoice.payment_failed | อัปเดตช่วงเวลาสิทธิ์เข้าถึง |
ที่เกี่ยวข้อง
- การชำระเงิน - ระเบียนการชำระเงิน
- Payment - ทรัพยากรการชำระเงิน
- บัญชี - การจัดการบัญชี