MoMo QR Payment for WooCommerce
Tích hợp thanh toán MoMo QR Code và tự động cập nhật đơn hàng WooCommerce
by Your Name · github.com/nathannhan/momo-qr-payment · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/nathannhan/momo-qr-payment/archive/refs/heads/main.zipPlugin WordPress tích hợp thanh toán MoMo QR Code và tự động cập nhật đơn hàng WooCommerce.
Tính năng
- ✅ Tích hợp thanh toán MoMo QR Code
- ✅ Tự động cập nhật trạng thái đơn hàng khi thanh toán thành công
- ✅ Hỗ trợ webhook từ MoMo để cập nhật real-time
- ✅ Hỗ trợ hoàn tiền (refund)
- ✅ Chế độ test và production
- ✅ Tự động hoàn thành đơn hàng (tùy chọn)
- ✅ Ghi log chi tiết cho debugging
Yêu cầu
- WordPress 5.8 trở lên
- WooCommerce 5.0 trở lên
- PHP 7.4 trở lên
- Tài khoản MoMo Business (đăng ký tại https://business.momo.vn)
Cài đặt
Bước 1: Tải plugin
- Tải toàn bộ thư mục plugin
- Nén thành file ZIP (nếu cần)
- Vào WordPress Admin → Plugins → Add New → Upload Plugin
- Chọn file ZIP và cài đặt
- Kích hoạt plugin
Bước 2: Đăng ký tài khoản MoMo Business
- Truy cập https://business.momo.vn
- Đăng ký tài khoản doanh nghiệp
- Hoàn tất xác minh doanh nghiệp
- Tạo ứng dụng mới trong MoMo Partner Portal
- Lấy thông tin:
- Partner Code
- Access Key
- Secret Key
Bước 3: Cấu hình plugin
- Vào WooCommerce → Settings → Payments
- Tìm "MoMo QR Payment" và click "Manage"
- Cấu hình các thông tin:
Cài đặt cơ bản:
- Enable/Disable: Bật/tắt phương thức thanh toán
- Title: Tiêu đề hiển thị (VD: "Thanh toán MoMo")
- Description: Mô tả cho khách hàng
Cài đặt API:
- Test mode: Bật chế độ test khi đang phát triển
- Partner Code: Nhập Partner Code từ MoMo
- Access Key: Nhập Access Key từ MoMo
- Secret Key: Nhập Secret Key từ MoMo
Cài đặt nâng cao:
- Auto Complete Order: Tự động hoàn thành đơn hàng sau khi thanh toán thành công
- Webhook URL: Copy URL này để cấu hình trong MoMo Portal
Bước 4: Cấu hình Webhook trong MoMo Portal
- Đăng nhập vào MoMo Partner Portal
- Vào mục "Cấu hình Webhook" hoặc "IPN URL"
- Dán URL webhook từ plugin (VD:
https://yoursite.com/momo-webhook/) - Lưu cấu hình
Cách hoạt động
Luồng thanh toán:
- Khách hàng chọn thanh toán MoMo tại trang checkout
- Đơn hàng được tạo với trạng thái "On Hold"
- Khách hàng được chuyển đến trang thanh toán MoMo
- Quét mã QR hoặc mở ứng dụng MoMo để thanh toán
- MoMo gửi webhook về server khi thanh toán thành công/thất bại
- Plugin tự động cập nhật trạng thái đơn hàng:
- Thành công → "Processing" hoặc "Completed"
- Thất bại → "Failed"
- Email thông báo được gửi đến khách hàng
Xác thực bảo mật:
- Sử dụng HMAC SHA256 để ký và xác thực dữ liệu
- Kiểm tra signature từ MoMo webhook
- Chống replay attack
- Ghi log tất cả giao dịch
API Endpoints
Plugin tạo custom endpoint để nhận webhook:
https://yoursite.com/momo-webhook/
Endpoint này:
- Nhận POST request từ MoMo
- Xác thực signature
- Tìm đơn hàng tương ứng
- Cập nhật trạng thái đơn hàng
- Gửi response về MoMo
Cấu trúc dữ liệu
Order Meta Data
Plugin lưu các thông tin sau vào đơn hàng:
_momo_order_id: ID đơn hàng trong MoMo_momo_request_id: ID request_momo_trans_id: Mã giao dịch MoMo_momo_result_code: Mã kết quả_momo_payment_time: Thời gian thanh toán_momo_raw_data: Dữ liệu raw từ webhook
Testing
Chế độ Test:
- Bật "Test mode" trong cấu hình
- Sử dụng thông tin test từ MoMo
- Test thanh toán trên môi trường test của MoMo
Thông tin test MoMo:
Truy cập tài liệu MoMo để lấy thông tin test: https://developers.momo.vn
Xử lý lỗi
Debugging:
Plugin ghi log vào WordPress debug log. Để bật debug:
// Thêm vào wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Log file: wp-content/debug.log
Lỗi thường gặp:
-
Webhook không hoạt động:
- Kiểm tra URL webhook trong MoMo Portal
- Kiểm tra firewall/security plugin có chặn không
- Kiểm tra SSL certificate (cần HTTPS)
-
Signature không hợp lệ:
- Kiểm tra Secret Key đã đúng chưa
- Kiểm tra thời gian server (cần đồng bộ)
-
Đơn hàng không tự động cập nhật:
- Kiểm tra webhook URL
- Kiểm tra log để xem có nhận được webhook không
- Kiểm tra quyền ghi database
Hoàn tiền (Refund)
Plugin hỗ trợ hoàn tiền trực tiếp từ WooCommerce:
- Vào đơn hàng cần hoàn tiền
- Click "Refund"
- Nhập số tiền và lý do
- Click "Refund via MoMo"
- Plugin sẽ gọi API MoMo để hoàn tiền
Bảo mật
- ✅ Xác thực HMAC SHA256
- ✅ Kiểm tra signature mọi webhook
- ✅ Không lưu thông tin nhạy cảm trong database
- ✅ Sanitize và validate mọi input
- ✅ Chống SQL injection
- ✅ Chống XSS
Hỗ trợ
- Email: support@example.com
- Website: https://example.com
- Tài liệu MoMo: https://developers.momo.vn
License
GPL v2 or later
Changelog
Version 1.0.0
- Phiên bản đầu tiên
- Tích hợp thanh toán MoMo QR
- Webhook tự động cập nhật đơn hàng
- Hỗ trợ hoàn tiền
Credits
Developed by [Your Name] MoMo API Integration based on MoMo Developer Documentation