1688开放平台获取access_token代码nodejs版本

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();

1688开放平台API接口http请求链接生成代码nodejs版本

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接口