HƯỚNG DẪN ĐẤU API KHO SHOPACCSTUDIO.COM (dán nguyên văn cho AI: ChatGPT, Claude, Gemini...) Bạn là lập trình viên. Hãy giúp tôi kết nối web/bot của tôi với kho hàng https://shopaccstudio.com để tự lấy sản phẩm, giá, số hàng còn và tự mua tài khoản. Tôi không biết lập trình: hãy viết code hoàn chỉnh, chạy được ngay, và hướng dẫn từng bước cách chạy. Nền tảng của tôi: [ĐIỀN VÀO: ví dụ web PHP / WordPress / bot Telegram Python / Google Sheets / Node.js] THÔNG TIN API - Địa chỉ gốc: https://shopaccstudio.com - Xác thực: tham số api_key = KHÓA API của tôi. Đặt khoá trong 1 biến cấu hình (ví dụ API_KEY = "...") để tôi tự điền; không viết khoá thật vào code mẫu. - Gửi tham số dạng query (GET) hoặc form (POST); gửi JSON cũng được. - Kết quả luôn là JSON có "status": "success" hoặc "error". Khi lỗi có "msg" = lý do (tiếng Việt). 1) Xem số dư GET https://shopaccstudio.com/api/profile.php?api_key=KEY -> {"status":"success","data":{"username":"Tên","uid":123,"money":500000,"discount":0}} money = số dư (VNĐ). 2) Danh sách sản phẩm, giá, số hàng còn GET https://shopaccstudio.com/api/products.php?api_key=KEY -> {"status":"success","products":[{"id":"1","name":"...","price":300000,"amount":12,"description":"...","category":"..."}],"categories":[...]} id = mã sản phẩm dùng khi mua; price = giá 1 tài khoản (VNĐ, đã trừ chiết khấu riêng của tôi); amount = số tài khoản mua được ngay. 3) Mua hàng POST https://shopaccstudio.com/api/buy_product tham số: action=buyProduct, id=, amount=, api_key=KEY, ref= -> thành công: {"status":"success","trans_id":"MDH...","data":["dòng tài khoản 1","dòng tài khoản 2"],"price":300000,"total":600000,"balance":400000,"ref":"..."} -> lỗi: {"status":"error","msg":"..."} với mã HTTP: 400 sai tham số, 401 khoá sai, 403 khoá bị khoá, 402 thiếu tiền, 409 không đủ hàng / ref trùng đang xử lý, 429 gọi quá nhanh. Mỗi phần tử trong data là 1 tài khoản dạng: tài_khoản|mật_khẩu|email|mật_khẩu_email|... (giữ nguyên cả dòng). 4) Xem lại đơn đã mua GET https://shopaccstudio.com/api/order.php?api_key=KEY&trans_id=MDH... -> {"status":"success","trans_id":"MDH...","product":"...","amount":2,"total":600000,"time":"...","data":["...","..."]} QUY TẮC BẮT BUỘC (để không mua trùng, không mất tiền) - LUÔN gửi ref = mã đơn duy nhất phía tôi (ví dụ mã đơn của khách). Nếu mất mạng / hết thời gian chờ, gửi lại y nguyên với CÙNG ref: hệ thống trả lại đúng đơn cũ, KHÔNG mua lần 2. - Chỉ coi là mua thành công khi status == "success" và số dòng trong data == số lượng đã mua. Lưu ngay trans_id + data vào cơ sở dữ liệu của tôi trước khi giao cho khách. - Trước khi mua, gọi products.php kiểm tra amount đủ; đồng bộ sản phẩm 1-5 phút/lần là đủ. Không gọi quá 20 lần / 10 giây. - Chỉ gọi API từ máy chủ của tôi, không để lộ api_key ra trình duyệt hay cho khách thấy. YÊU CẦU CODE - Viết các hàm: lay_so_du(), lay_san_pham(), mua(id_san_pham, so_luong, ma_don), xem_don(trans_id). - Xử lý đủ các lỗi ở trên, in thông báo dễ hiểu bằng tiếng Việt. - Kèm 1 ví dụ chạy thử: in số dư, in danh sách sản phẩm. Phần mua thật để trong hàm riêng, chỉ chạy khi tôi gọi.