WaaS项目
WaaS 认证与签名
WaaS API 的请求签名规则、系统参数和验签示例。
WaaS 认证与签名
适用范围
本页仅适用于 WaaS API。团队 API 使用不同的认证方式和错误码体系,请勿混用。
签名算法
- 请求参数中除去
sign和空值参数外,其他参数按字典序排序. (定义:在英文字典中,排列单词的顺序是先按照第一个字母以升序排列; 如果第一个字母一样,比较后续字母。如果比到最后两个单词不一样长,短者排在前。) - 排序完成后,按照
key1value1key2value2...进行拼接 - 将项目的 API Key 拼接到上一步得到的字符串最前面
- 将上一步中获取的字符串使用散列算法取 md5 并转为小写即为
sign,将sign添加到请求参数中
签名示例
假设项目 API Key 为: f502a9ac9ca54327986f29c03b271491,除 sign 外请求参数如下:
{
"pid": 1382528827416576,
"currency": "195@195",
"address": "TXsmKpEuW7qWnXzJLGP9eDLvWPR2GRn1FS",
"amount": "1.1",
"remark": "payout",
"third_party_id": "c9231e604da54469a735af3f449c880f",
"callback_url": "https://your-domain.com/callback",
"nonce": "hwlkk6",
"timestamp": 1688004243314
}排序得到字符串:
addressTXsmKpEuW7qWnXzJLGP9eDLvWPR2GRn1FSamount1.1callback_urlhttps://your-domain.com/callbackcurrency195@195noncehwlkk6pid1382528827416576remarkpayoutthird_party_idc9231e604da54469a735af3f449c880ftimestamp1688004243314拼接API Key:
f502a9ac9ca54327986f29c03b271491addressTXsmKpEuW7qWnXzJLGP9eDLvWPR2GRn1FSamount1.1callback_urlhttps://your-domain.com/callbackcurrency195@195noncehwlkk6pid1382528827416576remarkpayoutthird_party_idc9231e604da54469a735af3f449c880ftimestamp1688004243314取 md5 得到 sign: f76fb193e9d34d2e59fef64e3418f79b
API Key 安全最佳实践
API Key 可用于对 Cregis API 请求签名。请将其作为生产密钥管理,降低密钥泄露、第三方滥用或跨环境误用的风险。
- 仅在服务端保存和使用 API Key;不要放在前端代码、移动 App、网页源码、GitHub、日志或客服/运营可复制的页面中。
- 测试环境和生产环境使用不同的 Base URL、Project ID 和 API Key;不要跨项目或跨环境复用。
- 使用环境变量、密钥管理服务或服务器配置保存 API Key,并限制可读取该密钥的人员和服务。
- 启用并维护 IP 白名单,只允许受信任的服务器公网 IP 调用 API。
- 怀疑 API Key 泄露、误发或员工离职后,应及时检查近期订单、出款、回调和登录操作日志。
- 不要使用文档中的示例 API Key 或示例签名作为生产凭证。
凭证泄露处理
请求和响应
了解如何对 Cregis 服务的 API 请求进行身份验证。API请求接口参数分为两部分:系统参数 和 业务参数。
- 系统参数: 大多数 API 请求都需要系统参数(回调通知除外)
| 参数名 | 类型 | 描述 |
|---|---|---|
nonce | String | 防重放攻击的随机字符串 |
timestamp | Integer | 13 位毫秒级 Unix 时间戳 |
sign | String | 请求签名散列值(详见上方说明) |
- 业务参数: 特定于各个 API 调用或端点的参数
标准 HTTP 调用的 cURL 请求示例:
curl -X POST ${BASE_URL}/api/v1/payout \
-H "Content-Type: application/json" \
-d '{
"pid": 1382528827416576,
"nonce": "hwlkk6",
"timestamp": 1688004243314,
"sign": "f76fb193e9d34d2e59fef64e3418f79b",
"currency": "195@195",
"address": "TXsmKpEuW7qWnXzJLGP9eDLvWPR2GRn1FS",
"amount": "1.1",
"remark": "payout",
"third_party_id": "c9231e604da54469a735af3f449c880f",
"callback_url": "https://your-domain.com/callback"
}'成功响应示例
{
"code": "00000",
"msg": "ok",
"data": {
"cid": 1382813146816512
}
}失败响应示例
{
"code": "B0001",
"msg": "签名错误",
"data": []
}