侧边栏壁纸
博主头像
小城雨巷 博主等级

行动起来,活在当下

  • 累计撰写 20 篇文章
  • 累计创建 6 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

未命名文章

Administrator
2023-12-18 / 0 评论 / 0 点赞 / 20 阅读 / 0 字


// 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)	
          }
          
        }
        
        
        
        
        
      }
      
      
      
    }
			
0

评论区