Tạo Seller Token
API tạo Seller Token cho các đối tác bán hàng. Token này được sử dụng để xác thực và phân quyền cho các API liên quan đến quản lý sản phẩm, đơn hàng của seller.
POST https://api.socdo.vn/mini-app/v1/get-token-seller
Request Body
{
    "username": "0966279109",
    "key": "23933"
}
Tham số
Tham số Loại Bắt buộc Mô tả
username string Tên người dùng của seller
key string User ID của seller (phải là số)
Response thành công (200)
Headers:
Token-Seller: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcGkuc29jZG8udm4iLCJpYXQiOjE3MzUxMjM0NTAsImV4cCI6MTczNzkwOTQ1MCwidXNlcl9pZCI6MjM5MzMsInVzZXJuYW1lIjoiMDk2NjI3OTEwOSIsImtleSI6IjIzOTMzIiwidHlwZSI6InNlbGxlciJ9.example_signature

Body:
{
    "message": "Seller-Token đã được tạo thành công",
    "status": "success",
    "data": {
        "seller_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcGkuc29jZG8udm4iLCJpYXQiOjE3MzUxMjM0NTAsImV4cCI6MTczNzkwOTQ1MCwidXNlcl9pZCI6MjM5MzMsInVzZXJuYW1lIjoiMDk2NjI3OTEwOSIsImtleSI6IjIzOTMzIiwidHlwZSI6InNlbGxlciJ9.example_signature",
        "shop": 23933,
        "shop_setting": [
            {
                "id": 1,
                "tieu_de": "Bản đồ",
                "name": "ban_do",
                "value": "",
                "loai": "html",
                "giao_dien": "",
                "description": "Vị trí doanh nghiệp hiển thị trên Google Maps hoặc bản đồ nhúng trong trang web."
            },
            {
                "id": 2,
                "tieu_de": "Description",
                "name": "description",
                "value": "",
                "loai": "",
                "giao_dien": "",
                "description": "Mô tả ngắn về nội dung website, thường dùng để hiển thị trên kết quả tìm kiếm Google."
            },
            {
                "id": 3,
                "tieu_de": "Email",
                "name": "email",
                "value": "",
                "loai": "",
                "giao_dien": "",
                "description": "Địa chỉ email liên hệ của doanh nghiệp hoặc quản trị website."
            }
        ]
    }
}
Response lỗi (400 - Thiếu thông tin)
{
    "message": "Username và key là bắt buộc",
    "status": "error",
    "required_fields": ["username", "key"]
}
Response lỗi (400 - Key không hợp lệ)
{
    "message": "Key phải là user_id hợp lệ",
    "status": "error"
}
Response lỗi (405 - Method không đúng)
{
    "message": "Method not allowed. Use POST method.",
    "status": "error"
}
Ví dụ JavaScript
// Tạo Seller Token
async function createSellerToken(username, domain) {
    try {
        const response = await fetch('https://api.socdo.vn/mini-app/v1/get-token-seller', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            },
            body: new URLSearchParams({
                username: username,
                key: key
            })
        });
        
        const result = await response.json();
        
        if (result.status === 'success') {
            // Lấy token từ header Token-Seller
            const tokenSeller = response.headers.get('Token-Seller');
            localStorage.setItem('seller_token', tokenSeller);
            console.log('Seller Token từ header:', tokenSeller);
            console.log('Seller Token từ body:', result.data.seller_token);
            return result;
        } else {
            console.error('Lỗi tạo token:', result.message);
            return result;
        }
    } catch (error) {
        console.error('Lỗi kết nối:', error);
        return { status: 'error', message: 'Lỗi kết nối mạng' };
    }
}

// Sử dụng
createSellerToken('john_doe', '12345').then(result => {
    if (result.status === 'success') {
        console.log('Token:', result.data.seller_token);
        // Tiếp tục với các API khác sử dụng seller token
    } else {
        alert('Lỗi: ' + result.message);
    }
});
Ví dụ cURL
curl -X POST https://api.socdo.vn/mini-app/v1/get-token-seller \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=john_doe&key=12345"
Lưu ý quan trọng
  • Token Format: JWT Token chuẩn với payload chứa thông tin seller
  • Shop Settings: API trả về cấu hình shop từ bảng shop_setting
  • Token Header: Token được trả về trong header Token-Seller
  • Key Validation: Key phải là user_id hợp lệ (số) trước khi tạo token
  • JWT Security: Token được mã hóa với thuật toán HS256 và secret key
  • CORS: API đã cấu hình CORS để cho phép gọi từ các domain khác
Luồng xử lý tạo token
  1. Kiểm tra method POST
  2. Validate username và key không được rỗng
  3. Validate key phải là user_id hợp lệ (số)
  4. Tìm user trong database theo user_id hoặc username
  5. Join với bảng shop_setting để lấy cấu hình shop
  6. Tạo JWT payload với thông tin seller
  7. Mã hóa JWT token với thuật toán HS256
  8. Trả về token trong header Token-Seller và shop_setting trong JSON body
Sử dụng Seller Token

Sau khi có Seller Token, bạn có thể sử dụng nó trong header của các API khác:

// Ví dụ sử dụng token trong request
fetch('https://api.socdo.vn/mini-app/v1/some-api', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Seller-Token': 'seller_JOHN_DOE_A1B2C3'
    },
    body: JSON.stringify(data)
});