本文适合后端、风控、产品同学阅读,介绍二次放号识别能力、校验逻辑、参数说明与调用示例
一、什么是手机号二次放号
当原机主办理号码注销后,运营商会回收号码,经过一段冷冻期,再重新投放市场给新用户办理,这个过程就叫二次放号。
但运营商仅能清除自有业务关系,无法自动解绑该号码在第三方平台的账号、微信、支付宝、银行卡、信贷等绑定关系。新机主拿到号码后,可以接收原机主验证码,存安全风险。
二、接口能力概述
手机号二次放号核验API,用于识别号码是否为运营商回收重放的二次号,帮助业务在注册、换绑、找回密码场景下做风控判断,降低账号安全与短信投诉风险。
✅ 能力亮点:支持携号转网识别,区分号段归属运营商与当前真实运营商,避免携转号码误判。
⏱ 数据同步时效:移动 T+7(入网7天后数据更新);联通、电信 T+5(入网5天后数据更新)。
注意:刚开户不久的新号码存在数据延迟,存在漏判可能,不建议单独把该接口结果作为唯一拦截依据,建议叠加人脸、实名等其他风控策略。
三、校验原理
业务在用户注册、手机号绑定时,传入手机号 + 业务侧账号注册日期;
接口返回该号码运营商入网时间,做对比判断:
如果运营商入网时间晚于平台账号历史绑定时间 → 判定为二次放号,代表当前机主已经更换
四、接口参数说明
请求参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| phone | string | 是 | 11位手机号 |
| date | string | 是 | 平台账号最早注册日期,格式 yyyyMMdd |
返回参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 请求状态码,1=请求成功 |
| msg | string | 请求描述信息 |
| phone | string | 查询手机号 |
| status | string | 二次放号判定结果:1=二次放号,2=非二次放号 |
| isp | string | 号段归属运营商:1移动,2联通,3电信 |
| is_xhzw | string | 是否携号转网:1是,0否 |
| isp_real | string | 当前实际运营商:1移动,2联通,3电信 |
五、适用业务场景
- App/小程序/网站注册、短信登录:拦截二次号,防止新机主直接登录前机主账号;账号换绑、密码找回环节加固安全能力。
- 金融业务(支付、保险、信贷):作为风控标签,命中二次号后触发加强核验,防范身份冒用欺诈,降低资损。
- SaaS、物业、教培平台:存量账号治理,清理失效手机号绑定,停止向已换主人的号码推送通知。
- 短信服务商:前置过滤号码,减少营销、通知短信错发给新机主带来的骚扰投诉,保护短信通道。
六、Python调用示例
import urllib3
# 接口基础信息
host = "https://market.aliyun.com/detail/cmapi00068857"#接口地址 探数
path = "/phone_second"
appcode = "替换为你的AppCode"
# 请求参数
phone = "18577881111"
date = "20241130"
url = f"{host}{path}?phone={phone}&date={date}"
http = urllib3.PoolManager()
headers = {
"Authorization": f"APPCODE {appcode}"
}
resp = http.request("GET", url, headers=headers)
result = resp.data.decode("utf-8")
print(result)