Clone
27
Home
tk edited this page 2024-12-12 20:28:03 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

云码平台 - 商家接入文档

商家 API 接口 根地址

正式环境:https://api.code92.top

测试环境:https://test-api.code92.top

阅读 API 功能文档

https://test-api.code92.top

商家身份鉴权

几乎所有的 API 都要求验证权限,请在 HTTP 请求头中添加您账号的 JWT Token

短信接码流程

获取手机号

方式一:主动取号(文档

成功响应示例:

{
  "code": "succeed",    // 使用if ( code == "succeed" ) 判定获取成功。
  "data": {
    "callingCode": 66,         // 国际电联ITU-T E.164 callingcodes  https://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E.164D-11-2011-PDF-E.pdf
    "id": 552149995081733, // 业务流水号,存下来,在后续的接口调用中要传入。
    "phoneNumber": "858683974" // 去除callingCode前缀的电话号码
  }
}

失败响应示例:

{
  "code": "unexpected", // 错误码
  "msg": "外部接口异常 0|-1"  // 错误原因
}

方式二:自动取号推送

i. 添加取号需求

ii. 添加推送地址

iii. 控制取号开启/停止(文档


获取验证码

方式一:主动获取(文档此步骤需要多次尝试建议设定请求间隔为5s持续5min

取到码响应示例:

{
  "code": "succeed",
  "data": {
    "receiveStatus": "received",    // 如果取到短信验证码 此字段值为 “received”
    "smsCode": "1234" // 短信验证码
  }
}

未取到码示例:

{
  "code": "succeed",
  "data": { 
    "receiveStatus": "waiting"  // 如果是waiting或者executing ,说明还在取码中,可等待几秒再调用此接口
  }
}
{
  "code": "succeed",
  "data": {
    "receiveStatus": "timeout" // 如果是timeout说明长时间未收到验证码系统已经自动释放了该手机号不会再去收码了。
  }
}

方式二:接码自动推送(添加推送地址

报告验证码错误

如您收到验证码输入目标程序后提示验证码不正确,可调用此接口(文档上报将该次任务状态重置为waiting 之后继续执行步骤3直到状态为received即收到了新的正确的验证码。

释放手机号

如果调用步骤2多次未获取到验证码需要放弃此号继续做下一个任务时请调用此接口文档),释放手机号之后即停止计费,避免损耗。

拉黑手机号

如果不希望获取到某个手机号,可以调用此接口(文档拉黑拉黑之后可确保24小时内不会再次取到此手机号。

邮箱接码流程

获取邮箱号

查看文档

成功响应示例:

{
  "code": "succeed",  // 使用if ( code == "succeed" ) 判定获取成功。
  "data": {
    "email": "kerwinnskinnerroman@gmail.com", // email 地址
    "id": 552154460643333 // 业务流水号,存下来,在后续的接口调用中要传入。
  }
}

失败响应示例:

{
  "code": "unexpected", // 错误码
  "msg": "无可用邮箱号"// 错误原因
}

获取邮件码

方式一:主动获取(文档此步骤需要多次尝试建议设定请求间隔为5s持续5min

取到码响应示例:

{
  "code": "succeed",
  "data": {
    "receiveStatus": "received",    // 如果取到邮件验证码 此字段值为 “received”
    "mailCode": "1234" // 邮件验证码
  }
}

未取到码示例:

{
  "code": "succeed",
  "data": { 
    "receiveStatus": "waiting"  // 如果是waiting或者executing ,说明还在取码中,可等待几秒再调用此接口
  }
}
{
  "code": "succeed",
  "data": {
    "receiveStatus": "timeout" // 如果是timeout说明长时间未收到验证码系统已经自动释放了该邮箱号不会再去收码了。
  }
}

方式二:接码自动推送(添加推送地址

报告验证码错误

如您收到验证码输入目标程序后提示验证码不正确,可调用此接口(文档上报将该次任务状态重置为waiting 之后继续执行步骤3直到状态为received即收到了新的正确的验证码。

拉黑邮箱号

如果不希望获取到某个邮箱号,可以调用此接口(文档拉黑拉黑之后可确保24小时内不会再次取到此邮箱号。

数据订阅推送

如果您拥有支持公网访问的 Web 服务器,还可以 订阅数据推送 ,支持各类订阅各类事件推送。

通知方式也是通过 HTTP 请求传递到您的 Web 服务器。

推送协议

Request Method Request Url Request Header Request Body
POST 设置用于接收数据推送的 URL 地址 CLOUD-CODE-TIMESTAMP: 时间戳
CLOUD-CODE-SIGN: 签名
Content-Type: application/json
{ "pushType": DataPushTypes , "pushData": 推送数据 }

签名校验

为了确保数据由本平台发出且未经篡改送达您的服务器, 请按照以下方式校验签名,抛弃签名不符以及时间戳误差过大的非法请求:

( 您的用户标识 + Header["CLOUD-CODE-TIMESTAMP"] + ReuqestBody ).MD5(UTF8) = Header["CLOUD-CODE-SIGN"]

例如您的用户标识为26849160-3e36-46fb-b51c-2def0655f195

收到的请求时间戳为1723276087

收到的请求内容为:{"name":"cloud-code"}

则签名串为

26849160-3e36-46fb-b51c-2def0655f1951723276087{"name":"cloud-code"}

经过md5哈希运算的签名值为

aadb0544aa76e57ed86481870a21f8d2

推送事件

点击链接进入文档页面 CTRL+F 搜索

事件类型 类型描述 推送数据
smsCodeReceived 接收到短信验证码 QuerySmsCodeRsp
mailCodeReceived 接收到邮件验证码 QueryMailCodeRsp
gotPhone 取到手机号 GetPhoneRsp