import axios from "axios"; import HMAC_SHA256 from "crypto-js/hmac-sha256"; // const BASE_URL="https://devmini.tongifts.app/" const BASE_URL="https://open.tongifts.app"; //测试 // "_id" : "H6kcGjSbEYou87VglvJba", // "apiKey" : "VG5JSNeJFrZVuwlCaUhp3", // ”taskid“: "66aa09c8962bc7cb275f8619", // "giftUrl": "https://t.me/redevelope_bot/TGTest?startapp=o_CJ6CgJ80vcGzyfN0SrOXH" //正式 // { // "name": "24680.com", // "email": "dongxie.cn@gmail.com", // "active": true, // "_id": "YdolcOCszE8KhE1caHjvP", // "apiKey": "qCYfOgsl6QD2Nlv4kdYa7", // "createdAt": "2024-11-28T06:36:17.793Z", // "__v": 0 // } const config={ _id:"YdolcOCszE8KhE1caHjvP", apiKey:"qCYfOgsl6QD2Nlv4kdYa7" } const service = axios.create({ baseURL: BASE_URL, // withCredentials: true, timeout: 10000, // Request timeout }); const init=(_id,apiKey)=>{ if (_id!=null)config._id=_id; if (apiKey!=null)config.apiKey=apiKey; } const signHash=(params)=>{ let keys = Object.keys(params) let signData = [] keys.forEach(key => { if (key === 'k' || key === 's') return if (typeof params[key] === 'object') signData.push(`${key}=${JSON.stringify(params[key])}`) else signData.push(`${key}=${params[key]}`) }) let rawStr = signData.sort().join('&') let selfHash = HMAC_SHA256(rawStr, config.apiKey) return selfHash.toString(); } const tonHttpReq=(url,params={})=>{ if (config._id===""||config.apiKey==="")return null; if (params==null)params={}; let timestamp=Math.floor(Date.now()/1000); params={...params,k:config._id,t:timestamp}; let data={ ...params, s:signHash(params) } return service({ method: 'post', url, data }); } const updateTask=(userId,taskId,status="completed")=>{ let params={ userIds:[userId], taskId:taskId, status:status, } return tonHttpReq("api/open/updateTask",params); } // { // "name": "24680.com", // "email": "dongxie.cn@gmail.com", // "active": true, // "_id": "YdolcOCszE8KhE1caHjvP", // "apiKey": "qCYfOgsl6QD2Nlv4kdYa7", // "createdAt": "2024-11-28T06:36:17.793Z", // "__v": 0 // } const register=(name,email)=>{ let data={ name, email } let url="api/merchants/register"; return service({ method: 'post', url, data }); } const TonHelper={ init, updateTask, register } export default TonHelper;