// var appSecret = metadata.account.appSecret;
// var appKey = metadata.account.appKey;
// var baseUrl = metadata.account.baseUrl;
var appSecret = metadata.parameters["appSecret"];
var appKey = metadata.parameters["appKey"];
var baseUrl = metadata.parameters["Endpoint"];
/*var appSecret = 'uFgqnTDW8MvNlnKdmUHW5m9iRx1YT2PY';
var appKey = '127183';
var baseUrl = 'https://api.lazada.sg/rest';*/
var isGetOrderDetail = 'true';
var pageSize = 100;
var token = metadata.parameters["token"];
//var token = '50000201a06knuvpec1f920bdfDEsekRUfjHSHafv1Ek38sQFKpZxOOV2hJtR7Lx';
//var token = metadata.account.code;
// DOMO.log('token ' + httprequest.getHeader("token"));
// var parameter = metadata.account.parameter;
const sortASCII = (obj,isSort) => {
let arr = []
Object.keys(obj).forEach(item => arr.push(item))
let sortArr = isSort ? arr.sort() : arr.sort().reverse()
let sortObj = {}
for (let i in sortArr) {
sortObj[sortArr[i]] = obj[sortArr[i]]
}
return sortObj
}
function processRecords(url, obj){
var res = httprequest.get(url);
console.log(res)
var jsonObject = JSON.parse(res);
var code = jsonObject['code'];
DOMO.log("code "+ code);
if(jsonObject['code'] == 0){
var data = jsonObject['data'];
var countTotal = data['countTotal'];
DOMO.log( "countTotal "+ countTotal);
var count = data['count'];
DOMO.log("count "+count);
if(countTotal == 0){
return;
}
var page = Math.ceil(countTotal/pageSize);
DOMO.log("page "+ page);
for (var i = 0; i < page; i++) {
// DOMO.log("第 "+ i +"页 数据");
//执行工作
var time = Date.now();
obj.offset = i * pageSize;
obj.timestamp = time;
DOMO.log("第 "+ obj.offset +"条 数据");
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let ordersSendStr = '/orders/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
//DOMO.log("concatenatedString "+ concatenatedString);
var sign = DOMO.hmacSHA256(ordersSendStr, appSecret);
sign = sign.toUpperCase();
ordersSendStr = '/orders/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
res = httprequest.get(baseUrl+ordersSendStr);
jsonObject = JSON.parse(res);
if(jsonObject['code'] == '0'){
var orders = jsonObject.data.orders;
//var orders =data['orders'];
datagrid.magicParseJSON(orders)
// if("true" == isGetOrderDetail){
// DOMO.log("metadata.account.isGetOrderDetail "+ metadata.account.isGetOrderDetail);
// processOrderDeatil(orders);
// }
}
}
} else{
DOMO.log(res);
}
}
// 获取订单详情
function processOrderDeatil(orders){
orders.forEach(function(order) {
let orderId = order.order_id;
DOMO.log(orderId);
var time = Date.now();
let obj = {
app_key: appKey,
access_token: token,
sign_method: "sha256",
timestamp: time,
order_id : order.order_id
}
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let concatenatedString = '/order/items/get' + sortedKeys.map(key => `${key}${obj[key]}`).join('');
var sign = DOMO.hmacSHA256(concatenatedString, appSecret);
sign = sign.toUpperCase();
concatenatedString = '/order/items/get?' + sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
var res = httprequest.get(baseUrl + concatenatedString);
DOMO.log(res);
var jsonObject = JSON.parse(res);
if(jsonObject.code == 0){
var data =jsonObject.data;
DOMO.log(data);
datagrid.magicParseJSON(data)
}
});
}
function processRecordsOrderInfo(url){
var res = httprequest.get(url);
console.log(res)
var jsonObject = JSON.parse(res);
var data = jsonObject['data'];
datagrid.magicParseJSON(data)
}
if (metadata.report == "orders"){
var orders_created_after = metadata.parameters["orders_created_after"];
//执行工作
var time = Date.now();
let obj = {
app_key: appKey,
access_token: token,
sign_method: "sha256",
//update_after: "2023-05-25T00:00:00-06:00",
//created_after:"2020-01-01T00:00:00-06:00",
// created_after: orders_created_after,
// update_before: orders_update_before,
// status: orders_status,
// created_before: orders_created_before,
// update_after: orders_update_after,
offset:0,
limit: pageSize,
timestamp: time,
}
if(orders_created_after != null){
orders_created_after = DOMO.getStartDate(orders_created_after);
orders_created_after = new Date(orders_created_after + "T00:00:00Z").toISOString();
DOMO.log(orders_created_after);
obj.created_after = orders_created_after;
}
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let concatenatedString = '/orders/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
var sign = DOMO.hmacSHA256(concatenatedString, appSecret);
sign = sign.toUpperCase();
concatenatedString = '/orders/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
processRecords('https://api.lazada.sg/rest'+concatenatedString, obj);
} else if (metadata.report == "order"){
//执行工作
var time = Date.now();
let obj = {
app_key: '127183',
access_token: token,
sign_method: "sha256",
order_id: "107843302040454",
timestamp: time,
}
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let concatenatedString = '/order/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
DOMO.log(concatenatedString);
var sign = DOMO.hmacSHA256(concatenatedString, appSecret);
sign = sign.toUpperCase();
DOMO.log(sign);
concatenatedString = '/order/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
processRecordsOrderInfo('https://api.lazada.sg/rest'+concatenatedString);
}else if(metadata.report == "products"){
//执行工作
var time = Date.now();
let obj = {
app_key: appKey,
access_token: token,
sign_method: "sha256",
//update_after: "2023-05-25T00:00:00-06:00",
//created_after:"2020-01-01T00:00:00-06:00",
offset:0,
limit: 50,
timestamp: time,
}
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let concatenatedString = '/products/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
var sign = DOMO.hmacSHA256(concatenatedString, appSecret);
sign = sign.toUpperCase();
concatenatedString = '/products/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
processProducts(baseUrl + concatenatedString, obj);
}else if(metadata.report == "orderDetail"){
//执行工作
var time = Date.now();
var orderDetail_created_after = metadata.parameters["orderDetail_created_after"];
let obj = {
app_key: appKey,
access_token: token,
sign_method: "sha256",
//update_after: "2023-05-25T00:00:00-06:00",
created_after: orderDetail_created_after,
offset:0,
limit: pageSize,
timestamp: time,
}
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let concatenatedString = '/orders/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
var sign = DOMO.hmacSHA256(concatenatedString, appSecret);
sign = sign.toUpperCase();
concatenatedString = '/orders/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
processRecordsOrderDetail('https://api.lazada.sg/rest'+concatenatedString, obj);
}
function processRecordsOrderDetail(url, obj){
var res = httprequest.get(url);
console.log(res)
var jsonObject = JSON.parse(res);
var code = jsonObject['code'];
DOMO.log("code "+ code);
if(jsonObject['code'] == 0){
var data = jsonObject['data'];
var countTotal = data['countTotal'];
DOMO.log( "countTotal "+ countTotal);
var count = data['count'];
DOMO.log("count "+count);
if(countTotal == 0){
return;
}
var page = Math.ceil(countTotal/pageSize);
DOMO.log("page "+ page);
for (var i = 0; i < page; i++) {
// DOMO.log("第 "+ i +"页 数据");
//执行工作
var time = Date.now();
obj.offset = i * pageSize;
obj.timestamp = time;
DOMO.log("第 "+ obj.offset +"条 数据");
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let ordersSendStr = '/orders/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
//DOMO.log("concatenatedString "+ concatenatedString);
var sign = DOMO.hmacSHA256(ordersSendStr, appSecret);
sign = sign.toUpperCase();
ordersSendStr = '/orders/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
res = httprequest.get(baseUrl+ordersSendStr);
jsonObject = JSON.parse(res);
if(jsonObject['code'] == '0'){
var orders = jsonObject.data.orders;
//var orders =data['orders'];
//datagrid.magicParseJSON(orders)
processOrderDeatil(orders);
}
}
// var orders =data['orders'];
// datagrid.magicParseJSON(orders)
} else{
DOMO.log(res);
}
}
// 产品获取
function processProducts(url, obj){
var res = httprequest.get(url);
console.log(res)
var jsonObject = JSON.parse(res);
var code = jsonObject['code'];
DOMO.log("code "+ code);
if(jsonObject['code'] == 0){
var data = jsonObject['data'];
var total_products = data['total_products'];
DOMO.log( "total_products "+ total_products);
if(total_products == 0){
return;
}
var page = Math.ceil(total_products/50);
DOMO.log("productpage "+ page);
for (var i = 0; i < page; i++) {
DOMO.log("第 "+ i +"页 数据");
//执行工作
var time = Date.now();
obj.offset = i * 50 == 0 ? 1 : i * 50;
obj.timestamp = time;
sortASCII(obj,true);
let sortedKeys = Object.keys(sortASCII(obj,true));
let ordersSendStr = '/products/get'+sortedKeys.map(key => `${key}${obj[key]}`).join('');
//DOMO.log("concatenatedString "+ concatenatedString);
var sign = DOMO.hmacSHA256(ordersSendStr, appSecret);
sign = sign.toUpperCase();
ordersSendStr = '/products/get?'+sortedKeys.map(key => `${key}=${obj[key]}`).join('&')+'&sign='+sign;
res = httprequest.get(baseUrl+ordersSendStr);
jsonObject = JSON.parse(res);
if(jsonObject['code'] == '0'){
var data = jsonObject['data'];
var products = data['products'];
//DOMO.log("productpage "+ products);
//var orders =data['orders'];
datagrid.magicParseJSON(products)
}
}
}
}
版权归属:
Administrator
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区