express+mysql+vue,从零搭建一个商城管理系统15--快递查询(对接快递100)

提示:学习express,搭建管理系统


前言

需求:主要学习express,所以先写service部分
快递鸟API文档

一、安装md5,axios

npm install axios md5 --save-dev

在这里插入图片描述

二、新建config/logistics.js

config/logistics.js

//快递100
const axios = require('axios');
const md5 = require('md5');

//查询物流信息url
let url= 'https://poll.kuaidi100.com/poll/query.do';
//customer
let customer = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
//授权key
let key = 'xxxxxxxxx';

const logistics = {
    query:async (param)=>{
        //一定要把param转换成JSON,不然一直报签名错误
        let paramJson =  JSON.stringify(param);
        let sign = md5(paramJson+key+customer);
        sign = sign.toUpperCase();
        axios.defaults.headers.get['Content-Type'] = 'application/x-www-form-urlencoded';
        const res = await axios.get(url+`?customer=${customer}&sign=${sign}&param=${paramJson}`);
        return res.data
    }
}

module.exports = logistics;

在这里插入图片描述
customer,key通过 快递100企业信息获取

customer对应customer
key对应授权key
在这里插入图片描述

三、修改routes/order.js

routes/order.js

const OrderDao = require('../dao/order');
const logistics = require('../config/logistics');
const OrderRoutes = (router)=>{
    router.post('/order/addGoodsToOrder',async (req,res)=>{
        const result = await OrderDao.addGoodsToOrder(req.body);
        res.json(result);
    });
    router.get('/order/queryGoodsByUserIdFromOrder',async (req,res)=>{
        const result = await OrderDao.queryGoodsByUserIdFromOrder(req.query);
        res.json(result);
    });
    router.post('/order/queryOrderLogistics',async (req,res)=>{
        const result = await logistics.query(req.body);
        res.json(result);
    });
}
module.exports = OrderRoutes;

在这里插入图片描述

四、查询物流信息

url:http://localhost:1990/order/queryOrderLogistics
params:{
    {
    "com": "yuantong",
    "num": "xxxxxxxxxxx",
    "phone": "",
    "from": "",
    "to": "",
    "resultv2": "4",
    "show": "0",
    "order": "desc"
}

}

在这里插入图片描述

免费版本试用100次

在这里插入图片描述

五、试错与误区

在这里插入图片描述

用于签名的param和get请求url上的param
必须是JSON.stringify(param)的JSON格式,
不能是Object格式,不然一直报签名错误

总结

踩坑路漫漫长@~@

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-19 14:14:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-19 14:14:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-19 14:14:02       87 阅读
  4. Python语言-面向对象

    2024-03-19 14:14:02       96 阅读

热门阅读

  1. 关于BFF

    2024-03-19 14:14:02       39 阅读
  2. ES6数组判断以及原始值转换

    2024-03-19 14:14:02       44 阅读
  3. redis cpu百分百问题

    2024-03-19 14:14:02       36 阅读
  4. flinksql在实时数仓hologres的计算问题排查

    2024-03-19 14:14:02       45 阅读
  5. CSS进阶

    CSS进阶

    2024-03-19 14:14:02      30 阅读
  6. 智能汽车系统安全

    2024-03-19 14:14:02       38 阅读