0
0
Lập trình
Hưng Nguyễn Xuân 1
Hưng Nguyễn Xuân 1xuanhungptithcm

Xây Dựng Hay Mua: Chi Phí Thực Tế Của Hệ Thống Thanh Toán

Đăng vào 1 ngày trước

• 7 phút đọc

Xây Dựng Hay Mua: Chi Phí Thực Tế Của Hệ Thống Thanh Toán

Trong thời đại công nghệ phát triển nhanh chóng, nhiều nhóm kỹ sư không đặt ra mục tiêu xây dựng một hệ thống thanh toán ngay từ đầu. Họ chỉ muốn nhanh chóng ra mắt sản phẩm của mình. Tuy nhiên, điều này có thể dẫn đến những hệ quả không mong muốn khi họ chỉ đơn giản là kết nối với Stripe Checkout, định nghĩa một vài gói dịch vụ, thêm một số metadata cho quyền truy cập và sau đó cho ra mắt sản phẩm.

Vấn Đề Của Việc Tự Xây Dựng Hệ Thống Thanh Toán

Không có tiêu chuẩn rõ ràng cho việc triển khai monetization. Không có Rails cho logic giá cả. Không có Terraform cho các quyền lợi. Điều này dẫn đến việc các nhóm phải sáng tạo và cuối cùng tạo ra những hệ thống thanh toán kém ổn định, khó duy trì và còn khó mở rộng hơn.

Tại Sao Bạn Sẽ Phải Xây Dựng Nhiều Hơn Những Gì Bạn Nghĩ

Khi không có bản thiết kế, bạn chỉ bắt đầu kết nối mọi thứ lại với nhau. Trước khi nhận ra, bạn đã xây dựng một toàn bộ hệ thống thanh toán.

Kiểm Soát Quyền Truy Cập và Các Quyền Lợi

Ban đầu, việc này rất đơn giản:

python Copy
if company.plan == 'pro':
    allow_export = True

Tuy nhiên, sau đó:

  • Bạn muốn cho phép một người dùng miễn phí thử nghiệm một tính năng trả phí tạm thời.
  • Bộ phận bán hàng cần mở khóa một tính năng sớm cho một khách hàng lớn.
  • Một PM yêu cầu cách thử nghiệm tính năng trong giai đoạn thử nghiệm.

Đột nhiên, những gì bắt đầu như một kiểm tra gói đơn giản trở thành một mớ hỗn độn của các trường hợp đặc biệt, ghi đè và ngoại lệ. Logic quyền truy cập không còn dễ dự đoán — nó trở nên điều kiện, dễ vỡ và phân tán khắp nơi.

python Copy
if (company.plan in ['pro', 'enterprise', 'growth'] or
    company.id in [12345, 67890] or
    company.trial_flags.get('export') == True or
    company.custom_flags.get('export_enabled') == True):
    allow_export = True
else:
    allow_export = False

Không có dấu vết kiểm toán. Không có cách nào để biết ai có quyền gì. Không có cách nào để trả lời những câu hỏi đơn giản như:

  • “Tại sao người dùng này lại có quyền truy cập?”
  • “Bộ phận hỗ trợ có thể thay đổi điều này mà không cần kỹ thuật không?”
  • “Chúng tôi làm thế nào để triển khai điều này cho 10 khách hàng beta vào tuần tới?”

Điều này không chỉ gây rối mà còn tạo ra sự kéo dài trong toàn bộ công ty. Các thử nghiệm trở nên rủi ro, các thỏa thuận tùy chỉnh cần công việc thủ công, và các nhóm hỗ trợ bị mắc kẹt chờ đợi các kỹ sư thực hiện ngay cả những thay đổi quyền truy cập đơn giản nhất.

Đo Lường và Thực Thi Sử Dụng

Bạn giới thiệu giá dựa trên mức sử dụng — có thể cho các cuộc gọi API, xuất khẩu, hoặc người dùng hoạt động hàng tháng. Vì vậy, bạn bắt đầu theo dõi mức sử dụng. Bạn viết logic tổng hợp tùy chỉnh. Bạn đồng bộ các sự kiện sử dụng với Stripe. Bạn thêm các thiết lập thủ công, cảnh báo và kiểm tra phía trước.

Những gì dường như là một bổ sung nhỏ trở thành một hệ thống riêng của nó.

Giờ đây, bạn có logic sử dụng trong backend, frontend, tích hợp Stripe của bạn, và có thể cả dịch vụ cảnh báo của bạn nữa. Không có một nguồn thông tin trung thực nào. Các phần khác nhau của hệ thống có các quan điểm khác nhau về những gì khách hàng đã sử dụng và liệu họ có còn quyền truy cập hay không.

Điều này không chỉ khó duy trì mà còn khó tin tưởng.

Công Cụ Quản Trị, Hỗ Trợ và Khách Hàng

Cuối cùng, ai đó hỏi:

“Khách hàng này đang ở gói nào?”
“Họ có quyền truy cập vào tính năng đó không?”
“Tôi có thể cho họ gia hạn một lần không?”

Ban đầu, bạn trả lời những câu hỏi đó một cách thủ công — có thể bằng SQL, có thể bằng cách đào sâu vào Stripe. Nhưng sau đó, các câu hỏi cứ tiếp tục đến. Vì vậy, bạn xây dựng một công cụ nội bộ để hiển thị chi tiết gói. Sau đó là một bảng điều khiển để cho thấy mức sử dụng. Rồi một cách nhanh chóng để thay đổi các cờ. Chẳng bao lâu, bạn đã xây dựng một bảng điều khiển hỗ trợ. Và một cổng thông tin khách hàng. Và có thể là một bảng tính để theo dõi các ghi đè, chỉ trong trường hợp.

Nhưng không chỉ có đội ngũ của bạn yêu cầu sự minh bạch — khách hàng của bạn cũng muốn điều đó. Họ muốn thấy gói của họ, mức sử dụng của họ, những gì được bao gồm và điều gì sẽ xảy ra tiếp theo. Vì vậy, giờ đây bạn đang duy trì các thành phần giao diện người dùng cho các đồng hồ sử dụng, lộ trình nâng cấp và cảnh báo ngưỡng.

Những công cụ này không phải là tùy chọn. Chúng cần thiết để duy trì hoạt động kinh doanh, nhưng chúng tốn kém để xây dựng, dễ vỡ để duy trì và thường bị khóa lại phía sau kỹ thuật. Mỗi tính năng mới hoặc thay đổi gói đều có nghĩa là cập nhật tất cả các công cụ mà bạn đã ghép lại với nhau vào quý trước.

Những gì bắt đầu chỉ là “một vài gói” giờ đây yêu cầu cơ sở hạ tầng chỉ để trả lời những câu hỏi cơ bản về quyền truy cập, mức sử dụng và các quyền lợi.

Có Một Mô Hình Tốt Hơn — Nhưng Bạn Phải Lựa Chọn

Hầu hết các đội không đặt ra mục tiêu xây dựng cơ sở hạ tầng thanh toán — họ chỉ thực hiện từng bước một. Điều họ không nhận ra là có một cách tốt hơn. Không phải vì họ làm sai, mà vì họ không biết rằng có những nền tảng monetization hiện đại như Schematic tồn tại.

Schematic cung cấp cho bạn một nền tảng biến logic ad hoc thành cơ sở hạ tầng thực sự:

  • Một hệ thống quyền lợi có cấu trúc, đảm bảo kiểm soát quyền truy cập nhất quán, có thể kiểm toán và dễ quản lý.
  • Đo lường và thực thi sử dụng tập trung, giúp bạn tính phí dựa trên mức tiêu thụ — mà không cần ghép nối các bộ đếm backend và cron jobs.
  • Cấu hình và ghi đè gói linh hoạt, giúp các thử nghiệm, các tùy chọn bổ sung tùy chỉnh và nâng cấp giữa chu kỳ không cần các ngoại lệ thủ công hoặc thay đổi mã.
  • Cổng thông tin quản trị và khách hàng tích hợp, giúp các đội hỗ trợ và thành công thực hiện công việc của họ mà không cần gửi vé hoặc yêu cầu quyền truy cập SQL.

Thay vì giấu logic trong metadata của Stripe, các cờ phân tán, hoặc các điều kiện backend, bạn quản lý monetization thông qua một hệ thống sạch sẽ, được xây dựng với mục đích. Thay vì tái tạo các công cụ thanh toán, bạn cấu hình những công cụ bạn cần. Và thay vì yêu cầu kỹ thuật cho mỗi thay đổi gói, gia hạn thử nghiệm hoặc ngoại lệ bán hàng, các đội GTM tự xử lý.

Đối với các kỹ sư, điều này có nghĩa là ít thông báo Slack hơn, ít script một lần hơn và ít lỗi liên quan đến thanh toán hơn. Bạn dành ít thời gian duy trì logic dễ vỡ và nhiều thời gian hơn để xây dựng sản phẩm thực sự thúc đẩy doanh nghiệp tiến lên.

Đây không chỉ là sức mạnh cho doanh nghiệp — đó là tự do cho đội ngũ.

Thanh Toán Là Cơ Sở Hạ Tầng — Xây Dựng Sản Phẩm Của Bạn, Không Phải Hệ Thống Xung Quanh Nó

Không có sách hướng dẫn tiêu chuẩn cho việc monetization — chính điều này khiến hầu hết các đội rơi vào những cái bẫy tương tự.

Nhưng thanh toán không phải là sản phẩm của bạn. Đó là cơ sở hạ tầng. Giống như xác thực, quan sát, hoặc CI.

Thời gian bạn trì hoãn việc đầu tư vào nó, càng nhiều mã dán, nợ kỹ thuật và các trường hợp biên bạn sẽ tích lũy. Và càng đau đớn để thay thế sau này.

Đừng xây dựng hệ thống thanh toán mà bạn một ngày nào đó cần phải loại bỏ. Hãy xây dựng sản phẩm mà khách hàng của bạn thực sự đang trả tiền cho.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào