对接抖店API-03 获取订单列表
官方文档 : 抖店开放平台
DOUDIAN_URL :https://openapi-fxg.jinritemai.com
如果前面获取accessToken 和签名都完成了, 那获取订单会简单很多,毕竟已经熟悉了需要的数据结构。
订单列表中只需要注意一下参数排序问题,分页过程就行, 因为接口返回的数据只有100条 ,所以需要多次请求, 跟分页查询类似,只到你查到想要的所有数据 ,然后在存在本地。
/*************************************** 订单详情查询 **********************************/public void searchList(Integer day, PlatformManagementStore store) {String method = "order.searchList";String methodStrUrl = "/order/searchList";String shopId = store.getShopId();//之前获取到的token//从redis获取if (redisUtils.hasKey("tikTokAccessToken" + shopId)) {accessToken = redisUtils.get("tikTokAccessToken" + shopId).toString();} else {JSONObject data = tokenCreate(shopId);if (null == data || "".equals(data)) {System.out.println("accessToken为空,请检查请求API是否正常获取到");return;}accessToken = data.getString("access_token");String expires_in = data.getString("expires_in");redisUtils.set("tikTokAccessToken" + shopId, accessToken, Long.valueOf(expires_in));}SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = simpleDateFormat.format(new Date());//参数加密JSONObject param_json = new JSONObject(true);//当前时间Date now = DateUtils.getNowDate();//day天之前Calendar calendar = DateUtils.toCalendar(now);calendar.add(Calendar.DATE, -day);long endTime = now.getTime();long beginTime = calendar.getTimeInMillis();//下单结束时间param_json.put("create_time_end", String.valueOf(endTime / 1000));//下单开始时间param_json.put("create_time_start", String.valueOf(beginTime / 1000));//分页param_json.put("page", page.toString());param_json.put("size", pageSize.toString());//获取签名String sign = fetchSign(method, param_json.toString(), time);//地址后的参数StringBuffer param = new StringBuffer();param.append("app_key").append("=").append(APP_KEY).append("&");param.append("method").append("=").append(method).append("&");param.append("access_token").append("=").append(accessToken).append("&");param.append("param_json").append("=").append(param_json).append("&");param.append("timestamp").append("=").append(time).append("&");param.append("v").append("=").append("2").append("&");param.append("sign").append("=").append(sign).append("&");// 发送请求String response = HttpUtils.sendPost(DOUDIAN_URL + methodStrUrl, param.toString());JSONObject jsonObject = JSONObject.parseObject(response);if (jsonObject.getIntValue("err_no") == 0) {JSONObject data = jsonObject.getJSONObject("data");String shopOrderList = data.getString("shop_order_list");List<TiktokOrder> tiktokOrders = JSON.parseArray(shopOrderList, TiktokOrder.class);//获取对象tiktokOrderList.addAll(tiktokOrders);try {if (tiktokOrders.size() == pageSize) {page++;//由于有分页迭代获取订单searchList(day, store);} else {//创建订单列表, 订单详细, 订单地址三个ListList<TiktokOrder> orderList = new ArrayList<>();List<TiktokOrderDetail> orderDetailList = new ArrayList<>();List<TiktokOrderAddress> orderAddressList = new ArrayList<>();//迭代完毕后再保存System.out.println("解析订单成功");for (TiktokOrder order : tiktokOrderList) {//判断订单状态 2备货中if (null == order || order.getOrderStatus() != 2) {continue;}// 查询订单详情接口skuOrderDetailList = orderDetail(order.getOrderId(), shopId);if (null != skuOrderDetailList && skuOrderDetailList.size() > 0) {for (TiktokOrderDetail detail : skuOrderDetailList) {detail.setParentOrderId(order.getOrderId());orderDetailList.add(detail);}skuOrderDetailList = null;}//保存订单地址List<TiktokOrderAddress> addressList = order.getPostAddr();for (TiktokOrderAddress address : addressList) {address.setOrderId(order.getOrderId());orderAddressList.add(address);}/*** 保存关于店铺的信息*/order.setStoreName(store.getStoreName());order.setStoreId(store.getStoreId());order.setStoreCode(store.getStoreCode());//保存订单orderList.add(order);}//执行保存到数据库操作if (null != orderList && orderList.size() > 0) {tiktokOrderService.batchInsertTiktokOrder(orderList);}if (null != orderDetailList && orderDetailList.size() > 0) {tiktokOrderDetailService.batchInsertTiktokOrderDetail(orderDetailList);}if (null != orderAddressList && orderAddressList.size() > 0) {tiktokOrderAddressService.batchInsertTiktokOrderAddress(orderAddressList);}}} catch (Exception e) {e.printStackTrace();} finally {//这个步骤好像是不用的 ,可以移除page = 0;tiktokOrderList = new ArrayList<>();}}/*************************************** 获取订单详情接口 **********************************/public List<TiktokOrderDetail> orderDetail(String shopOrderId, String shopId) {//如果之前存储过 ,则不继续存储订单详情String method = "order.orderDetail";String methodStrUrl = "/order/orderDetail";//之前获取到的token//从redis获取if (redisUtils.hasKey("tikTokAccessToken" + shopId)) {accessToken = redisUtils.get("tikTokAccessToken" + shopId).toString();} else {JSONObject data = tokenCreate(shopId);if (null == data || "".equals(data)) {System.out.println("accessToken为空,请检查请求API是否正常获取到");return null;}accessToken = data.getString("access_token");String expires_in = data.getString("expires_in");redisUtils.set("tikTokAccessToken" + shopId, accessToken, Long.valueOf(expires_in));}SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = simpleDateFormat.format(new Date());//参数加密JSONObject param_json = new JSONObject(true);//订单id - orderIDparam_json.put("shop_order_id", shopOrderId);//获取签名String sign = fetchSign(method, param_json.toString(), time);//地址后的参数StringBuffer param = new StringBuffer();param.append("app_key").append("=").append(APP_KEY).append("&");param.append("method").append("=").append(method).append("&");param.append("access_token").append("=").append(accessToken).append("&");param.append("param_json").append("=").append(param_json).append("&");param.append("timestamp").append("=").append(time).append("&");param.append("v").append("=").append("2").append("&");param.append("sign").append("=").append(sign);// 发送请求String response = HttpUtils.sendPost(DOUDIAN_URL + methodStrUrl, param.toString());JSONObject jsonObject = JSONObject.parseObject(response);if (jsonObject.getIntValue("err_no") == 0) {JSONObject data = jsonObject.getJSONObject("data").getJSONObject("shop_order_detail");if (null != data && data.size() > 0) {String skuOrderList = data.getString("sku_order_list");List<TiktokOrderDetail> tiktokOrders = JSON.parseArray(skuOrderList, TiktokOrderDetail.class);return tiktokOrders;}}return null;}
对接抖店API-03 获取订单列表相关推荐
- 前端学习(2024)vue之电商管理系统电商系统之根据分页获取订单列表数据
目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...
- 【对接抖店平台】 14测试版店铺Product.addV2接口粗讲 Java版 工具型
背景 看过我发布的对接平台的小伙伴已经知道了,原先的商品API发布业务逻辑其实已经都讲的七七八八了! 商品添加无外乎,规格建好后组装商品,商品绑定规格,在sku里呈现product组装spec子集的细 ...
- 【快代理API】获取订单IP提取余额
接口描述 https://dps.kdlapi.com/api/getdpsvalidtime 接口地址 获取订单IP提取余额 此接口只对按量付费订单和包年包月的集中提取型订单有效 对于按量付费订单, ...
- 对接抖店API-01 获取参数签名
最近公司要求要对接抖音小店获取店铺订单数据,所以按照抖店开放平台API上获取拉取订单 官方参考文档:抖店开放平台 下面是我本地的Demo代码: JSONObject对象里面存放的业务参数 param_ ...
- HDFS的API操作-获取文件列表信息
遍历 HDFS 中所有文件 递归遍历 @Test public void listFile() throws Exception{FileSystem fileSystem = FileSystem. ...
- 淘宝API接口:获取买家购买到的订单列表
今天分享的接口是获取买家购买到的订单列表,也客户获取店铺卖出去的订单列表. 获取形式有2种,一种是通过插件的形式,另外一种是通过授权登入. 淘宝/天猫获取购买到的商品订单列表 API 返回值说明 获取 ...
- 简单对接抖音小店的接口
最近公司需要对接抖音小店的接口.然后其实对接起来还是蛮简单的,不过自己阅读文档的能力还有点问题,所以这里记录一下开发遇到的问题. 文档地址:https://op.jinritemai.com/docs ...
- 订单列表分页获取注意事项
订单列表分页获取注意事项 获取数据 用户的订单数量有可能有很多,所以对数据库进行查询时不宜整体取出,这样会对数据库产生较大压力. 应改为根据条件只分页获取需要的数据 本次项目中使用的数据库操作工具类是 ...
- Vue电商项目—订单管理—订单列表模块-10
Vue电商项目-订单管理-订单列表模块-10 1.1 订单管理概述 订单管理模块用于维护商品的订单信息, 可以查看订单的商品信息.物流信息, 并且可以根据实际的运营情况对订单做适当的调整. 1.2 订 ...
最新文章
- android显示温湿度设计与实现,基于Android平台蝴蝶兰大棚温湿度测控系统的设计与实现...
- .net 文件服务器系统,File-service基于ASP.NET Core的可伸缩、通用的文件服务器
- 文件与目录权限,文件查找
- linux驱动篇之 driver_register 过程分析(二)bus_add_driver
- 【Lucene】Lucene的工作原理
- Redis安装-win-linux-mac
- Top Secret Task(dp+滚动数组)
- laravel mysql 视图_视图入门:Laravel 支持的视图格式以及在路由中的基本使用
- 三坐标测量圆直径_多台三坐标测量机联动测量方法的研究
- PyTorch:安装和配置
- netdev_priv
- IOS测试版全版本固件下载集合
- QQ游戏大厅产品体验报告
- JS中调用后台方法进行验证返回值后加?的意思在GridView中指定一列为超级链接并有查询字符串的写法...
- ECCV2016 paper list (完整版)
- requests模块下
- WebServer·(二)在IDEA中,安装配置Maven并且开发MavenHelloWorld
- 阿里云Linux下python3的安装及环境配置(详细教程)
- endcap和welltap_ICC布局规划
- 前端:客户端渲染 vs 服务器渲染
热门文章
- 浏览器网页打不开但是电脑有网
- java实现微信公众号图文、视频一键发布
- 凌华服务器维护手册,凌华科技cPCIS-3300BLS/HMP服务器在智能网络的解决方案
- 驾校APP科目一免费练题软件 千锤百炼成绩高
- 基于区块链的电子病历系统毕业设计
- 模糊度判断:史上最详细图像质量评价(IQA)-训练自定义数据集--第三节
- 2022年报名PMI-ACP考试,只需满足两个条件
- java 卡表,关于jvm:聊一聊Java垃圾回收与卡表技术
- 防京东淘宝商城网站------2.项目配置以及自生成代码
- jvm根节点枚举、安全点、安全区域、记忆集、卡表、写屏障、并发的可达性分析