Webhook PayOS: cấu hình và đối soát đơn phòng tập — dành cho chủ CLB / quản lý vận hành trên DANAVA Studio. Bài thuộc cụm công nghệ & tích hợp: nắm đúng khả năng sản phẩm, gắn SOP quầy, tránh hứa tính năng chưa có.
Trên DANAVA Studio, mỗi CLB gắn khoá PayOS riêng và URL webhook công khai của hệ thống. PayOS gọi về khi khách thanh toán; Studio xác thực chữ ký, map orderCode → đơn, cập nhật trạng thái idempotent. Chủ/QL cần biết: cấu hình đúng khoá, thử ping, đối soát đơn pending cuối ngày — webhook lỗi không được “đoán” đã thu tiền.
Bảo mật cấu hình cổng thanh toán — Ảnh minh hoạ giao diện DANAVA Studio — không phải dữ liệu vận hành riêng của khách hàng trong bài.
Webhook là gì với chủ phòng tập (không phải lập trình viên)
Webhook là đường PayOS (hoặc cổng tương đương) báo về Studio: “đơn X đã thanh toán”. Bạn không ngồi F5 trang thanh toán; hệ thống cập nhật gói/hội viên khi chữ ký hợp lệ.
Khác với quét QR xong lễ tân bấm tay “đã thu”: online phụ thuộc mạng + cấu hình khoá. Sai khoá hoặc URL → đơn treo pending dù khách đã trả.
Quyền sở hữu: khoá PayOS thuộc CLB bạn cấu hình trên Studio — không dùng chung một bộ khoá cho nhiều pháp nhân nếu hợp đồng tách.
Đối chiếu đơn online với POS quầy — Ảnh minh hoạ giao diện DANAVA Studio — không phải dữ liệu vận hành riêng của khách hàng trong bài.
Checklist cấu hình trước khi mở bán online
Lấy Client ID / API Key / Checksum Key từ cổng; dán đúng ô trên Studio (môi trường sandbox vs production tách bạch).
Sao chép URL webhook hệ thống vào bảng điều khiển PayOS; bật sự kiện thanh toán thành công. Dùng nút kiểm tra kết nối / ping nếu Studio có — xác nhận URL nhận được.
Bán thử 1 đơn giá nhỏ (hoặc sandbox ở local/dev theo quy tắc môi trường). Đối chiếu: trạng thái đơn trên Studio = đã thanh toán, gói hội viên kích hoạt đúng.
Báo cáo doanh thu sau khi webhook ghi nhận — Ảnh minh hoạ giao diện DANAVA Studio — không phải dữ liệu vận hành riêng của khách hàng trong bài.
Idempotent: vì sao webhook gọi 2 lần không được cộng đôi gói
Cổng có thể retry. Studio phải xử lý theo mã đơn: lần 2 cùng orderCode không gia hạn thêm lần nữa.
Chủ CLB khi thấy “tin Telegram / báo cáo lạ”: mở lịch sử đơn theo mã, không gia hạn tay chồng lên webhook.
Nếu lễ tân kích hoạt gói tay song song với online cùng một lần trả: dễ double entitlement — SOP: một nguồn sự thật (đơn thanh toán), quầy chỉ hỗ trợ khi đơn fail có biên bản.
Nhịp đối soát cuối ngày — Ảnh minh hoạ giao diện DANAVA Studio — không phải dữ liệu vận hành riêng của khách hàng trong bài.
Đối soát cuối ngày: pending, thành công, hủy
Cuối ca: lọc đơn online trong ngày. Pending > SLA (ví dụ 30–60 phút sau hạn QR): kiểm tra cổng, không ghi nhận doanh thu nội bộ cho đến khi xác nhận.
Đối chiếu tổng tiền webhook thành công với báo cáo doanh thu kênh online trên Studio. Lệch → ticket cho QL + lưu mã đơn.
Hoàn/hủy: theo SOP hoàn tiền đã viết; webhook thanh toán thành công ≠ tự hoàn. Cổng hoàn có luồng riêng — đừng giả định.
Sự cố thường gặp và cách xử lý tại quầy
Khách báo đã trừ tiền, Studio vẫn pending: không kích hoạt gói miệng. Tra cứu trên cổng theo mã, chờ webhook hoặc quy trình đối soát có bằng chứng, rồi mới kích hoạt có ghi chú.
Sai môi trường (sandbox key trên production): đơn thật không khớp — dừng bán online đến khi đổi khoá đúng.
Đổi pháp nhân/tài khoản ngân hàng nhận: cập nhật trên cổng + kiểm tra lại webhook; thông báo lễ tân ngày hiệu lực.
Phân quyền & an toàn khoá
Chỉ owner/manager được xem/sửa khoá cổng. Lễ tân không cần checksum key.
Khi nhân sự nghỉ: đổi mật khẩu Studio + rà ai còn quyền cài đặt thanh toán.
Không dán khoá vào group chat. Screenshot cấu hình che một phần key khi gửi hỗ trợ.
Gắn với POS và Telegram nội bộ
Online và quầy cùng báo cáo doanh thu nhưng khác kênh. Chủ đọc tách kênh trước khi cộng.
Telegram có thể báo bán/gia hạn — vẫn đối soát sổ, không thay biên bản cuối ngày.
Đọc thêm bài POS quầy và báo cáo doanh thu trong chuyên mục Giải pháp Wellness để nối một vòng tiền.
Tình huống
Dấu hiệu
Việc làm ngay
Không làm
Pending lâu
QR hết hạn / khách đã trả
Tra cổng + mã đơn
Kích hoạt miệng
Double gói
Hai lần gia hạn cùng tiền
Rà idempotent + lịch sử
Xóa dữ liệu lung tung
Sai khoá
Ping fail / không nhận WH
Đổi key + test lại
Đổ lỗi khách
Lệch cuối ngày
Tổng online ≠ báo cáo
Ticket + xuất danh sách đơn
Sửa tay báo cáo
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Khi đa chi nhánh: mỗi CLB/khoá tách; báo cáo theo chi nhánh trước khi cộng chuỗi.
Nhớ: tiền thật không bao giờ được “tự hoàn tất” trên production — chỉ môi trường dev mới có sandbox tự động theo quy tắc sản phẩm.
Mỗi lần đổi tài khoản nhận tiền trên cổng, ghi ngày hiệu lực vào sổ vận hành và thông báo lễ tân trước ca sáng.
Boutique bán pre-sale online trước khai trương: webhook càng quan trọng vì chưa có thói quen đối soát quầy.
Giữ file export đơn tuần đầu sau go-live thanh toán online để KTV làm quen mã trạng thái.
Không chạy ads “thanh toán online” trước khi test 3 đơn thành công liên tiếp trên production.
Câu hỏi thường gặp
Webhook có thay đối soát kế toán không?
Không. Webhook cập nhật trạng thái đơn/gói; sổ thuế và HĐĐT vẫn theo KTV.
Một URL webhook dùng chung nhiều CLB được không?
Hệ thống nhận webhook tập trung nhưng map theo orderCode/khoá CLB. Bạn cấu hình khoá đúng CLB trên Studio — không chia sẻ khoá lung tung.
Sandbox và production khác gì với chủ CLB?
Sandbox để thử; production nhận tiền thật. Không để khoá sandbox trên CLB đang bán thật.
Khách trả rồi nhưng gói chưa mở — ai chịu trách nhiệm quầy?
SOP: không hứa miệng; xác minh cổng/Studio rồi mới kích hoạt có audit. Chủ quy định SLA phản hồi.
Có cần lập trình viên để bật webhook không?
Với PayOS trên Studio: cấu hình khoá + dán URL theo hướng dẫn sản phẩm là đủ cho đa số boutique.
Telegram báo bán có nghĩa webhook đã OK?
Có thể gần đúng nhưng vẫn mở danh sách đơn để đối soát — tin nhắn là best-effort.
Muốn đơn online và gói hội viên khớp nhau trên một hệ thống? Dùng thử DANAVA Studio 14 ngày.
Lưu ý: Nội dung giáo dục cho chủ CLB / quản lý; mô tả quy trình vận hành quanh tính năng DANAVA Studio đã có. Không cấu thành tư vấn pháp lý, bảo mật chứng nhận hay cam kết SLA nhà cung cấp thanh toán/tin nhắn. Số liệu ví dụ là khung quản trị.
Không. Webhook cập nhật trạng thái đơn/gói; sổ thuế và HĐĐT vẫn theo KTV.
Một URL webhook dùng chung nhiều CLB được không?
Hệ thống nhận webhook tập trung nhưng map theo orderCode/khoá CLB. Bạn cấu hình khoá đúng CLB trên Studio — không chia sẻ khoá lung tung.
Sandbox và production khác gì với chủ CLB?
Sandbox để thử; production nhận tiền thật. Không để khoá sandbox trên CLB đang bán thật.
Khách trả rồi nhưng gói chưa mở — ai chịu trách nhiệm quầy?
SOP: không hứa miệng; xác minh cổng/Studio rồi mới kích hoạt có audit. Chủ quy định SLA phản hồi.
Có cần lập trình viên để bật webhook không?
Với PayOS trên Studio: cấu hình khoá + dán URL theo hướng dẫn sản phẩm là đủ cho đa số boutique.
Telegram báo bán có nghĩa webhook đã OK?
Có thể gần đúng nhưng vẫn mở danh sách đơn để đối soát — tin nhắn là best-effort. Muốn đơn online và gói hội viên khớp nhau trên một hệ thống? Dùng thử DANAVA Studio 14 ngày. Dùng thử DANAVA Studio miễn phí 14 ngày → Tìm hiểu thêm: DANAVA Studio · Giải pháp Wellness · báo cáo doanh thu . Lưu ý: Nội dung giáo dục cho chủ CLB / quản lý; mô tả quy trình vận hành quanh tính năng DANAVA Studio đã có. Không cấu thành tư vấn pháp lý, bảo mật chứng nhận hay cam kết SLA nhà cung cấp thanh toán/tin nhắn. Số liệu ví dụ là khung quản trị.