后端接入指南 - 公链/开放联盟链
开发者端需处理的来自CaTalk服务端的查询请求:
约定如下:
这里采用的是AES加解密,具体方法如下:
主要由CaTalk端加密,开发者端解密,目前我们约定采用的是AES/CBC/Pkcs5Padding方式
对关键业务字段(如手机号:{"phone":"12300000000"}
)执行AES加密解密,
测试用密钥key: XvAmOAzc7BBVXEDVdup2DPUNZJShJcJ6
来自CaTalk端发出的 POST 请求范例:
Header 'Content-Type: application/json'
JSON:
{
"appId": "xxx", //开放平台发放给开发者的appId
"method":"catalk.user.addr.list",
"nonce": "123", // 随机字符串,可以是UUID 或时间戳
"objEncrypt":"+f21vWkmD8GxQTa2pBH81sq1nnVj/obMN38OGbX2x086MUJJzsOLgjJ7O6gtFXKUYQcX9QoA0k3nZw+BTxP1xg==",
//这里使用测试密钥执行AES解密后会得出字符串{"phone":"12300000000","timestamp": "1685166690"}
}
开发者服务端需返回的数据:
正常情况:
objEncrypt 或 data
objEncrypt 等于 对data字段执行AES加密后的字符串
出错时,objEncrypt请传空字符串 "" 或者data请传 []
[ ]
包裹,兼容一个用户拥有多地址情况:字段名 | 类型 | 必填 | 说明 | 注意事项 |
---|---|---|---|---|
chain_addr | string | 必填 | 用户链上地址 | 请确保交易已上链 |
chain_id | string | 必填 | 用户链类型 | 请见下文chian_id速查表 |
user_id | string | 选填 | 开发者平台用户id |
chian_id速查表:
链 | id |
---|---|
树图链 | conflux |
文昌链-天和 | wenchang-tianhe |
文昌链-天舟-v1 | wenchang-tianzhou |
文昌链-天舟-v2 | wenchang-tianzhou-v2 |
天河链 | tianhe |
至信链 | zxin |
返回范例:
{
"error_code":"", //出错码,报错时有值,正常时为空字符串
"error_msg": "", //出错提示信息,建议直接返回用户可读的中文提示,方便即时查错。
"objEncrypt": "",//data加密后的字符串
"data": [
{
"chain_addr": "iaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"chain_id":"wenchang-tianzhou",
"user_id": "123",
},
{
"chain_addr": "iaayyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
"chain_id":"wenchang-tianzhou",
"user_id": "456",
},
...
]
"appId": "", //开放平台发放给开发者的appId
"method":"catalk.user.addr.list",
"nonce": "", // 随机字符串,一般为UUID
}
出错情况:
error_code
开发者返回出错码 | 说明 | CaTalk会如何处理? |
---|---|---|
user_not_exist | 当前用户不存在 | 针对当前用户,下次进社群再查询 |
user_query_too_frequently | 当前用户查询太频繁 | 针对当前用户,记录本次查询时间,过一段时间再次查询。(即使未收到此错误,CaTalk也默认有开启防频繁查询策略) |
user_block_query | 禁止查询当前用户 | 针对当前用户,禁止后续再次查询 |
system_query_too_frequently | 被开发者端全面限流 | 针对所有用户,记录本次查询时间,过一段时间再次查询 |
system_shutdown | 开发者端系统维护中 | 针对所有用户,关闭查询,等待手动开启 |
error_msg
出错提示信息,建议直接返回用户可读的中文提示,方便即时查错。
返回范例
{
"error_code":"user_not_exist", //出错码,报错时有值,正常时为空字符串
"error_msg": "用户不存在,可能是您还未注册XXX账号", //出错提示信息,建议直接返回用户可读的中文提示,方便即时查错。
"objEncrypt": "",
"data":[],
"appId": "", //开放平台发放给开发者的appId
"method":"catalk.user.addr.list",
"nonce": "", // 随机字符串,一般为UUID
}