API
Tài liệu mô tả các endpoint REST của theme MMO: kiểm tra phiên bản, ví, dịch vụ buff (smmo365), đặt đơn, và kênh reseller dành cho website đối tác.
Gốc URL & namespace
Toàn bộ route nằm dưới WordPress REST: https://smmo360.com/wp-json/
Namespace MMO:
mmo/v1
— base đầy đủ:
https://smmo360.com/wp-json/mmo/v1/
Đơn vị tiền mặc định trong phản hồi: VND.
Định dạng phản hồi
Thành công: HTTP 200, thân JSON có dạng:
{
"success": true,
"data": { ... }
}
Lỗi: HTTP 4xx/5xx, WordPress REST trả object lỗi (code, message, data.status).
Xác thực
-
Endpoint công khai
—
GET /status,GET /services: không cần đăng nhập. -
Endpoint theo tài khoản WordPress
— cần user đã đăng nhập. Từ trình duyệt: cookie phiên + header
X-WP-Nonce(nonce REST, thường lấy từwp-api-fetch/wp_localize_script). -
Reseller (đối tác)
— header
X-MMO-Reseller-Key: <api_key>hoặcAuthorization: Bearer <api_key>. Key do chính user tạo trên trang tài liệu API (đã đăng nhập) hoặc trong [mmo_panel], hoặc admin tạo tại MMO Manager → Người dùng. Mỗi user tối đa một key hợp lệ; tạo key mới sẽ vô hiệu key cũ.
Lấy API key Reseller (tự động & thủ công)
- Trên trang API này: Sau khi đăng nhập, dùng khối phía trên để tạo / tạo lại / thu hồi key (nếu ChillVN bật).
-
Tự động lần đầu:
Nếu chưa có key, lần đầu bạn mở trang này hoặc trang có
[mmo_panel], hệ thống có thể tự sinh key một lần. Cấu hình:config/app.php→chillvn.reseller_auto_key_on_first_visit. -
Trong tài khoản (panel):
Shortcode
[mmo_panel]— khối API Reseller với cùng chức năng. - Admin: MMO Manager → Người dùng & Seller → Chi tiết user → phần ChillVN API / chiết khấu.
[mmo_panel reseller_api="no"]
Bảng endpoint
| Phương thức | Đường dẫn (sau base) | Mô tả | Quyền |
|---|---|---|---|
| GET | status |
Thông tin theme, namespace, phiên bản, currency. | Công khai |
| GET | services |
Danh sách dịch vụ đang bán; giá đã quy đổi ChillVN + markup. User đăng nhập: thêm chiết khấu % (nếu admin cấu hình). | Công khai |
| GET | balance |
Số dư ví. | Đăng nhập |
| GET | ledger |
Sổ cái ví. Query: page, per_page. | Đăng nhập |
| GET | wallet/topups |
Danh sách yêu cầu nạp tiền. Query: page, per_page. | Đăng nhập |
| GET | wallet/topups/{id} |
Chi tiết một yêu cầu nạp. | Đăng nhập |
| POST | wallet/topup-intent |
Tạo ý định nạp (VietQR / Casso — theo cấu hình). | Đăng nhập |
| GET | woo-orders |
Đơn WooCommerce của khách. Query: page, per_page. | Đăng nhập |
| GET | partner/stats |
Thống kê partner seller (theo tháng). | Role partner_seller |
| GET | orders |
Đơn dịch vụ buff. Query: page, per_page. | Đăng nhập |
| POST | orders |
Đặt đơn (trừ ví). Xem chi tiết thân request bên dưới. | Đăng nhập |
| POST | orders/{id}/refill |
Yêu cầu refill đơn (nếu hỗ trợ). | Đăng nhập |
| POST | vendor/apply |
Đăng ký / gửi hồ sơ vendor (theo logic theme). | Đăng nhập |
| GET | reseller/status |
Số dư, currency, discount_percent, user_id của chủ API key. | API key |
| GET | reseller/services |
Giống services nhưng giá đã áp chiết khấu user chủ key. | API key |
| GET | reseller/orders |
Đơn của user chủ key. Query: page, per_page. | API key |
| POST | reseller/orders |
Đặt đơn trừ ví user chủ key; không hỗ trợ lịch / đặt lặp. | API key |
Phân trang mặc định per_page ≈ 20, tối đa 100 (nếu endpoint hỗ trợ).
POST /orders — đặt dịch vụ
Trừ ví user hiện tại (hoặc user reseller khi gọi /reseller/orders).
Một đơn (JSON hoặc form)
service_id(int, bắt buộc) — ID dòng trongGET /servicesquantity(int, mặc định 1)link— Một URL (nhiều loại dịch vụ smmo365 bắt buộc).links— Mảng URL hoặc chuỗi JSON mảng.comments,list,suggest,search— Tùy loại dịch vụ (Custom Comments, Special, …).- Lịch / lặp (chỉ
POST /ordersđăng nhập, không dùng cho reseller):schedule_enabled,scheduled_at,repeat_enabled,repeat_count,repeat_interval_minutes
Nhiều đơn trong một request
Gửi mảng `orders`: mỗi phần tử là object có service_id, quantity và các field extra như trên. Không kết hợp với lịch/lặp. Tối đa khoảng 50 đơn mỗi lần (theo cấu hình).
{
"orders": [
{ "service_id": 123, "quantity": 100, "link": "https://..." },
{ "service_id": 124, "quantity": 1, "link": "https://..." }
]
}
Reseller — tích hợp website khác
- User tự tạo key trên trang API (đã đăng nhập) hoặc [mmo_panel]; admin cũng có thể tạo thay. Ví của chủ key bị trừ khi đặt qua API.
- Lấy danh sách & giá:
GET .../reseller/services - Kiểm tra số dư:
GET .../reseller/status - Đặt hàng:
POST .../reseller/ordersvới cùng định dạng nhưPOST .../orders
reseller/services
và số tiền trừ ví khi mua đều đã phản ánh chiết khấu đó. Ví dụ cURL (reseller)
curl -sS -H "X-MMO-Reseller-Key: YOUR_KEY_HERE" \ "https://smmo360.com/wp-json/mmo/v1/reseller/status"
curl -sS -X POST \
-H "Content-Type: application/json" \
-H "X-MMO-Reseller-Key: YOUR_KEY_HERE" \
-d '{"service_id":1,"quantity":10,"link":"https://example.com/target"}' \
"https://smmo360.com/wp-json/mmo/v1/reseller/orders"
Trường thường gặp trong /services
Mỗi phần tử trong data.services có thể gồm (tùy DB): id, slug, name, price (VNĐ/đơn vị sau xử lý), price_display, is_active, provider_meta (JSON: min, max, type, …).
Mã lỗi thường gặp
| 401 | Chưa đăng nhập hoặc thiếu / sai API key reseller. |
| 402 | insufficient_funds — số dư ví không đủ. |
| 403 | Không đủ quyền (role, nonce, key không hợp lệ). |
| 404 | Không tìm thấy tài nguyên (dịch vụ, topup, …). |
| 400 | Tham số sai: thiếu link, quantity min/max, batch + lịch, v.v. |
Cập nhật theo phiên bản theme MMO; endpoint có thể mở rộng qua hook mmo_rest_register_routes.
