248 lines
8.1 KiB
JavaScript
248 lines
8.1 KiB
JavaScript
import { v4 as uuidv4 } from 'uuid';
|
|
|
|
|
|
// UAT环境
|
|
// const appKey = "k5hfiei5eevouvjohkapjaudpk2gakpaxha22fiy";
|
|
// const appSecret = "e65ffb25148b08207088148d5bce114d";
|
|
// const accessServer = "http://116.198.37.53:8080";
|
|
|
|
|
|
const accessServer = "https://uc.hivoice.cn";
|
|
const appKey = "tp3szvq45m3yn6rdjhxlzrrikf6fc3a75t2yh3y3";
|
|
const appSecret = "c5eccccfec16d46fe9ac678d69198415";
|
|
|
|
|
|
function constructParameter(body) {
|
|
let params = [];
|
|
for (let key in body) {
|
|
params.push(body[key].toString());
|
|
}
|
|
params.sort();
|
|
let digest = "";
|
|
for (let param of params) {
|
|
digest += param;
|
|
}
|
|
let sha1 = require('sha1');
|
|
body.signature = sha1(digest).toUpperCase();
|
|
|
|
let p = '';
|
|
for (let key in body) {
|
|
p += key;
|
|
p += "=";
|
|
p += encodeURIComponent(body[key]);
|
|
p += "&";
|
|
}
|
|
p = p.slice(0, -1);
|
|
return p;
|
|
}
|
|
|
|
const yzs = {
|
|
get_access_token: function (ip, flushToken) {
|
|
let body = {};
|
|
body.subsystemId = 16;
|
|
body.clientId = ip;
|
|
body.timestamp = parseInt(new Date().getTime() / 1000);
|
|
body.flushToken = flushToken;
|
|
|
|
return fetch("/rest/v2/token/get_access_token", {
|
|
method: "POST",
|
|
body: constructParameter(body),
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log(json);
|
|
return json.result.accessToken;
|
|
}).catch(error => {
|
|
console.log(error);
|
|
});
|
|
},
|
|
update_access_token: function (ip, accessToken) {
|
|
let body = {};
|
|
body.subsystemId = 16;
|
|
body.clientId = ip;
|
|
body.timestamp = parseInt(new Date().getTime() / 1000);
|
|
body.accessToken = accessToken;
|
|
|
|
return fetch("/rest/v2/token/refresh_access_token", {
|
|
method: "POST",
|
|
body: constructParameter(body),
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log(json);
|
|
return json.result.accessToken;
|
|
}).catch(error => {
|
|
console.log(error);
|
|
});
|
|
},
|
|
|
|
get_user_info: function (ip, accessToken) {
|
|
let body = {};
|
|
body.subsystemId = 16;
|
|
body.clientId = ip;
|
|
body.timestamp = parseInt(new Date().getTime() / 1000);
|
|
body.accessToken = accessToken;
|
|
|
|
return fetch("/rest/v2/user/get_user_info", {
|
|
method: "POST",
|
|
body: constructParameter(body),
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log(json);
|
|
if (json.returnCode != "uc_0000") throw json;
|
|
return json.result;
|
|
});
|
|
},
|
|
user_select: function (ip, accessToken) {
|
|
let sha256 = require('sha256');
|
|
let timestamp = new Date().getTime();
|
|
let sig = appKey + timestamp.toString() + appSecret;
|
|
sig = sha256(sig).toUpperCase();;
|
|
|
|
|
|
let url = `/api/app/app-voice-recorder/rest/v1/user/select?accessToken=${encodeURIComponent(accessToken)}&phoneUdid=${encodeURIComponent(ip)}`;
|
|
console.log("url: ", url)
|
|
|
|
return fetch(url, {
|
|
headers: {
|
|
'appKey': appKey,
|
|
'timestamp': timestamp,
|
|
'signature': sig,
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log(json)
|
|
return json.result;
|
|
});
|
|
},
|
|
|
|
get_record_list: function (accessToken, passportId) {
|
|
let sha256 = require('sha256');
|
|
let timestamp = new Date().getTime();
|
|
let sig = appKey + timestamp.toString() + appSecret;
|
|
sig = sha256(sig).toUpperCase();
|
|
|
|
|
|
let url = `/api/app/app-voice-recorder/rest/v1/trans/info/list?accessToken=${encodeURIComponent(accessToken)}&passportId=${passportId}`;
|
|
console.log("url: ", url)
|
|
|
|
return fetch(url, {
|
|
headers: {
|
|
'appKey': appKey,
|
|
'timestamp': timestamp,
|
|
'signature': sig,
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
if (json.errorCode !== "0") {
|
|
throw json;
|
|
}
|
|
console.log(json)
|
|
return json;
|
|
});
|
|
},
|
|
download: function (accessToken, url) {
|
|
let sha256 = require('sha256');
|
|
let timestamp = new Date().getTime();
|
|
let sig = appKey + timestamp.toString() + appSecret;
|
|
sig = sha256(sig).toUpperCase();
|
|
|
|
let body = {
|
|
url: url,
|
|
accessToken: accessToken,
|
|
};
|
|
|
|
return fetch("/api/app/app-voice-recorder/rest/v1/trans/info/download", {
|
|
method: "POST",
|
|
headers: {
|
|
'appKey': appKey,
|
|
'timestamp': timestamp,
|
|
'signature': sig,
|
|
'Content-Type': 'application/json; charset=utf-8',
|
|
},
|
|
body: JSON.stringify(body),
|
|
}).then(response => response.blob());
|
|
},
|
|
|
|
login: function (udid, account, password) {
|
|
let md5 = require('md5');
|
|
let body = {};
|
|
body.subsystemId = 16;
|
|
body.clientId = udid;
|
|
body.timestamp = Math.round(new Date().getTime() / 1000);
|
|
body.account = account;
|
|
body.password = md5(password);
|
|
|
|
return fetch("/rest/v2/user/login", {
|
|
method: "POST",
|
|
body: constructParameter(body),
|
|
// mode: "no-cors",
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log("flushToken: ", json.result.flushToken);
|
|
return json.result.flushToken;
|
|
}).catch(error => {
|
|
console.log(error);
|
|
});
|
|
},
|
|
dynamic_code_login: function (udid, userCell, phoneCode) {
|
|
let body = {};
|
|
body.subsystemId = 16;
|
|
body.clientId = udid;
|
|
body.timestamp = Math.round(new Date().getTime() / 1000);
|
|
body.userCell = userCell;
|
|
body.phoneCode = phoneCode;
|
|
return fetch("/rest/v2/phone/login", {
|
|
method: "POST",
|
|
body: constructParameter(body),
|
|
// mode: "no-cors",
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
"Access-Control-Allow-Origin": "*",
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log("flushToken: ", json.result.flushToken);
|
|
return json.result.flushToken;
|
|
}).catch(error => {
|
|
console.log(error);
|
|
});
|
|
},
|
|
send_phone_code: function (udid, userCell) {
|
|
let body = {};
|
|
body.subsystemId = 16;
|
|
body.clientId = udid;
|
|
body.timestamp = Math.round(new Date().getTime() / 1000);
|
|
body.userCell = userCell;
|
|
return fetch("/rest/v2/phone/send_phone_code", {
|
|
method: "POST",
|
|
body: constructParameter(body),
|
|
// mode: "no-cors",
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
|
|
"Access-Control-Allow-Origin": "*",
|
|
},
|
|
}).then(response => response.json()).then((json) => {
|
|
console.log("send_phone_code: ", json);
|
|
return json;
|
|
}).catch(error => {
|
|
console.log(error);
|
|
});
|
|
},
|
|
uniqueDeviceIdentifier: function () {
|
|
let udid = localStorage.getItem('uniqueDeviceIdentifier');
|
|
if (!udid) {
|
|
udid = uuidv4();
|
|
localStorage.setItem('uniqueDeviceIdentifier', udid);
|
|
}
|
|
return udid;
|
|
}
|
|
};
|
|
|
|
|
|
|
|
|
|
export default yzs; |