Store Builder

Ứng dụng Thanh toán

Nhận tiền trên cửa hàng qua chính tài khoản VNPay, MoMo, payOS hay ZaloPay của bạn — tiền về thẳng tài khoản bạn, không qua nền tảng.

Quản lý → Ứng dụng có thẻ Thanh toán trong kệ Tích hợp sẵn. Cài rồi, thẻ mở ra hai tab: Cổng thanh toán để nhập khoá, và Giao dịch để xem từng lần thu tiền.

Tiền đi thẳng về bạn

Đây là tài khoản của bạn ở cổng thanh toán, không phải của nền tảng. Bạn mở tài khoản với VNPay, MoMo, payOS hoặc ZaloPay, dán khoá vào đây, và tiền khách trả về thẳng tài khoản đó. Nền tảng không cầm tiền hộ và không trừ phần trăm trên mỗi đơn — phí là phí của cổng, thoả thuận giữa bạn với họ.

Không nối cổng nào thì cửa hàng vẫn bán bình thường: đơn vẫn về, chỉ là khách trả tiền theo cách bạn tự thu — COD, chuyển khoản tay. Ba trạng thái của một đơn và cách chúng độc lập với nhau nằm ở Đơn hàng.

Hai điều dễ bỏ sót

Đọc kỹ hai mục này trước, vì cả hai đều hỏng theo kiểu không báo lỗi: trang vẫn chạy, khách vẫn trả tiền, chỉ có kết quả là sai.

Địa chỉ callback phải tự dán sang cổng

Dưới mỗi cổng có ô Địa chỉ callback kèm nút sao chép. VNPay và payOS không nhận địa chỉ này theo từng giao dịch — chúng đọc một địa chỉ duy nhất khai trong trang quản trị của họ. Bạn phải sang đó dán vào ô IPN / webhook.

Thiếu bước này: khách trả tiền thành công, tiền vào tài khoản bạn, nhưng cửa hàng không bao giờ biết — đơn nằm mãi ở Chưa thanh toán. Không có thông báo lỗi nào cả, vì với cửa hàng thì đơn giản là chưa có ai báo về.

Tên phương thức chính là giá trị

Trong trình dựng form, ô Phương thức thanh toán rơi xuống đã có sẵn danh sách các cổng bạn đang bật. Đừng đổi chữ trong danh sách đó. Chuỗi khách chọn cũng chính là chuỗi cửa hàng dùng để tra cổng: vnpay tra ra VNPay, còn Thẻ VNPay thì không tra ra gì.

Sửa thành nhãn cho đẹp thì khách vẫn chọn được, đơn vẫn về, và không cổng nào mở ra — khách ngồi chờ một trang thanh toán không bao giờ hiện. Muốn đổi chữ hiển thị thì đổi sau khi đã bán thử một đơn và kiểm chứng lại.

Nhập khoá

Mỗi cổng hỏi những gì cổng đó cần, và mỗi ô đều có dòng chỉ chỗ tìm nó trong trang quản trị của cổng.

  • Khoá bí mật chỉ ghi, không đọc lại. Lưu rồi thì ô chỉ báo đã có khoá — không ai xem lại được, kể cả bạn. Nó được mã hoá trước khi chạm đĩa. Đổi thì gõ đè, giữ nguyên thì để trống ô đó khi lưu. Những ô không bí mật (mã website VNPay, partner code MoMo) đọc lại được bình thường: chúng vốn nằm công khai trong đường dẫn thanh toán.
  • Chế độ thử là lựa chọn của cửa hàng, không phải của người vận hành nền tảng. Bật lên là giao dịch chạy vào môi trường sandbox của cổng. Hãy thử ở đây trước, luôn luôn — nền tảng viết theo tài liệu công khai của từng cổng, và chỉ một đơn thật chạy qua sandbox mới chứng minh tài khoản của bạn khớp.
  • Xoá khoá quên toàn bộ khoá đã lưu. Các giao dịch đã phát sinh vẫn còn.

Hiện các cổng đều chỉ nhận VND.

Cửa hàng cần có địa chỉ công khai thật — tên miền riêng hoặc tên miền phụ đã xuất bản. Cổng thanh toán gọi ngược về địa chỉ đó; một cửa hàng chưa có địa chỉ nào sẽ bị từ chối mở thanh toán, thay vì mở ra rồi không bao giờ đối soát được.

Khách trả tiền thế nào

Thêm ô Phương thức thanh toán vào form đặt hàng (trình dựng form → nhóm Cơ bản). Ô đó rơi xuống đã nối sẵn vào cột thanh toán của đơn và đã có sẵn danh sách cổng.

Khách chọn một cổng rồi bấm gửi: đơn được ghi trước, rồi trình duyệt chuyển sang trang của cổng. Khách chọn Thanh toán khi nhận hàng thì thấy lời cảm ơn như mọi form khác.

Đơn được ghi trước khi chuyển sang cổng, và đó là điều cố ý: một khoản tiền về mà không có đơn nào phía sau là khoản tiền không ai đối soát được.

Cửa hàng chỉ tin callback đã ký từ cổng, không tin trình duyệt. Khách quay về trang hoàn tất trước khi callback tới sẽ thấy trạng thái Chờ thanh toán trong chốc lát — đúng sự thật tại thời điểm đó, và nó tự đổi khi callback về.

Tab Giao dịch

Mỗi lần thu tiền là một dòng: cổng, mã giao dịch, số tiền, trạng thái, link thanh toán.

Một đơn có thể có nhiều dòng. Khách bỏ dở VNPay rồi quay lại trả bằng MoMo là hai lần thu trên cùng một đơn — và chính lịch sử đó là thứ trả lời được câu "tôi bị trừ tiền hai lần phải không?".

  • Ghi nhận hoàn tiền đúng như tên gọi: nó ghi nhận khoản hoàn tiền bạn đã trả lại qua trang quản trị của cổng hoặc chuyển khoản tay. Nó không tự chuyển tiền. Giao dịch và đơn hàng được đánh dấu đã hoàn tiền; mốc thời gian tiền về ban đầu vẫn giữ nguyên, vì đó là mốc bạn đối chiếu với sao kê.
  • Giao dịch bỏ dở tự hết hạn sau một ngày. Phần lớn thanh toán mở ra rồi không ai trả — khách đóng tab, và không cổng nào báo lại chuyện đó. Không tự dọn thì danh sách đầy những dòng Chờ thanh toán vĩnh viễn, và hai dòng thực sự còn sống lẫn vào giữa.

Gỡ ứng dụng

Phải tắt hết các cổng trước. Một ứng dụng "đã gỡ" mà khách vẫn đang được chuyển sang trang thanh toán — và tiền vẫn đang về — là trạng thái không được phép tồn tại, nên cửa hàng từ chối gỡ cho tới khi bạn tắt xong.

Gỡ rồi thì khoá vẫn còn: cài lại là dùng tiếp.

Cập nhật 2/9/2026