API Key (Token Của Bạn)

Bạn cần đăng nhập để xem API Key.

Tài Liệu Sử Dụng API Hosting (Chi Tiết)

Base URL: https://www.manguonfree.shop

URL Get gói hosting: https://www.manguonfree.shop/api/getpackage

URL Buy hosting: https://www.manguonfree.shop/api/buyhosting

URL thao tác hosting: https://www.manguonfree.shop/api/actionhosting

Method chính: POST (Content-Type: application/json). Một số API hỗ trợ GET.

Xác thực: - Bắt buộc (trừ API lấy gói): Gửi token trong header X-API-Token: your_token HOẶC trong body JSON key token. - Token là cột token trong tài khoản của bạn.

Response chung: Luôn là JSON với các key status ("success" hoặc "error"), message, và data (nếu có).


1. Lấy Danh Sách Gói Hosting (Bắt buộc trước khi mua)

Endpoint: /api/getpackage

Method: POST hoặc GET

Token: Optional

  • Có token: Hiển thị giá sau chiết khấu cá nhân (ck_hosting, max 100%).
  • Không token: Hiển thị giá gốc (phù hợp guest xem trước).

Ví dụ request (có token):

POST /api/getpackage
Header: X-API-Token: 
// Hoặc body JSON
{
  "token": ""
}

Ví dụ request (không token):

GET /api/getpackage

Response mẫu (thành công):

{
  "status": "success",
  "message": "Lấy danh sách gói hosting thành công",
  "applied_discount": "20%",  // hoặc "Không (guest)"
  "total_packages": 3,
  "data": [
    {
      "id": 1,
      "name": "HOSTING CHEAP 1",
      "package_name": "cheap1",
      "price_original": 100000,
      "price_discounted": 80000,
      "discount_percent": 20,
      "disk_quota": "10000",
      "bandwidth_limit": "unlimited",
      "max_subdomains": "unlimited",
      "max_parked_domains": "unlimited",
      "max_addon_domains": "unlimited",
      "description": "Mô tả gói chi tiết (HTML hoặc text)",
      "language": "vi",
      "cpanel_module": "jupiter"
    }
    // ... các gói khác
  ]
}

Lưu ý: Sử dụng id từ đây làm package_id khi mua/nâng cấp.


2. Mua Hosting Mới

Endpoint: /api/buyhosting

Method: POST

Token: Bắt buộc

Request mẫu:

{
  "token": "",
  "package_id": 1,          // ID từ API lấy gói
  "months": 3,              // Số tháng (1-36)
  "domain": "example.com",  // Tên miền chính (chỉ domain, không http/www/sub)
  "coupon": "GIAM50"        // Optional
}

Response thành công:

{
  "status": "success",
  "message": "Mua hosting thành công",
  "data": {
    "trans_id": "ABCD1234",
    "domain": "example.com",
    "username": "t123examplecom",
    "password": "Abc123!@#Random",
    "total_paid": 240000
  }
}

Response lỗi phổ biến:

  • Số dư không đủ
  • Domain đã tồn tại
  • Coupon không hợp lệ
  • Gói không tồn tại/máy chủ bảo trì

3. Thao Tác Hosting (Các Action)

Endpoint: /api/actionhosting

Method: POST

Token: Bắt buộc

hosting_id: ID hosting từ lịch sử mua hoặc quản lý cá nhân.

Request chung:

{
  "token": "",
  "hosting_id": 123,
  "action": "4"  // thay bằng số action cần
}
Danh sách Action chi tiết ( dùng điện thoại hãy vuốt từ phải sang trái để xem thêm )
Action Mô tả Params bổ sung Ví dụ Request bổ sung Response thành công mẫu
2 Đổi mật khẩu Không - {"status":"success","message":"Đổi mật khẩu thành công","new_password":"NewPass123!"}
3 Reset hosting (cài lại sạch) Không - {"status":"success","message":"Reset hosting thành công"}
4 Gia hạn months, coupon (opt), expected_total (opt)
{
  "months": 6,
  "coupon": "GIAM30",
  "expected_total": 500000
}
{"status":"success","message":"Gia hạn thành công thêm 6 tháng"}
5 Nâng cấp gói package (ID gói mới)
{"package": 3}
{"status":"success","message":"Nâng cấp gói thành công"}
6 Chuyển quyền hosting email (email người nhận)
{"email": "nguoinhan@gmail.com"}
{"status":"success","message":"Đã chuyển quyền cho nguoinhan@gmail.com"}
7 Xóa hosting Không - {"status":"success","message":"Xóa hosting thành công"}
8 Thêm Addon Domain domain
{"domain": "addon.example.com"}
{"status":"success","message":"Addon domain added successfully"}
9 Thêm Subdomain subdomain, rootdomain
{
  "subdomain": "blog",
  "rootdomain": "example.com"
}
{"status":"success","message":"Subdomain added successfully"}
10 Thêm Cronjob cronLink, cronTime (phút 1-60)
{
  "cronLink": "https://example.com/cron.php",
  "cronTime": 5
}
{"status":"success","message":"Cronjob added successfully"}
11 Đổi domain chính changedomain
{"changedomain": "newdomain.com"}
{"status":"success","message":"Domain changed successfully"}
12 Lấy thông tin Disk & Bandwidth Không -
{
  "status": "success",
  "disk": { /* dữ liệu disk usage */ },
  "bandwidth": { /* dữ liệu bandwidth */ }
}
13 Block IP ip
{"ip": "123.45.67.89"}
{"status":"success","message":"Block IP thành công"}
14 Unblock IP ip
{"ip": "123.45.67.89"}
{"status":"success","message":"Unblock IP thành công"}

Lưu Ý Quan Trọng & Best Practices

  • Bắt buộc: Gọi API lấy danh sách gói trước để có package_id và giá chính xác.
  • hosting_id: Lấy từ lịch sử mua hosting hoặc quản lý tài khoản (hiện chưa có API list hosting riêng).
  • Chiết khấu ck_hosting áp dụng tự động khi có token.
  • Nếu hosting hết hạn (status: expired), hầu hết action sẽ bị từ chối (trừ gia hạn).
  • Luôn kiểm tra số dư trước khi mua/gia hạn/nâng cấp.
  • Mọi thao tác đều được log admin và gửi thông báo nếu có lỗi/thành công quan trọng.
  • Test: Dùng Postman hoặc curl để test API.
  • Lỗi phổ biến: Token sai, số dư thiếu, domain tồn tại, coupon hết lượt, hosting hết hạn.

Curl ví dụ (mua hosting):

curl -X POST https://www.manguonfree.shop/api/buyhosting \
  -H "Content-Type: application/json" \
  -H "X-API-Token: " \
  -d '{
    "package_id": 1,
    "months": 1,
    "domain": "test.com",
    "coupon": "WELCOME"
  }'