融全云 API 开放接口 v1 · 对接文档 下载 Markdown 代理登录 车况查询站点

30 秒看懂怎么接

https://www.ttzy.net
① 拿 AppKey / AppSecret 平台开通代理后发给你;也可以自助注册,登录后在「接口凭据」里看。AppSecret 等于钱包密码,别外发。
② 按四行请求头签名 X-AppId / X-Timestamp / X-Nonce / X-Sign, 签名算法见下面「签名」一节;我们提供的模块里已经内置,自己接也只需几行代码。
③ 先调 ping 再调 query POST /open/v1/ping 通了就说明密钥和时间都对;然后按「接口清单」里的工具码发起查询。

接口清单(当前开放 15 个)

下面这些就是能调的查询。一次调用按平台给你的进货价扣余额,查不到数据自动退回; 卖给终端用户多少钱由你自己定。进货价登录后在「接口目录」里看。

接口 工具码 tool 需要传 出结果 可导出 对接价
车辆五项查询 vehicle_five 车架号 几秒 — ¥6.00
车架号查信息 vin_info 车架号 几秒 — ¥8.00
车辆信息查询 vehicle_info 车架号 几秒 — ¥10.00
车牌查车架号 plate_vin 车牌号 等 1~3 分钟(用 fetch 取) — ¥12.00
交强险投保查询 insurance_record 车架号 几秒 — ¥16.00
调表车检测 mileage_check 车架号 几秒 — ¥22.00
4S维保记录查询 maintain_record 车架号 + 发动机号 等 1~3 分钟(用 fetch 取) — ¥25.00
手机号在网状态查询 phone_status 手机号 几秒 — ¥0.50
发票查验 invoice_check 发票代码 + 发票号码 + 开票日期 + 价税合计 + 校验码(后六位) 几秒 — ¥0.50
AI 简历优化 resume_optimize 简历原文 + 目标岗位或 JD + 风格(tech/business/minimal/vivid) 几秒 — ¥0.15
AI 简历精修 resume_optimize_pro 简历原文 + 目标岗位或 JD + 风格(tech/business/minimal/vivid) 几秒 — ¥0.50
AI 文档生成(工作总结 / 述职报告 / PPT) doc_gen 岗位 / 部门(PPT 是主题) + 文体(summary 工作总结 / report 述职报告 / ppt 演示稿) + 工作要点(一行一条) + 时间范围 + 字数(PPT 是页数) + 补充要求 + 风格(tech/business/minimal/vivid) + 行业(可选,影响用词和默认风格) + 导出格式(docx,pptx,pdf,png,text 可多选) + 品牌名(渠道自己的公司名) + 品牌主色(如 1657FF) 几秒 DOCX,PPTX ¥0.50
企业法院查询(企业风险核查) court_query 企业名称 + 统一社会信用代码 几秒 — ¥1.50
个人风险核查 blue_personal_case 姓名 + 身份证号 几秒 — ¥2.50
婚姻查询 marriage_query 姓名 + 身份证号 几秒 — ¥2.50

「可导出」表示这个接口能把结果直接做成文件:DOCX Word、PPTX 演示稿(带逐条动画)、 PDF 归档、PNG 长图、TEXT 纯文本。调接口时传 format=docx,pptx,pdf,png,text 想拿哪个写哪个,生成文件不额外收费。 详见 参数说明里的「生成类接口」。

清单里没有的工具(例如行驶证识别这类内部工具)不单独售卖,但你照样能调 —— 需要时会单独把工具码和参数给你。

融全云 API · 开放接口 v1

面向所有渠道与开发者的接口 —— 代理商、自研系统、H5、小程序、App、SaaS 工具, 任何能发 HTTP 请求的系统都能接,不绑定任何特定平台或框架。 渠道用平台下发的 AppKey / AppSecret 调用本接口, 平台再去调上游数据源。上游密钥只存在平台服务器上,渠道永远拿不到。

  • 接口根地址:https://www.ttzy.net
  • 全部接口都是 POST,路径形如 /open/v1/query
  • 请求体统一 application/json(UTF-8)
  • 返回统一是 {"code":0,"msg":"ok","data":{...}},成功看的是 code=0
  • 哪些接口能调、每次扣多少钱,见下方「接口清单」或登录后「接口目录」
一个坑先说在前面:HTTP 状态码永远是 200,出错时也是 200。 所以判断成功必须看响应体里的 code,不能只看 HTTP 状态码。

一、接入三步

  1. 拿密钥:平台开通代理后会把账号密码和 AppKey / AppSecret 一起发你;

也可以自助注册,登录代理后台在「接口凭据」里看。

  1. 填到你的系统里:把接口地址 https://www.ttzy.net、AppKey、AppSecret 填进你自己的

接口配置(或我们提供的模块后台)→ 保存。

  1. 按工具码发起查询:/open/v1/ping 通了以后,用 /open/v1/query 传 tool + params。

异步工具(比如车牌查车架号)拿 request_id 调 /open/v1/fetch 取结果。

二、签名

每次请求带 4 个请求头:

请求头说明
X-AppId平台给你的 AppKey
X-Timestamp秒级时间戳,与服务器时间相差超过 300 秒会被拒
X-Nonce随机串,建议 16 位以上(如 bin2hex(random_bytes(8)))。同一个 nonce 只能用一次,重复会被判为重放
X-Sign签名,小写 32 位 MD5

签名算法(注意 md5(body) 是请求体的原始字节,不是重新 json_encode 一遍):

sign = md5( appKey + timestamp + nonce + md5(请求体原文) + appSecret )

几个容易踩的点:

  • 拼接顺序固定,中间没有任何分隔符,最后整体做一次 md5。
  • md5(请求体原文):发出去什么字节就算什么字节。没有请求体时按 md5('') 算。
  • 时间戳是秒,不是毫秒;服务器时间要校准(装了 NTP 就不用管)。
  • 四个头都要带,少一个直接 401。

三、接口清单

接口路径用途
连通测试POST /open/v1/ping验密钥、看余额,接完第一步就调它
工具清单POST /open/v1/tools当前可调的工具 + 你的进货价
发起查询POST /open/v1/query主要接口,一次查询扣一次费
取异步结果POST /open/v1/fetch异步工具取结果,只读、不重复扣费
查余额POST /open/v1/balance余额、今日用量、每日上限
调用流水POST /open/v1/calls最近调用记录(查询对象已脱敏)
当前开放了哪些工具、每个要传什么参数,以 /open/v1/tools 的返回为准 —— 平台上下架工具会跟着变,文档不重复列,免得写的和实际能调的对不上。 网页版清单见 接口清单。

四、接口详情

1. 连通测试 /open/v1/ping

请求体:{}

{"code":0,"msg":"连通正常","data":{"channel":"某某车务","balance":"1000.00","server_time":"2026-09-22 10:00:00"}}

返回 401 一般是:AppSecret 填错、时间戳不对、或者 nonce 重复用了。

2. 工具清单 /open/v1/tools

请求体:{}

{"code":0,"msg":"ok","data":{"list":[
  {"tool_code":"vehicle_five","name":"车辆五项查询","cost":"6.00","retail_tip":"8.00",
   "params":["vin"],"async":false,"custom":false}
]}}
字段含义
tool_code工具码,调 /query 时传它
name中文名,给终端用户看的话可以直接用
cost每次调用扣你的钱(这就是你的进货价)
retail_tip平台建议零售价,仅供参考,卖多少你自己定
params这个工具要传哪些参数,见下方「参数说明」
asynctrue = 上游要等一会儿,出结果要用 /fetch 取
customtrue = 这是平台单独给你的协议价(不是默认价)

3. 发起查询 /open/v1/query

{"tool":"vehicle_five","params":{"vin":"LSVAM4185E2109876"}}

params 里的键就是 /tools 返回的 params;车架号请传 17 位完整值,程序会自动转大写、去空格。

params 里还可以带一个公共参数(所有工具都认,不算业务参数、不参与必填校验):

参数名含义说明
order_no你自己的订单号选填。你系统里那笔订单的编号,传了就会存进调用记录、原样返回。对账时直接拿它和你的账单核

order_no 放在 params 里,或者放在请求最外层都行(两种都认 —— 它本来就不是工具参数, 写在最外层更自然):

{"tool":"vehicle_five","params":{"vin":"LSVAM4185E2109876","order_no":"MY-20261002-001"}}
{"tool":"vehicle_five","order_no":"MY-20261002-001","params":{"vin":"LSVAM4185E2109876"}}

只留可见字符、最长 64 位,超了会截断。不传就是空串(调用记录里显示 —),不影响查询。

返回:

{"code":0,"msg":"ok","data":{
  "status":"done","tool":"vehicle_five","tool_name":"车辆五项查询",
  "fee":"6.00","refunded":"0.00","balance":"994.00","request_id":"","order_no":"","call_no":1234,
  "msg":"ok",
  "data":{"品牌":"大众","车架号":"LSVAM4185E2109876","车型":"...","发动机号":"...","燃料种类":"汽油"}
}}

order_no 是你传进来的那个单号(没传就是空串),call_no 是平台单号( 调用记录的编号,报障时给这个)。异步工具出结果后 request_id 是上游单号, 取结果和找上游查问题都要它。

data.status 有三种,必须按它分支:

status含义钱怎么算你要做什么
done查到数据了,data.data 就是结果扣费存下来给用户看
nodata这台车查不到数据(老车 / 未收录)已自动全额退回提示用户「查无数据」,别收用户的钱
pending上游还在出结果先扣拿 request_id 调 /fetch,出不来结果会退

nodata 示例:

{"code":0,"msg":"查无数据","data":{"status":"nodata","fee":"6.00","refunded":"6.00","balance":"1000.00","data":{}}}

工具不存在、参数缺失、余额不够时返回 code 非 0,data 为 null,具体见「错误码」。

4. 取异步结果 /open/v1/fetch

{"request_id":"1276874656273911808"}

返回结构和 /query 一样,status 可能是 pending / done / nodata / fail。 建议 每 5~10 秒取一次,最多取 3~5 分钟,别拿 1 秒的间隔去轮询。

/fetch 是只读接口,反复取不会重复扣费,也不会重复退款:

情况返回说明
上游还在出结果pending继续等
上游偶发 5xx / 连不上pending不是失败,过会儿再取
出结果了done + 数据结果存在平台,再取一次原样返回
上游超过有效期(一般 60 分钟)还没出结果fail + 全额退款之后一直回 fail,不会重复退
已经结束的单子再取原样回最终状态不报错、不动钱,免得你的订单一直卡在「等待中」

5. 查余额 /open/v1/balance

{"code":0,"msg":"ok","data":{"balance":"994.00","today_used":12,"daily_limit":0}}
  • balance:可用余额(元,字符串)
  • today_used:今天已调用次数
  • daily_limit:每日上限,0 表示不限;到上限后 /query 返回 429

6. 调用流水 /open/v1/calls

{"page":1,"size":20}

返回:

{"code":0,"msg":"ok","data":{"page":1,"size":20,"total":1,"list":[
  {"id":1,"call_no":1,"order_no":"MY-20261002-001","request_id":"","tool_code":"vehicle_five",
   "query":"LSV**********76","fee":"6.00","refund":"0.00",
   "status":1,"status_text":"成功","msg":"ok","ms":640,"created_at":"2026-09-22 10:00:00"}
]}}
  • size 最大 100
  • status:0 处理中 / 1 成功 / 2 失败 / 3 已退款 / 4 等上游出结果
  • query 是脱敏后的查询对象,完整车架号不返回给渠道
  • call_no 平台单号(= id,给个明确名字,别和 request_id 混)
  • order_no 你调用时传进来的自己的订单号,没传是空串
  • request_id 上游单号,异步工具有值

五、参数说明

工具要传哪些参数由 /tools 的 params 决定,常用的有:

参数名含义说明
vin车架号17 位,不含字母 I O Q;传进来会转大写、去空格和横杠
plate车牌号例如 京A12345,会转大写、去空格
engine发动机号少数工具(如 4S 维保)需要
mobile手机号手机号在网状态这类工具用
url_image图片地址行驶证识别这类工具用,传可公网访问的图片 URL
invoice_no发票号码发票查验用,必填
invoice_date开票日期发票查验用,必填,格式 2020-01-01
invoice_code发票代码发票查验用,选填(全电发票没有代码,不传即可)
invoice_amount价税合计发票查验用,选填
invoice_check校验码发票查验用,选填。传完整 20 位也行,程序会自动只取后六位
invoice_file发票文件PDF/OFD 查验用,传文件内容的 base64
name姓名个人风险核查、婚姻查询用,必填
id_card身份证号个人风险核查、婚姻查询用,必填,15 位或 18 位
keyword企业名称企业法院查询用,必填
credit_code统一社会信用代码企业法院查询用,必填,18 位

个人 / 婚姻 / 企业风险类接口

这三个工具都走小蓝数据,平台内部用同一套上游密钥;渠道侧仍然只用自己的 AppKey / AppSecret 调本平台,看不到上游凭证。

工具码名称需要传主要返回字段
blue_personal_case个人风险核查name + id_card是否涉诉、各类案件数、summary_info、case_info
marriage_query婚姻查询name + id_card婚姻状态、查询单号
court_query企业法院查询(企业风险核查)keyword(企业名称)+ credit_code企业名称、统一社会信用代码、查询结果、案件总数、各类案件数、summary_info、case_info

计费说明:

  • 上游小蓝数据的成功标识是 code=1,但渠道看到的仍是本平台的 code=0,按本平台统一格式判断即可。
  • 婚姻查询:data.message 为空时平台返回 婚姻状态=未查询到婚姻状态信息,该次按成功计费(上游已完成查询),不会自动退款。
  • 企业法院查询:respCode=404 按无记录处理,返回 status=nodata 并自动退款;respCode=200 且案件数为 0 表示“企业存在、无涉诉”,按成功计费,不退。
  • 签名失败、参数错误、余额不足、网络超时等返回 status=fail,自动退款,不会误报成“无记录”。

生成类接口(AI 写作)

这类接口不是「取数据」,是按你给的材料写成一篇稿,用的是固定提示词 + 大模型, 所以有两处和普通查询不一样:

参数名含义说明
topic岗位 / 部门 / 主题必填。工作总结、述职报告写岗位;演示稿写主题
points工作要点必填,一行一条。你写的每一条都会用上,不会被丢掉
kind文体选填:summary 工作总结(不传就是它)、report 述职报告、ppt 演示稿
period时间范围选填,例如 2026年10月、2026年度;不填按最近一个自然月 / 年度写
words字数选填。不传用默认(工作总结 1200 / 述职报告 1500 / 演示稿 12 页);范围 300~6000,超出按边界处理,见下
extra补充要求选填,例如「突出团队协作」「语气正式一些」
style版式风格选填:tech 科技风、business 企业风、minimal 简约风、vivid 活力风
industry行业选填,影响用词和默认风格;不传 style 时按它推一个
format导出格式选填,可多选:docx,pptx,pdf,png,text
brand品牌名选填,文件页脚署你的名字
color品牌主色选填,例如 1657FF;传了会盖过风格自带配色
工具码做什么输出字段
doc_gen工作总结 / 述职报告 / 演示稿,一个接口三种文体见下

kind 决定写什么,format 决定出什么文件:

kind出什么默认导出
summary工作总结Word + PPT
report述职报告Word + PPT
ppt演示稿PPT

data 里会拿到:

字段说明
标题稿子标题
正文全文(kind=ppt 时改为 PPT大纲,逐页纯文本)
要点覆盖你给的每条要点分别写进了哪一节,用来核对有没有漏
写作提示模型提醒你「哪一页该补真实数据」这类话,不是稿子内容
files各格式的下载链接,{"docx":"https://…","pptx":"https://…"}
formats这次实际生成出来了哪些格式
老的工具码 doc_summary / doc_report / doc_ppt 依然可用 —— 平台会自动转到 doc_gen 并补上对应的 kind,已经接好的程序不用改。

words 怎么生效、写不到怎么办

问题行为
不传、或传 0用默认值:工作总结 1200 字、述职报告 1500 字、演示稿 12 页(老客户端行为不变)
取值范围字数 300 ~ 6000;kind=ppt 时是页数 4 ~ 30
传了 8000(超上限)不报错。夹到 6000 继续写,返回里 words_applied=6000 如实告诉调用方
传了 100(低于下限)夹到 300
模型写不够平台自动续写补足(最多补两次),补不满也照常返回
模型写超了平台自动压缩一遍(只删修饰和空话,事实、数字、要点一个都不动)
计费续写/压缩都是同一次调用的内部动作,只计一次费、只扣一次款

返回里会多三个字段,客户端可以直接把「你要求约 5000 字 · 这一版实际写了 4763 字」显示给用户:

字段类型说明
words_requestedint请求里 words 的原样回显;没传是 0;kind=ppt 时是页数
words_appliedint这次实际按多少写(被上下限夹过之后的值);kind=ppt 时是页数
charsint正文字符数,算法 mb_strlen(preg_replace('/\s+/u','',正文))
一句话:words_requested 是用户要的,words_applied 是平台按多少写的, chars 是最后真实写出来多少。三个数摆在一起,用户就不会怀疑「我填的字数没生效」。 kind=ppt 时这三个字段同样返回,但 words_* 是页数,chars 量的是 PPT 大纲文本长度。 精度说明(重要):长文(3000 字以上)落点比较稳;短文(1000~1500 字)模型自己的 长度波动较大,实测在目标的 90%~160% 之间浮动。平台会尽力收敛(不足自动续写、 超长自动压缩,都不额外收费),但请不要把 words 当硬承诺—— 以 chars 为准展示「实际写了多少字」,是这套字段的设计目的。 chars 与导出文件(Word/PDF)的实际字数一致,不会出现「接口说 5000、文件只有 3000」。

生成失败会怎样(兜底行为)

模型偶尔会把 JSON 写坏(最常见的两种:输出太长被单次上限截断、字符串里混进控制字符)。 平台的处理顺序是:

  1. 先自己修:清洗非法 UTF-8、修逗号/引号/多余花括号,多数情况能救回来;
  2. 修不回来就把正文硬抠出来照常返回 —— 模型其实已经写了一整篇,

因为「JSON 没闭合」把内容丢掉最亏(你拿不到内容只能退款,用户白等一次)。 这种情况下返回里会多一个 _salvaged: 1,status 仍是 done; 标题/正文 都在,只是可能被截断,后面「不够就续写」那一套会接着把它补完;

  1. 只有连正文都抠不出来(少于 120 字)才真的报 status=fail、自动退款。

所以调用方不需要自己处理「解析失败」:拿到 status=done 就一定有内容; 看到 _salvaged=1 表示这次是兜底出来的,展示上没有任何区别。

个别格式没出来怎么办(skipped)

data.skipped 只在有格式没生成出来时才出现,是个「格式 → 原因」的对象:

{
  "files":   {"docx": "https://…", "pptx": "https://…"},
  "formats": ["docx", "pptx"],
  "skipped": {"png": "文档较长,长图需要约 247 MB 内存、本次可用约 96 MB,已跳过"}
}
原因触发条件建议
文档较长,长图需要约 … 已跳过长图会把内存吃穿。长图的画布是「1080 × 高度」,高度跟着正文字数走 —— 5000 字的文档画布约 10800px,峰值要 126MB让用户看 Word/PPT;确实要长图就调小 words
同一时间生成文件的请求较多,这次先跳过平台对 PDF/长图这类吃内存的格式做了并发限制(默认同时 2 份),抢不到位置就让路稍后重新调用一次即可 —— 注意会再扣一次费
没出来的格式绝不静默:files 里有哪个就表示哪个真的成了;formats 是这次的清单。 Word / PPT / 纯文本几乎不会失败,它们不吃内存。只有 PDF 和长图可能被跳过。 请求本身仍然是成功的(status=done),正文照常返回,不会因为少一张图就整单失败。

导出的 PPT 里有什么(都是程序按你的内容排的,不需要你提供素材):

  • 分页、配色、版式跟着内容走,要点逐条进场(点一下出一条),讲汇报时节奏自己掌握
  • 每个章节自动配一个线性图标(计划→靶心、问题→警示、成效→上扬箭头……)
  • 要点里的关键数字会被单独拎出来,做成大号数字卡片;同量纲的数字(比如一排百分比)自动画成条形图
  • 传了 brand / color 的话,页脚署名和全套配色都会跟着你的品牌走

四个注意点:

  1. 超时要放长:生成一次要 2~10 秒,渠道那边的 HTTP 超时建议设 120 秒以上,

不然会出现「钱扣了、结果没收到」。失败会退款,但用户体验是「时好时坏」。

  1. 材料里别指望它编数据:你没给数字的地方,它会写「(此处补充具体数据)」,

提醒使用者自己填 —— 这是故意的,避免拿假数据去汇报。要让它写具体数字, 就把真实数字写进 points。

  1. 返回里带下划线的字段(_model / _tokens 等)是平台附加的用量信息,

不是稿子内容,展示时跳过即可。

  1. 文件是平台本地生成的,不额外收费:一次调用按工具价扣一次,想要几种格式就传几种。

下载链接带签名和有效期(默认 7 天),过期后重新调一次即可(会重新计费一次)。

传少了会返回 400 缺少参数 xxx;车架号格式不对会返回 400 车架号格式不正确。

「选填」的参数,工具定义里标了 _optional,不传不会报 400。 发票查验的规则是:金额、价税合计、校验码三者至少填一个,都不填上游会回 合计金额、价税合计和校验码都为空,这种情况平台按查无数据处理、自动退款。

六、错误码

判断成功只看 code,0 才算成功。

code含义怎么处理
0成功按 data.status 分支
400参数错误(缺参数、车架号格式不对)检查 tool 和 params,别拿原参数重试
401签名 / 时间戳 / nonce 有问题核对 AppSecret、服务器时间;nonce 要每次新生成
402余额不足去代理后台充值;充值到账后恢复
403渠道被停用联系平台
404工具不存在或已下架、request_id 找不到重新拉 /tools 再调
405用了 GET改 POST
429超过每日调用上限明天再试或找平台提额
500服务器或上游异常稍后重试;这一笔已扣的钱会自动退回

七、计费与退款

  1. 先扣后调:发起查询时按工具 cost 从余额扣,余额不够直接返回 402,不会去调上游
  2. 查不到就退:nodata / fail 全额退回,余额明细里有一笔「退款」
  3. 异步只扣一次:pending 时扣一次,之后 /fetch 不再扣钱;最终没出结果也退
  4. 不会重复扣费、也不会重复退款:取结果是只读的,平台侧做了幂等
  5. 余额、扣费、退款都能在 /open/v1/balance、/open/v1/calls 和后台「余额明细」里对上

八、接入示例

PHP

<?php
$appKey    = '你的 AppKey';
$appSecret = '你的 AppSecret';
$base      = 'https://www.ttzy.net';

function ocCall(string $path, array $payload, string $appKey, string $appSecret, string $base): array
{
    // 注意:签名用的一定是「将要发出去的这串字节」,别在签名后又改 body
    $body      = json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
    $timestamp = (string) time();
    $nonce     = bin2hex(random_bytes(8));
    $sign      = md5($appKey . $timestamp . $nonce . md5($body) . $appSecret);

    $ch = curl_init($base . $path);
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => $body,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT        => 30,
        CURLOPT_HTTPHEADER     => [
            'Content-Type: application/json',
            'X-AppId: ' . $appKey,
            'X-Timestamp: ' . $timestamp,
            'X-Nonce: ' . $nonce,
            'X-Sign: ' . $sign,
        ],
    ]);
    $raw = curl_exec($ch);
    curl_close($ch);

    return json_decode((string) $raw, true) ?: ['code' => -1, 'msg' => '响应不是 JSON'];
}

// 1) 连通
var_dump(ocCall('/open/v1/ping', [], $appKey, $appSecret, $base));

// 2) 查一台车
$res = ocCall('/open/v1/query', [
    'tool'   => 'vehicle_five',
    'params' => ['vin' => 'LSVAM4185E2109876'],
], $appKey, $appSecret, $base);

if (($res['code'] ?? -1) === 0 && $res['data']['status'] === 'pending') {
    // 3) 异步:过 5~10 秒再来取
    $one = ocCall('/open/v1/fetch', ['request_id' => $res['data']['request_id']], $appKey, $appSecret, $base);
}

curl(排障用)

签名要算,所以先用 PHP/脚本算好再填进来:

curl -s -X POST 'https://www.ttzy.net/open/v1/ping' \
  -H 'Content-Type: application/json' \
  -H 'X-AppId: 你的AppKey' \
  -H 'X-Timestamp: 1758500000' \
  -H 'X-Nonce: 3f9a1c7b2e8d4056' \
  -H 'X-Sign: 算出来的签名' \
  -d '{}'

九、常见问题

Q:一直返回 401 签名不正确? 按顺序查:AppSecret 有没有多余空格 → 时间戳是不是秒 → nonce 是不是这次新生成的 → 签名的 body 和实际发出去的 body 是不是同一串字节(用 JSON 库重新序列化过就不一样了)。

Q:pending 一直不出结果怎么办? /fetch 每 5~10 秒取一次,超过工具有效期(一般 60 分钟)平台会自动判失败并退款, 你不用自己处理超时。

Q:nodata 是不是代表接口坏了? 不是。10 年以上的老车、进口车、信息没收录的车都会 nodata,平台不收费,钱已退回。

Q:能不能把车架号完整存到自己库里给用户看? 可以,你查出来的结果归你。但平台侧给渠道的接口和后台一律脱敏, 不存在「平台的接口把你客户的车架号泄出去」这件事。

Q:一次请求能查多台车吗? 不能。一个 request_id / 一次调用对应一台车,批量请自己循环,注意限流和余额。

Q:接口地址能换吗? 不能。我们提供的模块里默认写的就是 https://www.ttzy.net;自己接的话也是填这个地址,改了就调不通。


平台开通代理后可自助查看:接口凭据、接口目录(含你的进货价)、余额明细、调用记录、充值。 文档正文只有这一份,网页版(/docs/)和这里的内容永远一致。

接口地址 https://www.ttzy.net · 全部 POST、JSON 进出 · 对接遇到问题找平台客服;代理登录后可在「接口目录」看到你的进货价。