申请应用
提交应用信息与业务用途,确认所需的接口能力和接入环境。
进入控制台正在加载开放平台文档…
从业务发现到接口调用
在这里,找到完整的接入路径
OPEN CAPABILITIES
按业务选择所需能力,查看接口、字段与调用方式。
浏览完整接口目录,找到适合你的业务能力。
签名用于验证应用身份。通过签名校验后,服务端还会检查 API 授权、有效期和并发额度。
POST https://www.yishuld.com/api/v1/open/invoke Content-Type: application/json
该入口只接受应用 HMAC 凭据,不接受运营登录 Token 或内部管理 Bearer。原统一入口继续兼容,但两个路径的签名不同,切换时需要重新计算。
凭据由运营通过安全渠道交付:appId、accessKey、keyId、secretKey。这是 Go 开放平台应用凭据,与 App 用户登录、H5 SSO 或其他平台应用密钥不同。
请仅在服务端或受保护的本地 CLI 配置中使用凭据。浏览器、小程序与 App 通过自己的服务端调用。进入控制台查看应用授权 →
| Header | 说明 |
|---|---|
| X-App-Id | 应用标识 |
| X-Access-Key | 访问标识 |
| X-Key-Id | 密钥版本 |
| X-Timestamp | Unix 秒时间戳,允许前后五分钟 |
| X-Nonce | 每次请求独立的随机字符串,不复用 |
| X-Content-SHA256 | 实际 UTF-8 请求体的 SHA-256,再 Base64 |
| X-Signature | 待签串的 HMAC-SHA256,再 Base64 |
POST /api/v1/open/invoke application/json Base64(SHA256(实际请求体字节)) Unix秒时间戳 随机nonce
第三行是空查询串,仍必须保留。签名后不要重新排版 JSON,也不要把秒写成毫秒。用公开向量校验签名 →
{
"version": "1.0", "requestId": "请求追踪号",
"operation": "caocao.cities", "provider": "caocao",
"success": true, "code": "OK", "message": "成功",
"data": {}, "mock": false
}这是响应结构示意,data 按业务操作返回。HTTP 200 不替代订单履约状态判断,mock 也不能从地址或接口名称猜测。
运营可以停用应用或单项 API、设置有效期及具体操作名单。应用总并发与 API 并发同时生效,同一应用的多把 Key 共用额度。停用或到期后拒绝新调用,已处理中的请求继续完成。商户不能通过工具自行开通或提额。
供应商回调由平台接收,接入方不要把供应商回调地址当作自己的通知接口。商户结果通知需单独与运营确认接收协议;本版本可按商户原订单号查询。出现结果未知时,先查询原单或执行该能力明确提供的原命令恢复,不能更换订单号重新购买。
运营为每个上游设置一个默认加价率,该上游的商户共用同一比例。
对外售价 = 上游结算成本 ×(1 + 加价率)
例如结算成本为 100.00 元,加价 10.00%,售价为 110.00 元。金额使用整数分,比例使用整数基点,最后四舍五入到分。1 bp = 0.01%,10% = 1000 bp。
运营进入“系统管理 → API 权限管理 → 上游价格”,可设置 0–100% 的比例,最多两位小数。每次调整都需填写原因,系统记录修改前后的比例和版本。0% 表示按成本价,“尚未配置”单独显示。
商户可在“我的 API 授权”中查看自己已授权上游的规则,不能自行修改。当前不提供商户单独比例。
面值、供应商展示价和出行预估价不能直接作为结算成本。试算不会保存成本、创建订单、调用供应商或扣款,也不能用作正式报价。SDK 不会在本地给供应商返回的金额统一乘上加价率。
每个上游须明确成本来源、币种、金额单位、税费范围、数量和有效期。完成接线后,新报价和订单应保存成本依据、规则版本及售价,后续查询、结算和退款使用原订单快照。调整比例不得追溯改写历史订单。
使用跨平台 CLI 完成目录检索、参数预检、签名对拍和真实调用。Node.js 与 Python SDK 封装相同签名,不自动重试请求。
安装完整 API Skill,获取所有接口的 AI 调用指引 →
ysld-open version ysld-open catalog ysld-open describe caocao.cities ysld-open sign-check ysld-open check --operation caocao.cities --params params.json ysld-open doctor --config private.json ysld-open call --operation caocao.cities --params params.json ysld-open call --config private.json --operation caocao.cities --params params.json --execute
params.json 在城市查询示例中为 {}。下载后先核对 SHA-256;Windows 使用 PowerShell 的 Get-FileHash,macOS/Linux 使用 shasum -a 256 或 sha256sum。
解压后:Windows 使用 .\ysld-open.exe;macOS/Linux 先执行 chmod +x ./ysld-open,再使用 ./ysld-open。加入 PATH 后可直接使用上面的命令。
{
"origin": "https://www.yishuld.com",
"appId": "YOUR_APP_ID",
"accessKey": "YOUR_ACCESS_KEY",
"keyId": "YOUR_KEY_ID",
"secretKey": "YOUR_SECRET_KEY"
}示例值不具备调用权限。配置文件不要提交到 Git;Linux/macOS 设置 chmod 600 private.json,Windows 使用仅自己可读的目录。工具不会把密钥打印到预览或错误信息。
call 不带 --execute 只输出请求预览。写操作还需 --allow-write;这两个开关不会替代服务端权限。工具没有自动重试,HTTP 202 或 OUTCOME_UNKNOWN 应按原业务键查证。
import { readFileSync } from 'node:fs';
import { invoke } from './node/client.mjs';
const config = JSON.parse(readFileSync(process.env.YSLD_CONFIG, 'utf8'));
const result = await invoke(config, 'caocao.cities', {});
console.log(result.httpStatus, result.code, result.requestId);
// result.responseText 保留完整响应文本及精确数字。
// 写请求需要显式传入 { allowWrite: true }。import json, os
from ysld_open import invoke
with open(os.environ['YSLD_CONFIG'], encoding='utf8') as f:
config = json.load(f)
result = invoke(config, 'caocao.cities', {})
print(result['httpStatus'], result['code'], result['requestId'])
# 原始 JSON 在 result['responseText'],按业务需要无损解析。SDK 包含对应版本的对外目录与公开签名向量。Node.js 对象参数遇到不安全整数会拒绝;需要保留大整数或精确 JSON 文本时传入原始 JSON 字符串,避免先解析再丢失精度。
使用公开演示密钥在浏览器本地计算。这里不接收真实应用密钥,也不发送业务请求。
demo-only-not-a-real-key。演示时间戳已过期,不能用于真实调用。点击计算后显示结果下载跨语言签名测试向量 ↗
先记录 requestId、操作名、HTTP 状态及统一错误码。向运营反馈时不要附带密钥、完整认证头或客户原始资料。
| HTTP / code | 处理方式 |
|---|---|
| 400 INVALID_REQUEST | 检查 version、operation、params 和业务必填字段。 |
| 401 UNAUTHENTICATED | 核对本环境的应用凭据、签名路径、UTF-8 原文、秒时间戳和 nonce。先运行 sign-check。 |
| 403 FORBIDDEN / API_OPERATION_NOT_GRANTED | 到“我的 API 授权”核对范围,联系运营开通;换 Key 不会增加权限。 |
| 403 API_AUTHORIZATION_DISABLED | 应用或 API 已停用,联系运营处理。 |
| 403 API_AUTHORIZATION_EXPIRED | 授权已到期,联系运营确认有效期。 |
| 429 API_CONCURRENCY_LIMIT | 降低同时执行数,读取 Retry-After;不要并发重放写请求。 |
| 409 CONFLICT | 核对原订单、幂等键和原参数,不以换号重提解决冲突。 |
| 422 UPSTREAM_REJECTED | 核对上游业务条件;不表示需要重下单。 |
| 202 OUTCOME_UNKNOWN | 按原订单号查证,不能换业务键重试。 |
| 502 / 503 / 504 | 写操作可能结果未知,先查原单;只读请求再按退避策略处理。 |
YISHULIAN · AI CONNECT
让 AI 助手读懂你的业务接口。204 个操作、11 个业务提供方,
从接口检索、参数准备到签名调用,一份技能包全部覆盖。
安装一次,随时检索并调用每个已发布接口。
让 AI 助手帮你完成安装
复制提示词,粘贴到支持 Skill 的 AI 助手中,按提示完成安装。
安装 https://open.yishuld.com/downloads/ysld-open-platform-skill.zip 中的易数链动开放平台 Skill开发者熟悉的命令行方式
在已安装 Node.js 的终端执行,为支持 Skill 的开发工具添加技能。
npx skills add https://open.yishuld.com/downloads/ysld-open-platform-skill.zip -g所有接入资料,打包带走
ONE SKILL, ALL CAPABILITIES
与平台公开目录逐项对齐,让需要的接口都有据可查。
由易数链动提供。实际调用需应用凭据和对应授权。了解签名与应用授权