当前位置: 首页 > news >正文

前端pc和小程序接入快递100(跳转方式和api方式)====实时查询接口

文章目录

    • 跳转方式
      • 微信小程序(我以uniapp为例)
      • pc
    • api接入
      • 说明
      • 关于签名计算
      • 成功示例

跳转方式

没有任何开发成本,直接一键接入

可以直接看官方文档

https://www.kuaidi100.com/openapi/api_wxmp.shtml

微信小程序(我以uniapp为例)

https://fuwu.weixin.qq.com/service/detail/00008caeab84c07c17dcdabf55b815

  1. 小程序管理后台添加插件(【设置】-【第三方设置】-【插件管理】-【搜索 wx6885acbedba59c14】)
    在这里插入图片描述

  2. manifest.json增加配置(这里直接copy不用改动)

    "mp-weixin": {"plugins": {"kdPlugin": {"version": "1.1.2","provider": "wx6885acbedba59c14"}}
    }
    
  3. 调用插件

    // num是快递单号 appName是小程序的名称 还有其他参数参见官网uni.navigateTo({url: "plugin://kdPlugin/index?num=xxx&appName=xxx",
    })<navigator url="plugin://kdPlugin/index?num=xxx&appName=xxx"></navigator>
    

缺点:

  1. 默认页面只有最新的一条数据,如果要查看更多需要跳转到他们的小程序
  2. 跳转到他们的小程序默认有几秒钟的广告(虽然可以跳过)

pc

https://www.kuaidi100.com/openapi/api_jump.shtml

window.open('https://www.kuaidi100.com/chaxun?com=[]&nu=[]');

缺点:经我测试查询有问题

  1. 有时候能出结果,但有时候查不出结果
  2. 查询很慢,需要3-7秒左右

我猜测这个应该是官方做了限制,避免被白嫖

api接入

说明

这种方式需要服务端接入,而不是前端直接接入(postman可以调通,但是浏览器会有跨域问题

关于签名计算

官方写的很简单:签名, 用于验证身份, 按param + key + customer 的顺序进行MD5加密(注意加密后字符串一定要转32位大写), 不需要加上“+”号

我最后是通过管理后台的签名和我自己写的签名算法对比才得出最终的计算方式

有几点需要注意的

  1. 请求头的content-typeapplication/x-www-form-urlencoded
  2. 虽然请求方式是post,但是参数写到bodyurl中都是可以的
  3. !!!尤其需要注意param参数的写法,是一个对象,开始的时候我一直在考虑这个怎么传递,因为不是json写法,所以纠结了好久

这里直接给出demo(注意:这里需要安装一个md5加密库

import axios from 'axios';
import CryptoJS from 'crypto-js';function generateSignature(param, key, customer) {// 如果param是对象,则将其转换为字符串let paramStr = '';if (typeof param === 'object') {paramStr = JSON.stringify(param);} else {paramStr = param;}// 拼接字符串const data = paramStr + key + customer;// 进行MD5加密const hash = CryptoJS.MD5(data);// 将加密后的字符串转为32位大写const signature = hash.toString(CryptoJS.enc.Hex).toUpperCase();return signature;
}const key = 'xxx';
const customer = 'xxx';/* data示例:
{com:'yuantong',num: 'YT8979806571449',
}
*/
export function query(data) {return axios.post('https://poll.kuaidi100.com/poll/query.do',{param: data,sign: generateSignature(data, key, customer),customer,},{headers: {'Content-Type': 'application/x-www-form-urlencoded',},});
}

成功示例

在这里插入图片描述

相关文章:

  • Self-supervised Learning for Pre-Training 3D Point Clouds: A Survey
  • 如何免费用java c#实现手机在网状态查询
  • 【Apache POI】Java解析Excel文件并处理合并单元格-粘贴即用
  • Java 在PDF中替换文字(详解)
  • Google资深工程师深度讲解Go语言-课程笔记
  • 一个简单的springboot应用搭建过程
  • 第2部分:物联网模式在行动
  • Vue进阶之Vue无代码可视化项目(七)
  • 口袋奇兵游戏攻略:云手机辅助战锤入侵策略指南!
  • 防御综合实验作业2
  • Web开发:<br>标签的作用
  • 裸金属服务器
  • Java:Bean实体对象和Map互相转换
  • 内容长度不同的div如何自动对齐展示
  • C/C++蓝屏整人代码
  • php的引用
  • AHK 中 = 和 == 等比较运算符的用法
  • create-react-app做的留言板
  • CSS盒模型深入
  • JavaScript对象详解
  • Tornado学习笔记(1)
  • Webpack 4 学习01(基础配置)
  • WebSocket使用
  • 简单易用的leetcode开发测试工具(npm)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 来,膜拜下android roadmap,强大的执行力
  • 前端_面试
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 我看到的前端
  • UI设计初学者应该如何入门?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (04)odoo视图操作
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (poj1.3.2)1791(构造法模拟)
  • (含笔试题)深度解析数据在内存中的存储
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十三)Maven插件解析运行机制
  • (一)appium-desktop定位元素原理
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net Signalr 使用笔记
  • .net和php怎么连接,php和apache之间如何连接
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET未来路在何方?
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @vue-office/excel 解决移动端预览excel文件触发软键盘
  • [ C++ ] STL---仿函数与priority_queue
  • [android] 看博客学习hashCode()和equals()
  • [C++] new和delete
  • [c++] 自写 MyString 类
  • [CareerCup] 14.5 Object Reflection 对象反射