在优惠券发放场景,业务通常会限制单账号仅可领取一次;演唱会、景区票务场景普遍采用一人一票的管控规则。面对这类线上营销与票务交易场景,如何高效可靠地完成购票 / 领券人的身份核验?手机号是线上核验的核心凭证之一,对应的方案就是手机号二要素、三要素实名核验能力。
一、二三要素有什么区别?
✅ 二要素(姓名 + 手机号)
请求参数:姓名 + 手机号 或 身份证号 + 手机号
作用:校验用户提交的姓名与手机号在运营商实名库中的登记信息是否一致,确认手机号登记机主是否为该用户。
优势:采集字段更少,对用户友好,适用于轻量化的实名风控场景。
✅ 三要素(姓名 + 身份证 + 手机号)
请求参数:姓名 + 身份证号 + 手机号
作用:比对姓名、身份证号、手机号三者在运营商实名库中的登记信息是否一致,实现更高强度的实名交叉核验。
优势:风控置信度更高,适用于账户开通、线上签约、金融业务、商家入驻等高信任要求的业务场景。
二、python简单接入示例
import urllib, urllib3, sys, uuid
import ssl
host = 'https://market.aliyun.com/detail/cmapi00067374'#探数API
path = '/mobile2'
method = 'GET'
appcode = '你自己的AppCode'
querys = 'name=%E5%BC%A0%E4%B8%89&mobile=13112313213'
bodys = {
}
url = host + path + '?' + querys
http = urllib3.PoolManager()
headers = {
'Authorization': 'APPCODE ' + appcode
}
response = http.request('GET', url, headers=headers)
content = response.data.decode('utf-8')
if (content):
print(content)
三、返回信息说明
二要素与三要素接口的返回形式相近,都是完成实名信息比对后,返回信息一致或不一致的核验结果,本身具备较高的安全性。
二要素json返回示例
{
"code": 1,
"msg": "操作成功",
"data": {
"name": "李四",
"mobile": "1366666219",
"res": 2, //核验结果状态码,1 一致;2 不一致;3 无记录
"description": "不一致" //描述
}
}
状态码说明
res:1一致res:2:不一致res:3:无记录,查不到档案,不代表不一致,可能是手机号码问题,先校验手机号格式、是否空号,过滤无效号码。
三要素json返回示例
{
"code": 1,
"msg": "操作成功",
"data": {
"name": "张三",//姓名
"idcard": "41166666667719X",//身份证号
"mobile": "13666666547", //手机号
"res": "3",//核验结果状态码,1 一致;2 不一致;3 无记录
"description": "无记录",//核验结果状态描述
"sex": "",
"birthday": "",
"address": ""
}
}
返回结果中的姓名、身份证号和手机号都是你输入请求参数的回显。
四、应用场景
✅ 二要素:姓名/身份证 + 手机号
采集字段少、用户体验好、成本更低;但是只能证明这个手机号实名登记是这个名字,无法锁定唯一的人。
应用场景
普通 APP / 小程序注册、会员开通、简单防刷风控
普通商家入驻、物流寄件、外卖、本地生活核验
账号找回、简单的订单实名确认
营销风控、活动领券、防止批量小号
✅ 三要素:姓名 + 身份证号 + 手机号
唯一锁定到人,核验等级高、防冒用能力强;需要用户提交身份证,隐私采集更多、单价更高。
应用场景
支付开户、提现、保险投保、信贷、理财等金融类业务
网约车司机、货运骑手、主播公会等高权限入驻审核
政务相关实名、线上签约、电子合同、公证业务
📌 快速选型一句话
不想收集身份证、只是简单确认手机号和名字对得上 → 二要素
要精准确定【这个号码就是该身份证本人在用】、业务有资金 / 法律风险、监管要求高 → 三要素