• const https = require('https');
    const app = require("./lib/app")
    
    const options = {
        hostname: 'gw.open.1688.com',
        port: 443,
        path: `/openapi/param2/1/system.oauth2/getToken/${app.appKey}?grant_type=refresh_token&client_id=${app.appKey}&client_secret=${app.appSecret}&refresh_token=${app.refresh_token}`,
        method: 'POST'
    };
    
    const req = https.request(options, (res) => {
        res.on('data', (d) => {
            process.stdout.write(d);
        });
    });
    
    req.on('error', (e) => {
        console.error(e);
    });
    req.end();

  • const crypto = require("crypto")
    const app = require("./app")
    
    let gw = 'http://gw.open.1688.com/openapi'
    
    module.exports = (code_arr, apiInfo) => {
    
        //将token加入参数列表
        code_arr.access_token = app.access_token
    
        //将第一个签名因子 urlPath 加上 appkey
        apiInfo += app.appKey
    
        //构造第二个签名因子 排序
        let aliParams = []
    
        Object.keys(code_arr).forEach((val) => {
    
            aliParams.push(val + code_arr[val])
    
        })
    
        aliParams.sort()
    
        let sign_str = aliParams.join('')
    
        // 得出要签名的字符串
        sign_str = apiInfo + sign_str
        //签名
        let code_sign = (crypto.createHmac('sha1', app.appSecret).update(sign_str).digest('hex')).toUpperCase()
        
        //得出url中的参数
        let urlParams = ''
    
        Object.keys(code_arr).forEach((val) => {
            urlParams += `${val}=${code_arr[val]}&`
        })
        
        // 生成url
        let url = `${gw}/${apiInfo}?${urlParams}_aop_signature=${code_sign}`
    
        return url
    
    }

    code_arr 为入参,apiinfo为要请求的api接口