赞
踩
没有任何开发成本,直接一键接入
可以直接看官方文档
https://www.kuaidi100.com/openapi/api_wxmp.shtml
https://fuwu.weixin.qq.com/service/detail/00008caeab84c07c17dcdabf55b815
小程序管理后台添加插件(【设置】-【第三方设置】-【插件管理】-【搜索 wx6885acbedba59c14】)
manifest.json
增加配置(这里直接copy不用改动)
"mp-weixin": {
"plugins": {
"kdPlugin": {
"version": "1.1.2",
"provider": "wx6885acbedba59c14"
}
}
}
调用插件
// num是快递单号 appName是小程序的名称 还有其他参数参见官网
uni.navigateTo({
url: "plugin://kdPlugin/index?num=xxx&appName=xxx",
})
<navigator url="plugin://kdPlugin/index?num=xxx&appName=xxx"></navigator>
缺点:
https://www.kuaidi100.com/openapi/api_jump.shtml
window.open('https://www.kuaidi100.com/chaxun?com=[]&nu=[]');
缺点:经我测试查询有问题
3-7
秒左右我猜测这个应该是官方做了限制,避免被白嫖
这种方式需要服务端接入,而不是前端直接接入(postman可以调通,但是浏览器会有跨域问题
)
官方写的很简单:签名, 用于验证身份, 按param + key + customer 的顺序进行MD5加密(注意加密后字符串一定要转32位大写), 不需要加上“+”号
我最后是通过管理后台
的签名和我自己写的签名算法对比才得出最终的计算方式
有几点需要注意的
content-type
为application/x-www-form-urlencoded
body
和url
中都是可以的!!!
尤其需要注意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', }, } ); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。