~/VibeHandbook
PDF miễn phí

Thanh toán

stripe.com

Stripe

Đây là gì

Hãy hình dung chiếc máy quẹt thẻ ở quầy thanh toán — nó nhận thẻ của khách hàng và chuyển tiền đi. Stripe chính là thứ đó, nhưng ở dạng phần mềm: một bộ xử lý thanh toán. Đây là một tập hợp các (Application Programming Interface — Giao diện Lập trình Ứng dụng, cách để các chương trình nói chuyện với nhau) và các bảng điều khiển (dashboard) giúp ứng dụng của bạn nhận thẻ tín dụng, ví điện tử, và thanh toán ngân hàng, sau đó quản lý các gói đăng ký (subscription), hóa đơn, và các khoản chi trả. Đây là lựa chọn mặc định của các nhà phát triển vì API rất gọn gàng, tài liệu xuất sắc, và hầu hết mọi hướng dẫn hay thư viện đều mặc định dùng nó. Bạn tích hợp nó vào, khách hàng thanh toán, và tiền sẽ về tài khoản ngân hàng của bạn.

Điểm mạnh

  • Trải nghiệm dành cho nhà phát triển thuộc hàng tốt nhất — API rõ ràng, chế độ thử nghiệm (test mode), và tài liệu tuyệt vời.
  • Hệ sinh thái khổng lồ: SDK (Software Development Kit — bộ mã nguồn dựng sẵn), checkout dựng sẵn, hệ thống lập hóa đơn (billing), và tích hợp bên thứ ba.
  • Đủ linh hoạt cho các khoản thu một lần, gói đăng ký, mô hình sàn giao dịch (marketplace), và tính phí theo mức sử dụng.
  • Công cụ chống gian lận mạnh mẽ (Radar) và (thông báo tự động khi có sự kiện thanh toán xảy ra) đáng tin cậy, được tài liệu hóa kỹ.
  • Hoạt động ở nhiều quốc gia và nhiều loại tiền tệ.

Đánh đổi

  • Đây là một bộ xử lý thanh toán, không phải . Merchant of record (MoR — đơn vị bán hàng chính thức) là một công ty đóng vai trò pháp lý là người bán và tự lo việc xuất hóa đơn cùng thuế thay bạn; Stripe không làm việc đó. Với Stripe, bạn chính là người bán chính thức, vì vậy việc thu và nộp thuế bán hàng cùng VAT (Value Added Tax — thuế giá trị gia tăng, một loại thuế bán hàng được dùng ở nhiều quốc gia) là trách nhiệm của bạn (Stripe Tax giúp tính toán, nhưng bạn vẫn phải tự khai và nộp).
  • Cần thiết lập nhiều hơn so với một gian hàng dựng sẵn (hosted storefront); bạn phải tự xây dựng phần lớn luồng thanh toán.
  • Việc tuân thủ quy định (compliance), tranh chấp hoàn tiền (chargeback), và đăng ký thuế sẽ dồn lên vai bạn khi bạn phát triển lớn hơn.

Khi nào nên dùng

Chọn Stripe khi bạn muốn kiểm soát tối đa luồng thanh toán và sẵn sàng tự lo việc tuân thủ thuế, hoặc khi bạn đang xây dựng thứ gì đó mà một cửa hàng dựng sẵn không thể mô phỏng được — sàn giao dịch, tính phí theo mức đo lường (metered billing), gói đăng ký phức tạp, hoặc một luồng checkout được tùy biến sâu.

Mức độ phù hợp với vibe coding

Stripe là lựa chọn thanh toán thân thiện nhất với AI vì (tác nhân AI) đã "thấy" hàng ngàn ví dụ về Stripe, nên nó có thể dựng nhanh phần checkout, webhook, và cổng thông tin khách hàng (customer portal). Một webhook ở đây là tin nhắn tự động mà Stripe gửi đến ứng dụng của bạn khi có sự kiện thanh toán xảy ra, để ứng dụng của bạn tự phản ứng. Vấn đề là một agent sẽ vui vẻ nối dây cho các khoản thu tiền mà quên mất rằng giờ bạn nợ thuế ở hàng chục nơi khác nhau. Hãy nói rõ ràng: cho nó biết liệu bạn có muốn dùng một thiết lập kiểu merchant-of-record thay thế hay không, và luôn xác minh chữ ký webhook (webhook signature). Cũng cần xử lý các sự kiện theo kiểu (bất biến khi lặp) — nghĩa là đảm bảo cùng một sự kiện đến hai lần sẽ không tính phí hay mở khóa hai lần. Hãy thử nghiệm bằng các thẻ test của Stripe trước khi triển khai thật.

// Create a Checkout Session (server-side)
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);

const session = await stripe.checkout.sessions.create({
  mode: "payment",
  line_items: [{ price: "price_123", quantity: 1 }],
  success_url: "https://example.com/thanks",
  cancel_url: "https://example.com/cancel",
});
// redirect the customer to session.url