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

uniapp开发微信小程序使用物流服务的查询组件展示订单物流信息,以及使用中会遇到的问题

需求描述

自己开发的微信小程序商城,用户下单后如何像淘宝、京东等可以查看跟踪物流配送状态那,我们可以使用微信小程序自带的物流服务下的查询组件来实现,只需要简单配置即可跟踪同城配送订单状态以及快递物流的配送状态,如下图所示:
在这里插入图片描述
可以查看官方文档,不过文档是针对微信小程序的,下面我们就按照步骤,给大家说一下在uniapp中如何安装查询插件,可以实现微信小程序内查询物流订单。

1.组件权限开通

在小程序后台找到,支付与交易 -> 物流服务 -> 查询组件,点击开通,在弹窗选择开通即可,完成后即可使用该物流查询组件,可以看到查看接口文档查看具体的参数。
在这里插入图片描述

2.在uniapp项目中导入插件

如果使用的微信原生开发,那么就需要在小程序的app.json中声明,如果使用的uniapp开发的,那就需要在根目录下找到manifest.json -> 点击源码视图 -> 引入插件,如下图所示,在mp-weixin中写入如下代码:

"plugins": {"logisticsPlugin": {"version": "2.1.12","provider": "wx9ad912bf20548d92"}
}

在这里插入图片描述

3.在页面中使用

以下图为例,页面中有个“配送跟踪”的文本,点击的时候来查看物流轨迹,在当前页面中执行如下代码。
在这里插入图片描述

//引入插件
const plugin = requirePlugin('logisticsPlugin');//添加点击事件触发组件
<text @click="toDeliveryPage">配送跟踪</text>//在方法中调用插件方法
const toDeliveryPage = async () => {try {		plugin.openWaybillTracking({waybillToken: ?????});} catch (err) {console.log(err);}
};

直接将上面代码拷贝至你的项目,重新编译有可能会报错:
MiniProgramError
This application has not registered any plugins yet.
Error: This application has not registered any plugins yet.
出现这个错误,可以删掉根目录下打包文件unpackage -> dist -> dev -> mp-weixin删掉这个文件夹,直接重新编译,应该就没有这个错误了。

4.调用微信后台API获得waybillToken值

我的后台使用unicloud,所以就在客户端调用云对象,调用api来查询微信快递服务详情获得waybillToken

const { encryption } = require('xxm-wx-crypto');
async trace_waybill({ _id } = {}) {try {let {errCode,errMsg,data: order = {}} = await dbJQL.collection('JLJ-pay-order').doc(_id).field(`transport_info,transport_order,openid`).get({getOne: true});let { openid, transport_order = {}, transport_info = {} } = order;const waybill_id = transport_info.type === 0 ? transport_order.trans_order_id : transport_order.express_order_id;let { errcode, errmsg, waybill_token } = await encryption({url_path: 'https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/trace_waybill',openid: openid,receiver_phone: transport_info.user_phone,waybill_id});if (errcode != 0) return result({ errCode: 400, errMsg: 'error', custom: errmsg });return result({ errCode: 0, errMsg: 'success', data: { waybill_token } });} catch (err) {return result({ errCode: 500, errMsg: 'bug', custom: err });}
}

在上面云对象中使用了xxm-wx-crypto插件,去插件市场下载,按照文档调用微信后台API获取到waybillToken,在客户端就可以使用获取的值获得订单详情。

const toDeliveryPage = async () => {try {		let { errCode, errMsg, data } = await orderCloudObj.trace_waybill({ _id: id });plugin.openWaybillTracking({waybillToken: data.waybill_token});} catch (err) {console.log(err);}
};

注意: 想要查看订单详情,不能在开发者工具查看,需要使用预览或者真机调试,才能看到跳转到物流订单轨迹详情。

http://www.dtcms.com/a/525103.html

相关文章:

  • 天河做网站营销推广公司经营范围
  • wordpress 评论表情插件金沙百度seo优化公司
  • Ubuntu (Linux) 安装Docker
  • 鸿蒙OS 生命周期中调用的函数流程图
  • 宁国建设投资有限公司网站网站开发模合同
  • vue3 confirm倒计时
  • 定制网站与模板建站维护二级网站建设基本情况
  • 流行网站开发工具wordpress主题屋
  • ManiSkill2学习笔记
  • LeetCode:200. 岛屿数量
  • 【C】函数指针
  • 响应式网站是什么意思上海公布最新情况
  • 七牛云建网站暴雪退款申请快速入口
  • 桂林手机网站制作最新人才招聘网
  • AI驱动的客户管理:悟空AI CRM的核心功能与优势
  • 零基础网站建设教学公司wordpress 点击文章图片路径
  • [cpprestsdk] 异步编程模型 | `pplx::task<T>`| `.get()``.then()`
  • 简单而管用的清理gpu显存的方法及分析
  • 哪个网站做化妆品效果好用ps做美食网站
  • 第7章 muduo编程示例(4)
  • 网站备案是不是就是空间备案西安搬家公司收费情况一览表
  • 网站开发项目详细计划天津住房与城乡建设厅网站
  • ROS2(3)入门篇 - 使用客户端库
  • 佛山新网站制作特色php门户网站源码
  • 前端如何调试?从浏览器到真机的完整调试实践指南
  • 登陆国外网站速度慢企业网站制作
  • 网站制作top北京网站推广营销策划
  • 深入理解AtomicBoolean的使用与底层原理
  • 教育类手机网站模板下载wordpress 导出用户
  • 电商履约大促峰值应对:核心业务数据预热方案详解