服务端接入

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

完成客户端接入后,您还需要在服务端调用VerifyIntelligentCaptcha接口,发起验证请求。本文介绍如何调用VerifyIntelligentCaptcha接口。

前提条件

您需要创建访问凭据,验证码2.0服务端支持使用AccessKey、STS Token等多种方式调用,具体请参见初始化凭据客户端

重要

禁止直接使用主账号AccessKey,因为主账号AccessKey一旦泄露将威胁您所有云资源的安全。请使用子账号(RAM用户)AccessKey,有效降低AccessKey泄露的风险。使用阿里云验证码,您需要为子账号授予阿里云验证码权限(AliyunYundunAFSFullAccess)。

下载并安装SDK

  1. 根据您服务端的开发环境,在OpenAPI开发者门户的中,下载对应语言版本的服务端SDK包。验证码2.0服务端代码集成支持Java、TypeScript、Go、PHP、Python、.NET、C++和Swift语言。

    支持的语言

    SDK下载地址

    Github源码地址

    Java

    Python

    下载Python SDK

    Captcha SDK for Python

    Typescript

    下载TypeScript SDK

    Captcha SDK for Typescript

    Go

    下载Go SDK

    Captcha SDK for Go

    PHP

    下载PHP SDK

    Alibaba Cloud Green SDK for PHP

    Swift

    下载Swift SDK

    Captcha SDK for Swift

    C++

    下载C++ SDK

    Captcha SDK for C++

    .NET

    下载.NET SDK

    Captcha SDK for .NET

  2. 解压SDK包,并加载到您的服务端工程中。

调用VerifyIntelligentCaptcha接口

发起认证请求

  • 接口名:VerifyIntelligentCaptcha

  • 服务地址:如果客户端regioncn,服务端请调用中国内地地址;如果是sgp,请调用新加坡地址。

    • 中国内地:captcha.cn-shanghai.aliyuncs.com

    • 新加坡:captcha.ap-southeast-1.aliyuncs.com

  • 请求方法:POST

  • 传输协议:HTTPS

  • 接口说明:客户端验证码配置完成后,在服务端调用本接口进行验证。

请求参数

名称

类型

是否必选

描述

示例值

CaptchaVerifyParam

String

由验证码脚本回调的验证参数,直接将全部参数信息由客户端传给服务端即可。

警告

禁止对验证参数做任何修改,否则业务会报错。

  • V2架构示例值:{"sceneId":"xxxxxx","certifyId":"xxxxxx","deviceToken":"xxxxxxx==","data":"xxxxxx==","..."}

  • V3架构示例值:eyJjZXxxxxxxxxxxxxxxnVlfQ==

SceneId

String

由您服务端写入本次验证对应的场景ID,建议传入,尤其在多场景下,防止前端被篡改为其他场景。

Udw***d72

返回数据

名称

类型

描述

HTTP Status Code

Integer

HTTP状态码。更多信息,请参见返回参数说明

HTTP Body

RequestId

String

请求ID。

Success

Boolean

请求是否成功。

  • true:表示请求成功。

  • false:表示请求失败。

Code

String

返回码。更多信息,请参见返回参数说明

Message

String

返回详细信息。更多信息,请参见返回参数说明

Result

VerifyResult

Boolean

验证结果。

  • true:表示验证通过。

  • false:表示验证不通过。

VerifyCode

String

T001

服务端校验通过。

T005

控制台开启测试模式,且配置了验证通过。如有疑问,请登录验证码2.0控制台查看对应场景的策略状态的配置。具体操作请参见接入指引

F001

疑似攻击请求,风险策略不通过。

F002

您传入的CaptchaVerifyParam参数为空,CaptchaVerifyParam是由前端自动获取并传给您的服务端,服务端不能做任何更改,直接传给阿里云。请参考服务端接入检查您的集成代码。

F003

您传入的CaptchaVerifyParam格式不合法,CaptchaVerifyParam是由前端自动获取并传给您的服务端,服务端不能做任何更改,直接传给阿里云。请参考服务端接入检查您的集成代码。

F004

控制台开启测试模式,且配置了验证不通过。如有疑问,请登录验证码2.0控制台查看对应场景的策略状态配置。具体操作请参见场景管理

F005

CaptchaVerifyParam中的场景ID(sceneId)不合法,CaptchaVerifyParam是由前端自动获取并传给您的服务端,服务端不能做任何更改,直接传给阿里云。请参考服务端接入检查您的集成代码。

F006

CaptchaVerifyParam中的场景ID(sceneId)不合法,前端集成需要传入您账户创建的场景ID,请登录验证码2.0控制台查看场景配置。

F008

验证数据重复提交。同一笔验证码请求只允许提交一次。

F009

检测到虚拟设备环境,请检查是否使用vmware、virtualbox、hyper-v、parallels等虚拟机,avd、blue stacks、vbox/hyper-v等模拟器,桌面浏览器模拟移动设备等。如不需要拦截,请登录验证码2.0控制台自定义策略中关闭,具体操作请参见设置自定义策略

F010

IP访问频率超出限制。如果需要自定义频率阈值,请登录验证码2.0控制台自定义策略进行配置,具体操作请参见设置自定义策略

F011

同设备访问频率超出限制。如果需要自定义频率阈值,请登录验证码2.0控制台自定义策略进行配置,具体操作请参见设置自定义策略

F012

您服务端参数里传入的SceneID需要与前端配置的场景ID(SceneId)保持一致。

F013

您传入的CaptchaVerifyParam缺少参数,CaptchaVerifyParam是由前端自动获取并传给您的服务端,服务端不能做任何更改,直接传给阿里云。请参考发起认证请求检查您的集成代码。

F014

无初始化记录,可能存在两种原因:

  • 验证请求和初始化请求间隔超出20分钟时间,后端会删除初始化记录,请重新发起初始化请求进行尝试。

  • 不存在初始化记录,疑似攻击请求,或者接入异常,发起验证请求前需先发起客户端初始化请求。

F015

验证交互不通过。例如拼图没有滑动到正确位置,可以刷新验证码重新完成交互。

F016

控制台自定义策略配置URL验证导致不通过,请登录验证码2.0控制台自定义策略中URL验证策略进行调整,具体操作请参见设置自定义策略

F017

疑似攻击请求,协议或参数异常不通过。

F018

V3架构下,业务验签请求入参CaptchaVerifyParam重复使用。

F019

V3架构下,行为验证请求和业务验签请求间隔超出90秒或未发起行为验证就直接进行业务验签请求。

F020

V3架构下,业务验签请求的CaptchaVerifyParam与场景ID或用户不匹配。

返回参数HTTP Status CodeCodeMessage的详细说明,如下表所示。

HTTP Status Code

Code

Message

200

Success

成功。

400

MissingParameter

缺少必须参数。

401

InvalidParameter

参数不合法。

403

Forbidden.AccountAccessDenied

无权限,可能是未开通服务,或已欠费。

403

Forbidden.RAMUserAccessDenied

RAM用户无权限,请授权 AliyunYundunAFSFullAccess。具体操作,请参见RAM角色授权

500

InternalError

系统内部错误,建议重试。

代码示例

验证码服务端智能验证示例代码