号码认证服务

更新时间:
复制 MD 格式

号码认证方案用于标识App下的认证场景,一般一个认证方案对应一个App包名、包签名等信息。系统调用API的过程需要使用对应的方案Code、包名、包签名、BundleID等信息。如果您需要新增或者删除号码认证方案,可以参考本文进行操作。

使用须知

  • 如果接入端为iOS、AndroidHarmony,号码认证方案完成创建后,会生成阿里云号码认证密钥。该密钥在使用SDK功能时需要作为入参设置,请务必妥善保存。建议保存到App服务端。

    重要

    密钥生成为异步接口,需刷新页面。由于中国移动内部实现原因,密钥生成十分钟后,移动号码才可正常使用。

  • H5本机号码校验开发接入时,后台会通过不同方案识别不同的H5页面认证过程。

  • 新增的号码认证方案不支持修改操作。

  • 号码认证服务存在以下功能限制与适用范围,接入前请确认:

    1. 运营商支持范围:仅支持中国大陆三大运营商(移动、联通、电信)实名认证手机号,不支持中国广电(含 192 号段)及国际/港澳台号码。

    2. H5 接入限制:H5 方案不支持短信验证码功能,且中国移动方向号码需在创建方案后第 2 个工作日方可调用。

    3. 双卡校验规则:SDK 仅校验当前手机数据流量主卡号码,不支持直接指定非流量卡取号;如需切换,需用户在系统设置中更改上网卡,或改用短信验证码登录。

    4. 国际化支持:暂不支持授权页隐私协议英文显示及其他国际化配置。

新增号码认证方案

  1. 登录号码认证产品控制台

  2. 在左侧导航栏,选择号码认证服务 > 号码认证方案管理

  3. 单击新增号码认证方案

    说明

    号码认证方案号数量上限为 20 个。当方案号数量达到上限时,控制台将禁用新增号码认证方案按钮,无法继续创建。您需要先删除不需要的方案号,使数量降至 20 以下后,才能创建新的方案号。

    删除方案号后,基于该方案号的认证将不再可用。

  4. 根据页面提示信息,设置方案参数。

    接入端

    说明

    Android

    填写方案名称、APP名称、包名、包签名及方案类型。

    iOS

    填写方案名称、APP名称、BundleID及方案类型。

    Harmony

    填写方案名称、APP名称、包名、包签名、AppId及方案类型。

    说明

    您可通过以下鸿蒙官方代码,获取应用相关属性(包名、包签名和AppId)。

    bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO).then((bundleInfo) => {
      const packageName = bundleInfo.name
      console.log("numberauth:pagname:" + packageName)
      const sign = bundleInfo.signatureInfo.fingerprint
      console.log("numberauth:sign:" + sign)
      const appIdentifier = bundleInfo.signatureInfo.appIdentifier
      console.log("numberauth:appid:" + appIdentifier)
    })

    H5

    填写方案名称、页面地址、源地址及方案类型。

    以需要接入认证的页面https://www.aliyun.com/resources/html/contract.html为例,域名为www.aliyun.com
    • 页面地址格式为“协议 + // + 域名 + /”,如:https://www.aliyun.com/

    • 源地址格式为“协议 + // + 域名”,如:https://www.aliyun.com

    说明

    接入端为H5时,因运营商管控要求,中国移动方向的号码认证能力,需要创建方案后的第2个工作日才可以发起调用。具体生效时间以运营商审核通过为准。

  5. 单击确定

    号码认证方案管理页面,查看已新增的方案,获取方案Code;单击操作列详情,查看方案详情。

说明

异常处理提示

  • 新增号码认证方案按钮无法点击,或 H5 方案创建后没有出现密钥按钮,请尝试刷新页面重试。

  • H5 方案创建后无密钥按钮属于正常现象:H5 主要通过 JS-SDK/API 集成,不涉及独立应用密钥配置。

  • 新增的号码认证方案不支持修改,如需变更参数,请先删除原方案再新建。

删除号码认证方案

认证方案创建成功后便无法修改信息。如有需要,请先删除原认证方案,再创建新的认证方案,并基于新方案对应的参数信息进行开发接入。

号码认证方案管理页面,单击操作栏删除,删除认证方案。

重要

删除后将不再允许基于该认证方案发起认证,请务必谨慎操作。

常见问题

服务端调用 GetMobile 接口报错 InvalidAction.NotFound 或 isv.TOKEN_UNAUTHORIZED_USED 如何处理?

  1. InvalidAction.NotFound:通常因误用 H5 接口 GetPhoneNo 或域名配置错误导致。App 端一键登录应调用 GetMobile 接口,域名须为 dypnsapi.aliyuncs.com,建议使用专用 SDK dypnsapi20170525(2.0.0 及以上版本)。

  2. isv.TOKEN_UNAUTHORIZED_USED:表示 Token 越权使用,常见原因为客户端调用了本机号码校验接口 getVerifyToken 却用于一键登录场景。请确保一键登录流程中客户端调用 getLoginToken 获取 Token。

说明

注意区分:GetMobile 用于一键登录取号,GetPhoneWithToken/getVerifyToken 用于本机号码校验。

号码认证服务授权页样式如何自定义?是否支持底部弹窗或禁止背景滚动?

支持通过 CSS 覆盖实现自定义样式。

  1. 底部弹窗:原生授权页支持非全屏底部弹窗模式。

  2. 禁止背景滚动:通过增加 CSS 权重(如使用 !important 置于属性值后)覆盖默认样式,针对 .dialog-type-container .dialog-type-inner-content 设置 position: absolute,并使用 top: 40vh 等 vh 单位定位。

  3. Unity 集成注意事项:若图形验证码出现变形闪烁,需确保 Activity 配置 android:hardwareAccelerated=true

说明

alicom_captcha_android 属于号码认证服务的图形认证模块,非独立验证码 2.0 产品。

号码认证服务支持哪些开发框架?如何升级 SDK?

  1. 框架支持:提供 Android、iOS、Harmony 原生 SDK 及 UniApp 插件,暂不支持 Expo 框架;Flutter 无官方插件,需自行研发接入。

  2. SDK 升级:在控制台下载最新版本 SDK 替换旧版,React Native 项目需同步更新 react-native-ali-onepass

  3. 混淆规则:升级至 2.14.22 及以上版本时,需按官方文档配置新增混淆规则。

  4. 密钥匹配:升级方案号 (SchemeCode) 后,务必在 SDK 中同步更新对应的新 apiKey,否则报错 410002/510002

H5 一键登录的完整对接流程是什么?

  1. 开通号码认证服务,并在控制台创建 H5 认证方案。

  2. 下载 JS-SDK,参考 H5 前端接入文档集成。

  3. 服务端调用 GetAuthToken 获取 jwtTokenaccessToken

  4. 客户端调用 checkLoginAvailable 鉴权(传入上述两个 Token)。

  5. checkLoginAvailable 成功回调中调用 getLoginToken 获取 sptoken(注意:必须在此回调内调用)。

  6. 服务端调用 GetMobile(非 GetPhoneWithToken)校验 sptoken 并返回明文号码。

说明

生产环境无需修改服务地址,使用默认测试地址即可;协议 URL 路径仅支持 http/https 网络地址,不支持本地页面路径。

一键登录授权页 Logo 是否支持根据运营商动态切换?

不支持。因前端无法在授权页唤起前提前判断运营商归属(JS-SDK 同时调用三家运营商接口,以掩码获取成功方为准),Logo 需在初始化时固定配置。

若业务强需区分展示,建议在配置前通过自有业务逻辑预判运营商,并生成单一图片地址变量传入 SDK。