CaTalk
  1. 开发者必看
CaTalk
  • 产品说明
    • 建议先读这里
  • 运营者必看
    • CaTalk社群创建指南
    • CaTalk品牌超级专区后台管理
  • 开发者必看
    • 前端优化指南 - Webview容器与H5页面通讯
    • 后端接入指南 - 私有链
    • 后端接入指南 - 公链/开放联盟链
  • 在线调试
    • 查询用户链地址
      POST
  • Claude
  1. 开发者必看

后端接入指南 - 公链/开放联盟链

💡
主要功能: CaTalk通过手机号查询用户在平台方的链上地址

开发者端需处理的来自CaTalk服务端的查询请求:#

约定如下:#

为了防御中间人攻击,避免用户手机号暴露在不安全的网络环境,造成隐私泄露;
这里采用的是AES加解密,具体方法如下:
主要由CaTalk端加密,开发者端解密,目前我们约定采用的是AES/CBC/Pkcs5Padding方式
对关键业务字段(如手机号:{"phone":"12300000000"})执行AES加密解密,
密钥key由catalk官方生成,开发者拿到后注意保管好,不要告诉任何人!
测试用密钥key: XvAmOAzc7BBVXEDVdup2DPUNZJShJcJ6

来自CaTalk端发出的 POST 请求范例:#

POST https://api.xxx.com/v1/catalk_open (开发者端生成和提供)
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
objEncrypt 等于 对data字段执行AES加密后的字符串
出错时,objEncrypt请传空字符串 "" 或者data请传 []
以下是data字段包含的数据,请用[ ]包裹,兼容一个用户拥有多地址情况:
字段名类型必填说明注意事项
chain_addrstring必填用户链上地址请确保交易已上链
chain_idstring必填用户链类型请见下文chian_id速查表
user_idstring选填开发者平台用户id
chian_id速查表:#
链id
树图链conflux
文昌链-天和wenchang-tianhe
文昌链-天舟-v1wenchang-tianzhou
文昌链-天舟-v2wenchang-tianzhou-v2
天河链tianhe
至信链zxin

返回范例:#

HTTP状态码:200

{
    "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#

请至少传空字符串 ""
出错提示信息,建议直接返回用户可读的中文提示,方便即时查错。

返回范例#

HTTP状态码:400 / 401 / ...
{
    "error_code":"user_not_exist", //出错码,报错时有值,正常时为空字符串
    "error_msg": "用户不存在,可能是您还未注册XXX账号", //出错提示信息,建议直接返回用户可读的中文提示,方便即时查错。
    "objEncrypt": "",
    "data":[],
    "appId": "", //开放平台发放给开发者的appId
    "method":"catalk.user.addr.list",
    "nonce": "", // 随机字符串,一般为UUID
}
上一页
后端接入指南 - 私有链
下一页
查询用户链地址
Built with