Java小程序|网页后台 物流查询 第三方平台:极速数据物流查询
Java小程序|网页后台 物流查询 第三方平台:极速数据物流查询
注:采用jfinal框架,代码有一丢丢差别,基本上就是接收参数区别,无影响,
与SSM框架无异。
1、主体代码
/*** 提供物流单号+手机号(顺丰需要)----查询实时物流信息(小程序接口)*/public void getLogistics() {String orderId = getPara("id");String sql0 = "SELECT * FROM mall_orders WHERE id=?";Record first = Db.findFirst(sql0, orderId);if (first == null) {renderJson(Ret.fail("info", "订单信息不存在!"));}String sql = "SELECT deliverySn, shipPhone FROM mall_shipping WHERE order_id=?";Record record = Db.findFirst(sql, orderId);String deliverySn = record.getStr("deliverySn");String phone = record.getStr("shipPhone");if (deliverySn != null) {try {//物流轨迹接口,先调阿里云接口,阿里云没有,再查询快递鸟deliverySn = deliverySn + "," + phone;//如果是顺丰需要手机号JSONObject jsonObject = YunKdUtil.getOrderTracesXcx(deliverySn);if (jsonObject != null && "0".equals(jsonObject.getString("status"))) {//查询成功JSONArray traces = jsonObject.getJSONObject("result").getJSONArray("list");System.out.println("traces = " + traces);setAttr("traces", traces);setAttr("type", "aliyun");}renderJson(Ret.ok("data", jsonObject));
// render("logistics_info.html");} catch (Exception e) {e.printStackTrace();}} else {setAttr("type", "kdn");setAttr("reasonAdmin", "该订单未关联物流信息!");render("logistics_info.html");}}
2、工具类(YunKdUtil)
/*** 物流查询* @param deliverySn* @return*/public class YunKdUtil {private static String host = "https://api.jisuapi.com";private static String method = "GET";private static String AppCode = "xxxx"; //找官网https://www.jisuapi.com/,申请一个免费的就可以测试了,填写自己的AppCodepublic static JSONObject getOrderTracesXcx(String deliverySn) {System.out.println("deliverySn-------------" + deliverySn);//取第一个部分为单号,第二个为手机号String[] split = deliverySn.split(",");Cache cache = Redis.use(PropUtil.cacheName);JSONObject returnJson = cache.get(split[0]);if (returnJson == null) {String path = "/express/query";Map<String, String> headers = new HashMap<String, String>();headers.put("Authorization", "APPCODE " + AppCode);Map<String, String> querys = new HashMap<String, String>();querys.put("number", split[0]);querys.put("type", "auto");querys.put("appkey", AppCode);try {String s = split[0];String substring = s.substring(0, 2);
// boolean b = !"SF".equals(substring);if (!"SF".equals(substring)) {//此处不是顺丰HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);//获取response的bodyString str = EntityUtils.toString(response.getEntity());System.out.println("str----" + str);if (StrKit.notBlank(str)) {returnJson = JSON.parseObject(str);cache.setex(split[0], 2 * 3600, returnJson);//缓存两个小时}} else {//此处是顺丰
// int mobile = Integer.parseInt(split[1]);String mobile = split[1];querys.put("mobile", mobile);System.out.println(querys+" -----------------");HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);//获取response的bodyString str = EntityUtils.toString(response.getEntity());System.out.println("str----" + str);if (StrKit.notBlank(str)) {returnJson = JSON.parseObject(str);cache.setex(deliverySn, 2 * 3600, returnJson);//缓存两个小时(与ssm略有不同,本质就是redis缓存而已)}}} catch (Exception e) {e.printStackTrace();}}return returnJson; //SSM框架自己return就行,我们封装了,略有差异,无影响}}//普通快递,输入物流单号就可以查,顺丰除了物流单号,还必须提供该订单手机号才可。
有问题欢迎评论区讨论哦!
欢迎订阅微信订阅号:是小李哦
Java小程序|网页后台 物流查询 第三方平台:极速数据物流查询相关推荐
- 微信小程序,个人开发者创业新平台
在移动互联网世界,微信无小事,微信的事,是整个创业圈的事.经过一年多的酝酿,2017年1月9日,微信小程序发布了.发布伊始,无疑是对整个业界注入一剂兴奋剂,整个微信的生态圈的企业和个人开发者,都跃跃欲 ...
- 基于java springboot的小说阅读微信小程序含后台管理系统源码
系统运行环境 开发工具 eclipse(idea),mysql5.7(大于5.5),navicat,小程序开发工具 硬件要求 windows操作系统 cpu:2.4GHz 内存:4G 硬盘:100G ...
- Java小程序post如何传参,微信小程序向Java后台传输参数的方法实现
微信小程序向Java后台传输参数的方法实现 首先,微信小程序我使用的是微信web开发者工具 想要向后台传输数据,需要在js中写 在微信小程序的官方文档中可以看到一个api叫wx.request它的作用 ...
- dw网页插入java小程序_DW网页设计100例35:构建Java插入模块
Java 是一种程序设计语言, Java applet ( Java 小程序)是在 Java 的基础上演变而成的.能够嵌入在网页中的.可以执行一定小任务的应用程序. 20060407140110aa1 ...
- dw网页插入java小程序_DW网页设计35:构建Java插入模块
Java 是一种程序设计语言, Java applet ( Java 小程序)是在 Java 的基础上演变而成的.能够嵌入在网页中的.可以执行一定小任务的应用程序. 效果说明建立文件,以 Java 计 ...
- 计算机毕业设计(42)java小程序毕设作品之小说电子书阅读小程序系统
项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序在线电子书阅读系统,前台用户使用小程序,后台管理使用基Java+MySql技术:通过后台录入电子书信息.书目录信息,用户通过小程序 ...
- 计算机毕业设计(49)java小程序毕设作品之菜谱美食小程序系统
项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序美食菜谱点评系统,前台用户使用小程序,后台管理使用Java+Mysql开发,后台使用了springboot框架:通过后台添加资讯和 ...
- 计算机毕业设计(50)java小程序毕设作品之校园浴室预约小程序系
项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序浴室预约系统,前台用户使用小程序,后台管理使用Java+Mysql开发,后台使用了springboot框架:通过后台添加设定浴室类 ...
- 基于Bluemix快速构建部署一款Java小程序——微博影响力分析器
一.前言 近年来IT界风云际会,各种新概念如大数据.云平台.虚拟化等,如雨后春笋般层出不穷.而云平台,可以说是近些年来引领时代新潮的边缘概念之一,各大厂商竞相推出各种云产品,抢占云市场高地.近期,IT ...
最新文章
- 第二十二章 SHELL脚本-CENTOS7.5知识
- pytorch 查看gpu cuda版本
- 开关灯效果思路代码分享
- kylin 部分问题
- linux退出编辑器命令,LINUX中,Vi编辑器的几种模式及保存、退出等命令
- 深度学习 CNN CUDA 版本2
- PAT_B_1092_Java(15分)_C++(20分)
- 【安卓开发 】Android初级开发(八)WebView网页
- ***error*** (zip#Browse) unzip not available on your system
- 用记事本打造简易计算器
- DeepLearningAI 学习笔记 1.1 深度学习概论
- .NET Core 3.0 稳定版发布
- oracle--merge
- 枚举算法典型的三个例子
- Real-Time Rendering——Chapter 11 Non-Photorealistic Rendering
- App测试工具大全,收藏这篇就够了
- 2013中国电商盘点回顾
- C++中的RECT类
- 5000预算组装台式机配置清单
- MySql根据字段名查询重复记录并删除!只保留一条