📜  示例快递应用程序 - Javascript (1)

📅  最后修改于: 2023-12-03 15:41:02.854000             🧑  作者: Mango

示例快递应用程序 - Javascript

简介

这是一个基于Javascript的示例快递应用程序,可以让用户查询当地的快递信息,包括快递公司、快递单号、运输状态等。

功能特性
  • 支持多个快递公司的查询
  • 可以输入快递单号查询
  • 显示快递的物流状态
  • 显示每个物流节点的详细信息
技术栈
  • Javascript
  • HTML
  • CSS
API接口

使用快递鸟API接口,需要注册账号并申请API秘钥才可以使用。

查询快递接口
/**
 * 查询快递信息
 * @param {string} company - 快递公司代码
 * @param {string} number - 快递单号
 * @returns {Promise<Array>} - 快递信息数组
 */
async function queryExpress(company, number) {
  const params = {
    RequestData: JSON.stringify({
      ShipperCode: company,
      LogisticCode: number
    }),
    EBusinessID: 'YOUR_EBUSINESS_ID',
    RequestType: '1002',
    DataSign: 'YOUR_DATA_SIGN',
    DataType: '2'
  }
  const response = await fetch('http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json', {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: Object.entries(params)
      .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))
      .join('&')
  })
  const { Success, Shippers, Traces } = await response.json()
  if (Success) {
    return [
      { key: '快递公司', value: Shippers[0].ShipperName },
      { key: '快递单号', value: number },
      { key: '状态', value: Traces[0].AcceptStation },
      ...Traces.map(trace => ({
        key: new Date(trace.AcceptTime).toLocaleString(),
        value: trace.AcceptStation
      }))
    ]
  } else {
    return [{ key: '错误', value: '查询失败' }]
  }
}
参考资料