小程序 模糊查询_小程序接入快递查询API实现快递查询

3381a19656b7ef0bbbbda86ce1107475.png

#1

在做有物品运输需求的小程序时,都会伴生快递查询的需求。

微信小程序后台也有物流助手提供快捷接入,只是现在没有对个人小程序开放。

所以个人小程序只有找第三方快递查询API。

这里我选 www.kuaidi100.com 来实现快递查询功能。

#2

注册账号、申请 API KEY 就不演示了。

直接看接入文档去寻找必须的参数

正式环境请求地址:https://poll.kuaidi100.com/poll/query.do

请求类型:post

输入参数: 

customer: String 是 

sign: String 是

param Object 是

└ com: string 是    

└ num: string 是    

└ phone: string 否    

└ from: string 否    

└ to: string 否   

└ resultv2: int 否

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

完整文档地址: https://www.kuaidi100.com/openapi/api_post.shtml

不是很复杂,还是用之前的 urllib 库实现查询

// 云函数入口文件const cloud = require('wx-server-sdk')const urllib = require('urllib')const md5 = require('md5')  //参数里的 sign 需要param+key+customer 拼接后md5const key = 'yourkey'const customer = 'yourcustomerid'cloud.init()// 云函数入口函数exports.main = async(event, context) => {  const wxContext = cloud.getWXContext()  const openid = wxContext.OPENID  const com =event.com || 'yunda'  const num = event.num || '800398697338673387'  const phone = event.phone || '13612345678'  const query = {com,num,phone}  const param = JSON.stringify(query)  const sign = md5(param + key + customer).toUpperCase()  const api_base = 'https://poll.kuaidi100.com/poll/query.do'  // const api_base = 'https://httpbin.org/get'  let {status, data} = await urllib.request(api_base, {    method: 'GET',    data: {      customer,      sign,      param    },    dataType: 'json'  })  return {    sign,    status,    data  }}

#3

接入很快,不过测试的时候。好像个人免费版都不能获取有效的结果。

我换了好几个快递公司都提示免费版不支持。 

真是无话可说!!

#4

对于个人小程序来说,充钱是不可能充钱的。

不过充或者不充,需求就在那里,不用不行。

既然 kuaidi100 不行,就换其他服务提供商。

搜索了一圈,最后决定用 https://www.trackingmore.com

同样注册、申请KEY、看接入文档。

获取单个运单号实时物流信息 

接口地址:

https://api.trackingmore.com/v2/trackings/realtime

请求方法:post

参数: 

Headers 

Content-Type: application/json 

Trackingmore-Api-Key: YOUR_API_KEY 

Param  

tracking_number: 快递单号 

carrier_code: 运输商简码

https://www.trackingmore.com/api-track-get-realtime-tracking-results-cn.html#realtime

完整文档地址:https://www.trackingmore.com/api-track-get-realtime-tracking-results-cn.html#realtime

也不是很复杂,直接上代码

// 云函数入口文件const cloud = require('wx-server-sdk')const urllib = require('urllib')const key = 'yourkey'cloud.init()// 云函数入口函数exports.main = async(event, context) => {  const wxContext = cloud.getWXContext()  const openid = wxContext.OPENID  const com =event.com || 'yunda'  const num = event.num || '800398697338673387'  const api_base = 'https://api.trackingmore.com/v2/trackings/realtime'  // const api_base = 'https://httpbin.org/post'  let {status, data} = await urllib.request(api_base, {    method: 'POST',    contentType:'json',    headers: { "Trackingmore-Api-Key": key},    data: {      "tracking_number": num,      "carrier_code": com    },    dataType: 'json'  })  return {    status,    data  }}

这次测试一次通过,no error, no warn.

#5

关键代码就这些了,如果你有其他疑问、需求或者需要小程序端完整源码。加我微信一起交流

9bf335aca2ea8fc8a94c9cee416ce4ee.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值