Tích hợp MONA Pay vào WooCommerce trong 15 phút: plugin, webhook, test sandbox
Chắc nhiều chủ shop đã gặp tình huống này rồi. Khách chuyển khoản xong và nhắn tin báo đã thanh toán, nhưng trên website đơn hàng vẫn nằm ở trạng thái “chờ thanh toán”. Lúc đó bạn phải mở app ngân hàng, dò sao kê rồi đối chiếu từng mã đơn bằng tay. Làm vài lần thì không sao, nhưng làm mỗi ngày thì ai cũng mệt.
Chúng tôi viết bài này để bạn hiểu một cổng xác nhận chuyển khoản tự động vận hành ra sao, và cách nối nó vào WooCommerce trong khoảng 15 phút. Bài đi qua từng bước: cài plugin, cấu hình webhook, rồi kiểm thử trong sandbox. Đây là hướng dẫn kèm nhận xét khách quan, không phải bài quảng cáo, và chúng tôi cũng nêu những điểm MONA Pay còn chưa làm tốt.
Vì sao shop nhỏ nên tự động hóa bước xác nhận chuyển khoản
Chuyển khoản ngân hàng là phương thức rẻ nhất, cũng là phương thức khách Việt quen dùng nhất. Vấn đề là ngân hàng không gửi thông tin giao dịch về website của bạn. Tiền đã vào tài khoản, nhưng hệ thống không biết số tiền đó dành cho đơn nào.
Cổng xác nhận tự động đứng ở giữa để xử lý việc này. Nó theo dõi biến động số dư, đọc nội dung chuyển khoản xem có mã đơn hay không, rồi báo lại cho website. Khi nhận được thông báo, đơn hàng mới tự chuyển sang “đã thanh toán”.
Không phải shop nào cũng cần đến thứ này. Nếu bạn chỉ bán vài đơn mỗi tuần thì đối chiếu tay vẫn ổn. Nhưng với website có lượng đơn đều đặn, dịch vụ thu phí theo tháng hay mô hình đăng ký, tự động hóa bước này tiết kiệm rất nhiều thời gian.
Chuẩn bị trước khi cài đặt
Trước khi cài đặt, bạn cần ba thứ. Thứ nhất là website WooCommerce chạy ổn định trên hosting có SSL, vì webhook hoạt động tốt nhất qua HTTPS. Thứ hai là tài khoản MONA Pay, kèm API key và secret key lấy từ trang quản trị. Thứ ba là quyền quản trị viên trên WordPress để cài plugin.
Nên sao lưu database trước khi thay đổi bất cứ thứ gì. Nghe có vẻ thừa, nhưng khi plugin xung đột với theme hay plugin khác, bạn sẽ thấy biết ơn vì đã có bản sao lưu sẵn.
Cài đặt plugin và kết nối tài khoản
Vào mục Plugin trong WordPress, chọn thêm mới và tìm plugin MONA Pay cho WooCommerce. Sau khi kích hoạt, một mục cấu hình mới sẽ xuất hiện trong phần thiết lập thanh toán của WooCommerce.
Dán API key và secret key vào đúng ô tương ứng. Đừng để khoảng trắng thừa ở đầu hoặc cuối, vì đây là lỗi rất hay gặp, khiến kết nối báo thất bại mà không rõ lý do. Nếu thấy thông báo xác thực không thành công, hãy kiểm tra lại chính tả trước khi nghi ngờ điều khác.
Kết nối xong thì bật phương thức thanh toán này và điền hướng dẫn để khách biết cần ghi mã đơn vào nội dung chuyển khoản. Phần này nhỏ nhưng ảnh hưởng khá nhiều đến tỷ lệ đơn được xác nhận tự động.
Cấu hình webhook
Webhook là đường để cổng thanh toán báo cho website biết có giao dịch mới. Plugin thường đã tạo sẵn đường dẫn này. Bạn chỉ cần sao chép và dán vào mục cấu hình webhook trong trang quản trị MONA Pay.
Chọn các sự kiện cần nhận, ít nhất là giao dịch thành công, rồi lưu lại. Nếu tài khoản dùng cho nhiều website, hãy kiểm tra kỹ để đường dẫn không trỏ nhầm sang site khác, vì đơn hàng có thể bị cập nhật sai nơi.
Mẹo nhỏ là ghi lại thời điểm bạn thay đổi cấu hình. Khi có sự cố sau này, mốc thời gian đó giúp khoanh vùng nguyên nhân nhanh hơn nhiều.
Kiểm thử trong sandbox trước khi chạy thật
Đây là bước quan trọng nhất và cũng là bước nhiều người bỏ qua. Hầu hết các cổng đều cho phép giả lập giao dịch thành công, thất bại và trùng lặp trong môi trường sandbox, nên bạn không cần chuyển tiền thật.
Tạo một đơn hàng thử, thanh toán bằng phương thức vừa cài, rồi giả lập giao dịch. Quan sát xem trạng thái đơn trong WooCommerce có chuyển sang “đã thanh toán” đúng lúc không. Thử thêm trường hợp số tiền chưa đủ và trường hợp nội dung chuyển khoản không có mã đơn. Với mỗi trường hợp, hãy ghi trước kết quả dự đoán rồi mới đối chiếu với thực tế.
Tiếp theo là thử webhook trùng lặp. Mạng chập chờn có thể khiến cùng một thông báo đến hai lần. Nếu website xử lý thành hai đơn hoặc cộng tiền hai lần, đó là lỗi cần sửa trước khi lên môi trường thật.
Kiểm tra chữ ký webhook
Mỗi webhook hợp lệ đi kèm chữ ký để bạn xác nhận nó thật sự đến từ cổng thanh toán. Plugin thường đã làm việc này, nhưng nếu tự viết mã riêng thì bạn phải tự kiểm tra. Bỏ qua bước này nghĩa là bất kỳ ai biết địa chỉ webhook đều có thể giả mạo thông báo thanh toán.
Thử gửi một webhook với chữ ký sai trong sandbox. Website phải từ chối và không cập nhật đơn hàng. Nếu đơn vẫn bị đánh dấu đã thanh toán, hãy dừng lại và kiểm tra cấu hình ngay.
Ghi log đối soát
Mỗi webhook nhận được nên được lưu kèm mã đơn, số tiền và thời gian. Khi khách khiếu nại, bạn có sẵn dữ liệu để đối chiếu thay vì đoán mò. Chúng tôi thường khuyên giữ log tối thiểu vài tháng, đủ để xử lý những khiếu nại đến muộn.
Log còn giúp phát hiện sớm vấn đề lặp lại, ví dụ một nhóm khách hay nhập sai nội dung chuyển khoản, hoặc một khung giờ nào đó thường xảy ra độ trễ.
Những điểm MONA Pay còn chưa tốt
Chúng tôi không muốn bài này chỉ nói điểm hay. Có ba điều bạn nên biết trước khi quyết định.
Thứ nhất, gói miễn phí giới hạn 500 giao dịch mỗi tháng. Một shop đang tăng trưởng sẽ sớm chạm mức này và phải lên gói trả phí. Không phải lỗi, nhưng nên tính trước để khỏi bất ngờ.
Thứ hai, toàn bộ việc xác nhận phụ thuộc vào cơ chế của hệ thống. Nếu khâu nhận webhook gặp sự cố, đơn hàng có thể không được cập nhật kịp thời. Vì vậy hãy kiểm thử kỹ trong sandbox trước khi đưa vào thực tế.
Thứ ba, hệ sinh thái plugin và cộng đồng hỗ trợ chưa lớn bằng những nền tảng lâu đời hơn. Khi gặp lỗi lạ, bạn có thể phải tự đọc tài liệu nhiều hơn là tìm được bài của người khác đã giải quyết đúng việc đó.
So sánh nhanh với các lựa chọn khác
Trên thị trường Việt Nam còn có SePay, Casso và PayOS. Đây đều là các dịch vụ xác nhận chuyển khoản phổ biến, nhưng mỗi bên đi theo hướng hơi khác. Mô hình phí, hạn mức miễn phí và bảng giá thay đổi theo thời gian, nên bạn nên xem trực tiếp trên trang chính thức trước khi quyết định.
MONA Pay hiện có gói miễn phí 500 giao dịch mỗi tháng, các gói trả phí không thu theo phần trăm trên mỗi giao dịch và không giữ tiền của bạn (tính đến tháng 11/2026). Với shop có lượng đơn đều, cách tính này giúp chi phí dễ dự đoán hơn. SePay và Casso có cộng đồng người dùng lớn hơn, tài liệu và ví dụ tích hợp dày hơn, nên khi gặp lỗi dễ tìm lời giải hơn. PayOS mạnh ở chỗ gắn với luồng thanh toán trọn gói.
Nếu bạn là shop nhỏ, đơn lẻ tẻ và muốn thử không tốn đồng nào, gói miễn phí của bất kỳ bên nào cũng đủ để bắt đầu. Nếu cần một hệ sinh thái plugin đã trưởng thành, hãy xem SePay hoặc Casso trước.
Chi phí vận hành thực tế theo quy mô
Khi tính chi phí, đừng chỉ nhìn giá gói. Hãy ước tính số giao dịch mỗi tháng trước. Nếu shop trung bình khoảng 300 đơn, gói miễn phí đã đủ. Nếu trung bình 1.200 đơn, bạn sẽ cần gói cao hơn.
Ngoài phí dịch vụ còn có chi phí ẩn: thời gian dev bảo trì khi có thay đổi, và công đối soát thủ công nếu chưa tự động hóa. Một giờ đối soát mỗi ngày trong sáu tháng có thể tốn kém hơn nhiều so với một gói trả phí.
Lộ trình triển khai cho website bán hàng nhỏ
Chúng tôi khuyên bắt đầu từ quy mô nhỏ. Dùng gói miễn phí và chạy thử trên một nhóm sản phẩm khoảng một đến hai tuần. Theo dõi đơn nào được xác nhận tự động, đơn nào phải xử lý tay.
Khi lưu lượng đã ổn định, mở rộng dần sang toàn bộ sản phẩm. Nếu tỷ lệ tự động thấp, thường là do khách nhập sai nội dung chuyển khoản, bạn nên chỉnh lại hướng dẫn thanh toán trên website. Muốn đi chi tiết hơn, bạn có thể làm theo hướng dẫn gắn cổng thanh toán vào website. Khi cần xem các gói dịch vụ, bạn có thể tìm hiểu thêm tại trang bảng giá.
Nếu bạn quan tâm đến cách vận hành hệ thống AI và tự động hóa ở phía sau, có thể đọc thêm Tích hợp AI vào phần mềm: tính năng nào nên làm trước. Bài này giúp bạn xếp thứ tự ưu tiên khi đưa tự động hóa vào sản phẩm.
Câu hỏi thường gặp
Gói miễn phí có đủ cho shop mới bắt đầu không?
Thường là đủ. Với 500 giao dịch mỗi tháng, shop mới chạy thử hoặc có vài chục đơn mỗi ngày vẫn ổn. Chỉ khi lượng đơn tăng đều bạn mới cần nghĩ đến gói trả phí.
Có cần biết code để tích hợp webhook không?
Với WooCommerce và plugin có sẵn, bạn gần như chỉ cần điền thông tin và dán đường dẫn webhook. Nếu tự viết mã riêng thì cần kiến thức lập trình cơ bản về nhận request và kiểm tra chữ ký.
Khi cổng xác nhận gặp sự cố thì đơn hàng xử lý thế nào?
Đơn sẽ vẫn ở trạng thái chờ. Vì vậy hãy giữ log đối soát và có quy trình kiểm tra thủ công định kỳ, ví dụ mỗi buổi sáng đối chiếu sao kê với danh sách đơn chờ. Khi hệ thống trở lại bình thường, bạn có thể xử lý bù.
Nên bắt đầu với bên nào nếu chưa có nhiều kinh nghiệm kỹ thuật?
Chọn bên có tài liệu hướng dẫn rõ ràng cho nền tảng bạn đang dùng và có sandbox để thử. Bắt đầu với gói miễn phí, làm quen với luồng đơn hàng, rồi mới tính đến chuyện nâng cấp. Đừng vội chọn theo giá rẻ nhất khi chưa thử trước.

