账户与项目访问
从获准的 IP 地址通过 HTTPS 使用已启用的 API 账户。项目必须属于该账户,且未被删除。请使用携转订单流程中的项目唯一标识,而非其数据库数字标识或电话号码。构建请求时,请对项目标识进行 URL 编码。
添加前的准备
此操作会修改现有的号码携转项目。请先通过携转订单流程确认号码及客户授权。将每个号码写为完整的国际号码数字串,自行去重,并检查项目现有的号码列表。请勿使用此端点测试任意号码。
当前门户会在调用此路由前验证号码并将其规范化。直接使用旧版端点时没有同等保障:它会去除输入首尾的空白,但不会检查电话号码格式、国家代码、重复号码或项目的流程状态。
POST 请求
在本地创建 numbers.json 文件,内容结构如下。示例号码均为虚构号码;请替换为所选项目中已获授权的号码。
{
"numbers": [
"12025550123",
"12025550124"
],
"isocode": "US"
}curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--header "Content-Type: application/json" \
--data-binary @numbers.json \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID/addnumbers"| 字段 | 含义 |
|---|---|
| numbers | 必填,值为非空的号码字符串数组,或每行一个号码的字符串。空白条目会被丢弃,首尾空白会被去除。用逗号分隔的文本不会被拆分为多个号码。 |
| isocode | 可选,指定新增记录的国家代码。省略或留空时,使用项目所在地。处理程序会去除所提供值首尾的空白,但不会将其转换为大写,也不会验证该值。请自行提供正确的大写国家代码。 |
本示例使用 POST,内容类型为 application/json。处理程序也会读取表单 POST 输入。此方法未定义幂等键,也未约定此端点专用的安全批量大小;请分成便于核对的批次处理并核对结果,不要依赖猜测的上限。
返回的结果
虚构的响应示例。
{
"status": {
"code": 200,
"msg": "Success add numbers"
},
"response": {
"uniqueid": "PROJECT_EXAMPLE",
"count": 2,
"numbers": [
{
"id": 21,
"number": "12025550123",
"status": 0,
"status_str": "Pending",
"isocode": "US"
},
{
"id": 22,
"number": "12025550124",
"status": 0,
"status_str": "Pending",
"isocode": "US"
}
]
}
}响应会将尝试添加的记录标记为 Pending。它不会在报告结果前核实每次数据库插入的结果。因此,仅凭计数或返回的标识,无法证明每条记录都已持久化保存。标记为 Pending 的新增记录,并不表示运营商已受理、已安排携转时间或已完成激活。
重试前先核对记录
- 添加号码前,先读取项目的号码列表,并在自己的请求记录中保存计划添加的号码。
- 发送一次添加请求。
- 再次读取项目号码列表,逐一核对计划添加的号码。检查重复号码以及每个号码的状态。
- 如果请求超时、返回错误或报告的结果不明确,请先重新读取列表,再决定是否重试。部分记录可能已经添加。
- 请通过携转订单流程或联系支持人员处理缺失或重复的记录,不要盲目重新发送整个请求。
处理程序逐条插入记录,不使用事务,也没有防重复机制。操作中断时,之前写入的记录可能仍然保留;返回 false 的失败插入操作仍可能计入报告的数量。重复请求可能添加重复记录。处理程序本身不会写入事件记录,也不会完成运营商侧的号码携转。
旧版错误码
使用 POST 以外的方法会返回 API 代码 403。项目不存在、已删除或不属于该账户时,会返回 API 代码 404。号码输入为空时,也会返回 API 代码 404。身份验证和来源 IP 限制仍然适用。这些旧版代码不能证明开始处理后此前没有发生过插入操作。
计费与携转范围
已审查的处理程序会插入项目号码记录,其中没有直接从账户扣款或向运营商提交申请的操作。这并不意味着整个号码携转服务免费,也不会取代已约定的携转费用。请先满足项目的授权、文件和审核要求,再期待号码携转。