官方文档 : 抖店开放平台

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 获取订单列表相关推荐

  1. 前端学习(2024)vue之电商管理系统电商系统之根据分页获取订单列表数据

    目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...

  2. 【对接抖店平台】 14测试版店铺Product.addV2接口粗讲 Java版 工具型

    背景 看过我发布的对接平台的小伙伴已经知道了,原先的商品API发布业务逻辑其实已经都讲的七七八八了! 商品添加无外乎,规格建好后组装商品,商品绑定规格,在sku里呈现product组装spec子集的细 ...

  3. 【快代理API】获取订单IP提取余额

    接口描述 https://dps.kdlapi.com/api/getdpsvalidtime 接口地址 获取订单IP提取余额 此接口只对按量付费订单和包年包月的集中提取型订单有效 对于按量付费订单, ...

  4. 对接抖店API-01 获取参数签名

    最近公司要求要对接抖音小店获取店铺订单数据,所以按照抖店开放平台API上获取拉取订单 官方参考文档:抖店开放平台 下面是我本地的Demo代码: JSONObject对象里面存放的业务参数 param_ ...

  5. HDFS的API操作-获取文件列表信息

    遍历 HDFS 中所有文件 递归遍历 @Test public void listFile() throws Exception{FileSystem fileSystem = FileSystem. ...

  6. 淘宝API接口:获取买家购买到的订单列表

    今天分享的接口是获取买家购买到的订单列表,也客户获取店铺卖出去的订单列表. 获取形式有2种,一种是通过插件的形式,另外一种是通过授权登入. 淘宝/天猫获取购买到的商品订单列表 API 返回值说明 获取 ...

  7. 简单对接抖音小店的接口

    最近公司需要对接抖音小店的接口.然后其实对接起来还是蛮简单的,不过自己阅读文档的能力还有点问题,所以这里记录一下开发遇到的问题. 文档地址:https://op.jinritemai.com/docs ...

  8. 订单列表分页获取注意事项

    订单列表分页获取注意事项 获取数据 用户的订单数量有可能有很多,所以对数据库进行查询时不宜整体取出,这样会对数据库产生较大压力. 应改为根据条件只分页获取需要的数据 本次项目中使用的数据库操作工具类是 ...

  9. Vue电商项目—订单管理—订单列表模块-10

    Vue电商项目-订单管理-订单列表模块-10 1.1 订单管理概述 订单管理模块用于维护商品的订单信息, 可以查看订单的商品信息.物流信息, 并且可以根据实际的运营情况对订单做适当的调整. 1.2 订 ...

最新文章

  1. android显示温湿度设计与实现,基于Android平台蝴蝶兰大棚温湿度测控系统的设计与实现...
  2. .net 文件服务器系统,File-service基于ASP.NET Core的可伸缩、通用的文件服务器
  3. 文件与目录权限,文件查找
  4. linux驱动篇之 driver_register 过程分析(二)bus_add_driver
  5. 【Lucene】Lucene的工作原理
  6. Redis安装-win-linux-mac
  7. Top Secret Task(dp+滚动数组)
  8. laravel mysql 视图_视图入门:Laravel 支持的视图格式以及在路由中的基本使用
  9. 三坐标测量圆直径_多台三坐标测量机联动测量方法的研究
  10. PyTorch:安装和配置
  11. netdev_priv
  12. IOS测试版全版本固件下载集合
  13. QQ游戏大厅产品体验报告
  14. JS中调用后台方法进行验证返回值后加?的意思在GridView中指定一列为超级链接并有查询字符串的写法...
  15. ECCV2016 paper list (完整版)
  16. requests模块下
  17. WebServer·(二)在IDEA中,安装配置Maven并且开发MavenHelloWorld
  18. 阿里云Linux下python3的安装及环境配置(详细教程)
  19. endcap和welltap_ICC布局规划
  20. 前端:客户端渲染 vs 服务器渲染

热门文章

  1. 浏览器网页打不开但是电脑有网
  2. java实现微信公众号图文、视频一键发布
  3. 凌华服务器维护手册,凌华科技cPCIS-3300BLS/HMP服务器在智能网络的解决方案
  4. 驾校APP科目一免费练题软件 千锤百炼成绩高
  5. 基于区块链的电子病历系统毕业设计
  6. 模糊度判断:史上最详细图像质量评价(IQA)-训练自定义数据集--第三节
  7. 2022年报名PMI-ACP考试,只需满足两个条件
  8. java 卡表,关于jvm:聊一聊Java垃圾回收与卡表技术
  9. 防京东淘宝商城网站------2.项目配置以及自生成代码
  10. jvm根节点枚举、安全点、安全区域、记忆集、卡表、写屏障、并发的可达性分析