赞
踩
最近,接到公司的需求,需要对接公司店铺的淘宝天猫店铺,获取店铺的订单数据和回传物流单号等各种业务功能。
首先,我们需要进行一个验证,登陆淘宝账号,完成“实名认证”,然后点击“企业身份入驻”进行身份选择。然后,我们进行选择身份进行入驻,首先,我公司这边是自家自研的,所以我这边选择的“品牌商家自研身份”进行入驻的。接下来就是创建应用了:
第一步,点击左侧“开发-创建应用”,然后根据您的业务范围,选择适合的业务类型,
1、购物小程序自研接入:独立研发“自有小程序”对接店铺首页、品牌专区等场景,请选择此类型。
2、商家系统自研接入:独立研发“自研系统”对接店铺商品管理、订单管理、会员管理、物流发货等场景,请选择此类型。
这里我们选择的是“商家系统自研接入”,
最后,我们选择的是一站式电商后台的研发方式,基于开放API业务能力进行应用系统搭建。
1.进入开放平台首页点击控制台,进入应用管理页面,点击新建应用
2. 选择天猫商家自研-商家后台系统应用进行创建
3.按照对应的要求填写完成对应的资料,其中需要注意的一点是,产品说明书中必须提供软件著作权,然后等待审核即可。
4.开发测试,发布上线
首先,第1种方式,初始化是把3个月内的在线订单全部同步回来,这个需要较长的时间;然后在分别调用详情接口,获取订单的详情
第1种获取类别:三个月数据:通过taobao.trades.sold.get获取3个月内到现在创建的订单ID,再通过taobao.trade.fullinfo.get获取订单详情;这里主要是采取这种方式来获取淘宝天猫的订单的。
第2种获取类别:增量获取则是把淘宝发生了变更的订单同步回来,这个一般需要较短的时间。然后在分别调用详情接口,获取订单的详情
增量数据:通过taobao.trades.sold.increment.get获取从现在开始的增量订单ID,再通过taobao.trade.fullinfo.get获取订单详情
这种方式获取淘宝天猫订单比较高效,但这个方式需要收费的哈,如果想免费,就采取方案一,
如果想开发量少,且拉单效率高,则采取这种方案,具体的操作,下篇再详细讲解。
如图所示,首先,我们采用第1种方式,我们需要拉取3个月内的天猫的订单数据,获取到这时间段内的订单相关数据。注意:(收件人等信息敏感数据不可以被塔外调用保存)
说明:这个api,是需要收费的,塔内调用,每100次,收费0.02元;
塔外也是需要收费的,塔外调用,每100次,收费0.2元。
代码如下(示例):
-
- /**
- * 查询卖家已卖出的交易数据(根据创建时间) )
- * 获取淘宝天猫订单数据
- * @throws
- */
- String url = "http://gw.api.taobao.com/router/rest";
- TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
- TradesSoldGetRequest req = new TradesSoldGetRequest();
- req.setFields("tid,type,status,payment,orders,rx_audit_status"); //需要返回的字段列表,多个字段用半角逗号分隔
- req.setStartCreated(StringUtils.parseDateTime("2022-10-11 00:00:00")); // 查询三个月内交易创建时间开始
- req.setEndCreated(StringUtils.parseDateTime("2022-10-12 23:59:59")); // 查询交易创建时间结束
- req.setStatus("ALL_WAIT_PAY"); // 交易状态
- req.setBuyerNick("zhangsan"); // 买家昵称
- req.setType("game_equipment"); //交易类型列表
- req.setExtType("service"); // service(商城服务子订单)
- req.setRateStatus("RATE_UNBUYER"); // 评价状态
- req.setTag("time_card"); //卖家对交易的自定义分组标签,目前可选值为:time_card(点卡软件代充),fee_card(话费软件代充)
- req.setPageNo(1L);
- req.setPageSize(40L);
- req.setUseHasNext(true); //是否启用has_next的分页方式,如果指定true,则返回的结果中不包含总记录数,但是会新增一个是否存在下一页的的字段,通过此种方式获取增量交易,接口调用成功率在原有的基础上有所提升。
- req.setBuyerOpenId("AAHm5d-EAAeGwJedwSHpg8bT"); // 买家的openId
- TradesSoldGetResponse rsp = client.execute(req, sessionKey); // 发送请求
- System.out.println(rsp.getBody()); // 打印响应数据
这里只是调用了一个接口获取三个月的交易订单数据,但发现有些订单的金额等数据都有返回来了,足够满足我们这边的业务需求了,就不再遍历调用交易详情的接口了;如果说,有些需要的订单数据没有返回了,则需要另外再调交易详情接口(taobao.trade.fullinfo.get获取订单详情)来进行获取。
如图所示,现在我们需要轮询获取每一笔订单的详情,获取到这笔订单的所有相关数据。注意:(收件人等信息敏感数据不可以被塔外调用保存)
说明:这个api,是需要收费的,塔内调用,每100次,收费0.02元;
塔外也是需要收费的,塔外调用,每100次,收费0.2元。
代码如下(示例):
- /**
- * 获取淘宝天猫单个订单详情
- * @throws
- */
- String url = "http://gw.api.taobao.com/router/rest";
- TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
- // 遍历循环列表
- List<trade> orderInfoList = response.getBody().getTrades(); // 获取一段时间内的淘宝交易数据响应返回体
- if (CollectionUtils.isNotEmpty(orderInfoList)) {
- List<OrderSearchInfo> payedOrders = orderInfoList.stream().filter(item -> !todayExistOrderIds.contains(item.getTId())).collect(Collectors.toList());
- for (OrderSearchInfo item : payedOrders) {
- TradeFullinfoGetRequest req = new TradeFullinfoGetRequest();
- req.setFields("tid,type,status,payment,orders,promotion_details"); //需要返回的字段列表
- req.setTid(item.getTId()); // 交易号
- req.setIncludeOaid("include_oaid"); // include_oaid
- TradeFullinfoGetResponse rsp = client.execute(req, sessionKey); //发送订单详情的请求
- System.out.println(rsp.getBody());
-
- }
- }
-
使用任务调度中心,建立一个定时任务,规定时间来执行淘宝天猫的这个定时拉单
这是淘宝天猫官方推荐使用的方式,这种方式拉取订单效率高,省心省事,开发少;具体如何操作,下篇在具体详细讲解。
这里是通过我们自家自研系统对接了中通系统,然后部署到聚石塔内应用运行的,主要的想法是:就是将订单数据经过业务需求处理后,在定时推送出库订单给到中通那边,然后标记发货的状态。
具体如何操作,下篇在具体详细讲解。
具体如何操作,下篇在具体详细讲解。
具体如何操作,下篇在具体详细讲解。
具体如何操作,下篇在具体详细讲解。
具体如何操作,下篇在具体详细讲解。
本章主要介绍讲解了一下淘宝天猫平台的对接,如何获取淘宝天猫店铺的订单,这里对接的主要的方式是自研系统对接的,这里主要讲解了通过订单相关接口轮询获取订单的相关所需的数据的内容,但除开敏感信息收件人,这块订单的信息,需要另外的方式来进行获取;还有接下来的RDS订单同步,其他的业务场景解决方案等,可以关注我哈,等我后续稍微有空了再码字,码字不易,希望对大家有所帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。