You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
// 导入 request 模块
|
|
const request = require('request')
|
|
|
|
// 自动匹配运单号所属的物流公司
|
|
function autoComNumber(orderno) {
|
|
const url = `https://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=${orderno}`
|
|
return new Promise(function(resolve, reject) {
|
|
request(url, (err, response, body) => {
|
|
if (err) return reject({ status: 500, msg: err.message })
|
|
// resolve(body)
|
|
// console.log(body.num)
|
|
body = JSON.parse(body)
|
|
if (body.auto.length <= 0) return reject({ status: 501, msg: '无对应的物流公司' })
|
|
resolve({ status: 200, msg: body.auto[0], comCode: body.auto[0].comCode })
|
|
})
|
|
})
|
|
}
|
|
|
|
async function getLogisticsInfo(req, res) {
|
|
const result = await autoComNumber(req.params.orderno)
|
|
|
|
if (result.status !== 200) {
|
|
return {
|
|
meta: {
|
|
status: 500,
|
|
message: '获取物流信息失败!'
|
|
}
|
|
}
|
|
}
|
|
|
|
const dataUrl = `https://www.kuaidi100.com/query?type=${result.comCode}&postid=${req.params.orderno}&temp=0.2595247267684455`
|
|
request(dataUrl, (err, response, body) => {
|
|
if (err) {
|
|
return res.send({
|
|
meta: {
|
|
status: 501,
|
|
message: '获取物流信息失败!'
|
|
}
|
|
})
|
|
}
|
|
// 获取物流信息成功
|
|
return res.send({
|
|
meta: {
|
|
status: 200,
|
|
message: '获取物流信息成功!'
|
|
},
|
|
data: (JSON.parse(body)).data
|
|
})
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
getLogisticsInfo
|
|
}
|