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

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

文章目录

  • 前言
  • 一、安装md5,axios,qs
  • 二、新建config/logistics.js
  • 三、修改routes/order.js
  • 四、添加商品到购物车
  • 总结


前言

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

一、安装md5,axios,qs

npm install axios qs md5 --save-dev

在这里插入图片描述

二、新建config/logistics.js

dao/order.js

const axios = require('axios');
const qs = require('qs');
const md5 = require('md5');//商户ID 请在我的服务页面查看。
let EBusinessID = "xxxxxxxxx";
//加密私钥,由快递鸟提供
let ApiKey = "xxxxxxxxxxxxxxxxxxxxxxxxx";
//请求地址
let url = 'https://api.kdniao.com/api/dist'
//2-json
let DataType = "2";
// 请求指令类型  8002 快递查询API
let RequestType = "8002"const logistics = {query:async (data)=>{const DataSign = Buffer.from(md5(JSON.stringify(data)+ApiKey)).toString('base64');axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';const res = await axios.post(url,qs.stringify({RequestData:JSON.stringify(data),EBusinessID,RequestType,DataSign,DataType,}))console.log(res.data);return res.data}
}module.exports = logistics;

在这里插入图片描述
EBusinessID,ApiKey 通过 快递鸟个人信息获取

EBusinessID对应用户ID
ApiKey对应API 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:{"ShipperCode":"YTO","LogisticCode":"xxxxxxxxxxxxxxx","OrderCode":""
}

在这里插入图片描述

免费版本试用为7天或100次

在这里插入图片描述

总结

踩坑路漫漫长@~@

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/748425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux进程补充

进程 一、进程创建 1.fork fork() //Linux创建子进程的系统调用,允许创建多个子进程,使用循环创建多个子进程; //需要注意的是,创建出来的进程与父进程在调度是由调度器决定的,并没有严格的先后顺序;二、…

组建对等网

一、概念 对等网络(Peer-to-Peer, P2P)是一种分布式网络架构,其中每个参与节点(称为"对等体"或"节点")既可以作为客户端也可以作为服务器,直接与网络中的其他节点分享资源&#xff08…

基于Python django的人脸识别门禁系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、Python技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅&…

Chrome的V8引擎 和操作系统交互介绍

Chrome的V8引擎是一个用C编写的开源JavaScript和WebAssembly引擎,它被用于Chrome浏览器中,以解释和执行JavaScript代码。V8引擎将JavaScript代码转换为机器代码,这使得JavaScript能够以接近本地代码的速度运行。 V8引擎与操作系统的交互主要体…

亚马逊国际获得AMAZON商品详情 API 返回值说明

亚马逊国际的商品详情API返回值通常包含了关于商品的详细信息,这些信息对于开发者来说是非常有价值的,因为它们可以用于构建电商应用、展示商品信息、比价购物等场景。 item_get-获得AMAZON商品详情调用链接获取 amazon.item_get 公共参数 下面是一个简…

Adobe PDF背景设置护眼模式,缓解眼部疲劳

一、背景 在用Adobe PDF看论文时,默认的白色背景看久了,眼睛会特别疲劳,下面介绍如何设置背景为护眼模式。 二、设置PDF为护眼模式 使用Adobe Acrobat Pro DC打开任意PDF文件,在上方工具栏选择“编辑”,在下拉菜单栏…

浏览器同源策略及跨域问题

同源策略:同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 同源策略的作用:保护浏览器中网站的安全,限制ajax只…

第五节:使用SMB开发WebSocket通信

一、概述 本节主要讲解在SMB中如何进行websocket快速开发,实现客户端连接、关闭、消息通讯等功能。 示例下载:https://download.csdn.net/download/lllllllllluoyi/88949743 二、创建WebSocket服务器 1、在csdnProject工程中新建一个消息流。 添加W…

pytorch升级打怪(三)

数据集合数据加载器 简介加载数据集迭代和可视化数据集为您的文件创建自定义数据集__init____len____getitem__ 准备您的数据以使用DataLoaders进行训练通过DataLoader进行遍载 简介 处理数据样本的代码可能会变得混乱且难以维护;理想情况下,我们希望我…

N7977A 先进电源系统:动态直流电源,160 V,12.5 A,2000 W

N7977A 先进电源系统:动态直流电源 160 V,12.5 A,2000 W Keysight N7977A 专为需要高速动态电源和测量功能的自动化测试设备(ATE)应用而设计。 简述 支持 BenchVue 软件。 无需编程,即可结合使用您的计…

NCP1271D65R2G中文资料规格书PDF数据手册引脚图参数图片价格功能特性描述

产品描述: NCP1271 是成功的 7 引脚电流模式 NCP12XX 系列的新一代引脚-引脚兼容新产品。该控制器通过使用可调节 Soft Skip 模式和集成的高电压启动 FET,实现了卓越的待机功耗。此专属 Soft Skip 还大大降低了噪音的风险。 因此可以在箝位网络中使用不…

模型蒸馏--一起学习吧之人工智能

一、定义 模型蒸馏(Model Distillation)是一种模型压缩技术,旨在将一个复杂的大型模型(通常称为教师模型)的知识转移到另一个更小、更简单的模型(通常称为学生模型)中。这种技术通过训练学生模…

如何在代理的IP被封后立刻换下一个IP继续任务

目录 前言 1. IP池准备 2. 使用代理IP进行网络请求 3. 处理IP被封的情况 4. 完整代码示例 总结 前言 当进行某些网络操作时,使用代理服务器可以帮助我们隐藏真实IP地址以保护隐私,或者绕过一些限制。然而,经常遇到的问题是代理的IP可能…

BlenderGIS 快捷键E 报错问题 Report: Error

最新版的Blender4.0 对于 BlenderGIS2.28版本的插件不兼容,BlenderGIS2.28兼容Blender3.6.9及之前的版本,应该是BlenderGIS插件很久没更新了导致的。

C#构建类库

类库程序集能将类型组合成易于部署的单元(DLL文件),为了使编写的代码能够跨多个项目重用,应该将他们放在类库程序集中。 一、创建类库 在C#中,构建类库是指创建一个包含多个类的项目,这些类可以被其他应用…

热流道融合3D打印技术正在成为模具制造新利器

在模具领域中,3D打印技术与热流道技术联手,能迸发出更耀眼的光芒。两种技术虽然各有特点,但两者结合将形成互补作用,从而实现11>2”的跨越式提升。 将增材制造的灵活思维融入传统模具设计时,不仅能够突破传…

王勇:硬科技的下一站 | 演讲嘉宾公布

一、智能耳机与可穿戴专题论坛 智能耳机与可穿戴专题论坛将于3月27日同期举办! 智能耳机、可穿戴设备已经逐渐融入我们的生活,它们不仅带来了便捷与舒适,更在悄然改变着我们的生活方式和工作模式。在这里,我们将分享最新的研究成果…

别再手动拼接 SQL 了,MyBatis 动态 SQL 写法应有尽有,建议收藏!

一、MyBatis动态 sql 是什么 动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。 例如,拼接时要确保添加了必要的空格,还要注意去掉…

[SaaS] 淘宝设AI

“淘宝设计AI” 让国际大牌造世界双11超级品牌 超级发布https://mp.weixin.qq.com/s/xFVDARQHxlweKAYG91DtYw下面是一个完整的品牌营销海报设计流程,AIGC起到了巨大作用,但是仍然很难去一步解决这个问题,还是逐步修改的一个过程。 Midjouner…

分布式与集群,二者区别是什么?

🐓分布式 分布式系统是由多个独立的计算机节点组成的系统,这些节点通过网络协作完成任务。每个节点都有自己的独立计算能力和存储能力,可以独立运行。分布式系统的目标是提高系统的可靠性、可扩展性和性能。 分布式服务包含的技术和理论 负…