# TMS接口常见问题 ---- - [TMS接口常见问题](#tms%E6%8E%A5%E5%8F%A3%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) - [提问前须知](#%E6%8F%90%E9%97%AE%E5%89%8D%E9%A1%BB%E7%9F%A5) - [通过创建接口创建的订单或受理单登陆系统以后没有查看到](#%E9%80%9A%E8%BF%87%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3%E5%88%9B%E5%BB%BA%E7%9A%84%E8%AE%A2%E5%8D%95%E6%88%96%E5%8F%97%E7%90%86%E5%8D%95%E7%99%BB%E9%99%86%E7%B3%BB%E7%BB%9F%E4%BB%A5%E5%90%8E%E6%B2%A1%E6%9C%89%E6%9F%A5%E7%9C%8B%E5%88%B0) - [组织机构相关问题](#%E7%BB%84%E7%BB%87%E6%9C%BA%E6%9E%84%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98) - [订阅接口相关问题](#%E8%AE%A2%E9%98%85%E6%8E%A5%E5%8F%A3%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98)

## 提问前须知 在对接群提问时:请提供TMS接口的返回信息(截图即可),如果是订单(受理单)相关的,请提供单号(可以是TMS系统自动生成的单号,也可以是对接方的客户单号)。描述问题时尽量详细,最好说下自己的处理方式,可以增加沟通的效率。 **1. 对接数据有问题** 对接完成后,如果出现订单中数据有问题,比如货物价格不对,部分数据缺失等,请先自己查看提交时的数据是否正确,如果确定自己调用接口时的数据与最终在系统中看到的数据不一致,再联系我方查看原因。大部分时候都是在推送至TMS系统之前部分数据处理错误导致的。 **2. 接口无法满足需求,需要调整现有接口或者新增接口** 请联系我司商务、实施或者产品经理。 **3. TMS系统不会操作或对产品逻辑不了解** 请联系我司客服、实施进行指导。 **4. 接口不知道该如何调用** TMS系统的三方接口使用的是标准接口,如果不知道该如何调用接口请自行利用搜索引擎解决。 ## 通过创建接口创建的订单或受理单登陆系统以后没有查看到 **1. 使用了错误的账号调用接口或组织机构无权限**

  创建订单接口必须使用主账号获取token以后再用主账号调用才能看到,如果是用的子账号调用接口,将无法查看到创建的订单信息。

  订单在创建时会属于某一个组织机构,如果没有特殊指定,则属于总部,假如账号A在子机构A,则A只能查看到所属机构以及此机构的子机构下的订单信息,其余机构的无法看到,总部可以看到所有订单信息。通过接口正常调用成功以后只能通过主账号查看订单信息,如果希望子账号也能查看到订单信息,在使用主账号调用接口的时候需要传递一个【organizationPath (string): 组织机构:可不填】参数,指定你希望哪个子账号对应的组织机构可以看到。受理单同理。

  对应的组织机构需要调用获取组织机构列表接口(或者在浏览器中使用开发者工具,具体见下文),调用成功后返回的【path】参数即对应组织机构的参数值,根据返回结果,把organizationPath的值设置为path中的值,比如0-11,这样,对应的组织机构就可以看到。

  注意,用子账号调用创建订单接口是无法在主账号的公司下看到订单信息的! **2. 订单状态变更**

  如果确认不是第1条中的问题,请再确认下订单是否已经由于他人的操作而变更了状态,在系统中的全部和回收站中查看是否能看到订单,如果不行,则确认查询的时间范围是否有问题。

创建订单查询不到

## 组织机构相关问题

  创建订单、受理单等接口中的【organizationPath】字段需要传递组织机构的path值(path的值不会因为修改组织机构名字而改变),而不是组织机构的名称,所以需要先调用获取组织机构列表接口获取path,或者使用浏览器的开发者工具(一般按F12打开)在系统中查看,步骤如图。组织机构名字(name)是在【公司管理-组织机构管理】中手动设置的。

组织机构返回参数
开发者工具获取组织机构path

## 订阅接口相关问题 **1. 什么是订阅接口**   订阅接口可以类比为社交网站的关注功能,你关注的内容会通过回调地址(由客户方提供的一个可以接收TMS报文信息的接口,要求参看**第3条**)发送给你,所以,订阅接口订阅的是订单或者车次的状态,它是针对整个公司的,并非某个特定的订单或者车次,订阅时需要传递订阅的状态以及回调用的地址,当系统中某一个车次(订单)通过操作变更为你订阅的状态时,该车次(订单)的信息就会被投递到订阅时指定的回调地址。   订阅接口返回的信息只表示你是否订阅成功,而不是给你某个车次(订单)的返回报文,如果想验证是否真的订阅成功了,就需要在TMS系统中操作车次(订单),然后看自己的回调地址是否接受到了该车次(订单)的信息。   另外,订阅是**永久性**的,只要你不调用取消订阅接口,那么订阅就将一直生效。如果想变更自己的订阅内容,比如状态或者回调地址,只需要再次调用订阅接口即可,它将会**覆盖**原来的订阅信息。 **2. 车次订阅与订单订阅的区别**   相同点:两者均为订阅成功后即开始推送,无需指定车次号(订单号),订阅的是状态,不是某一个订单,任何变更到你订阅的状态的车次(订单)都会推送至订阅时指定的回调地址。例如:使用车次订阅接口订阅的状态是40000(指派车次),则当你系统中有车次被指派发布的时候该车次就会进行推送。   不同点:一个车次中可以包含多个订单,两者的状态是不同的,车次状态的改变未必会导致订单状态改变,只有当车次状态变更时才会回调车次报文,订单接口同理。所以需要根据需求决定使用哪一个接口,或者两个结合使用。 **3. 回调地址有什么要求**   回调地址需要支持**POST**请求,并且使用JSON格式`(Content-Type=application/json)`接收请求参数,回调地址的返回结果也需要为JSON格式,如果成功要在返回信息中包含`"code": 200`,系统会根据这个值来判断消息是否投递成功,否则会重新进行投递。