すべてのプロダクト
Search
ドキュメントセンター

Captcha:サーバーサイド統合

最終更新日:Nov 09, 2025

クライアントサイド統合が完了したら、サーバーから VerifyIntelligentCaptcha API を呼び出して検証を完了します。このトピックでは、VerifyIntelligentCaptcha API の呼び出し方法について説明します。

前提条件

アクセス資格情報を作成します。Captcha 2.0 サーバーは、AccessKey やセキュリティトークンサービス (STS) トークンなど、さまざまなメソッドを使用する API 呼び出しをサポートしています。詳細については、「資格情報クライアントの初期化」をご参照ください。

重要

Alibaba Cloud アカウントの AccessKey を使用しないでください。 AccessKey が漏洩した場合、すべてのクラウドリソースが危険にさらされます。セキュリティリスクを軽減するには、Resource Access Management ( RAM ) ユーザーの AccessKey を使用します。Alibaba Cloud CAPTCHA を使用するには、RAM ユーザーに AliyunYundunAFSFullAccess 権限を付与します。

SDK をダウンロードしてインストールする

  1. OpenAPI Developer Portal から、お使いのプログラミング言語用のサーバーサイドソフトウェア開発キット (SDK) パッケージをダウンロードします。Captcha 2.0 は、Java、TypeScript、Go、PHP、Python、.NET、C++、Swift 用のサーバーサイド SDK を提供しています。

    対応言語

    SDK ダウンロードアドレス

    GitHub ソースアドレス

    Java

    Python

    Python SDK をダウンロード

    Python 用 Captcha SDK

    TypeScript

    TypeScript SDK をダウンロード

    TypeScript 用 Captcha SDK

    Go

    Go SDK をダウンロード

    Go 用 Captcha SDK

    PHP

    PHP SDK をダウンロード

    Alibaba Cloud Green SDK for PHP

    Swift

    Swift SDK をダウンロード

    Swift 用 Captcha SDK

    C++

    C++ SDK をダウンロード

    C++ 用 Captcha SDK

    .NET

    .NET SDK をダウンロード

    .NET 用 Captcha SDK

  2. SDK パッケージを解凍し、サーバーサイド プロジェクトにロードします。

VerifyIntelligentCaptcha API を呼び出す

認証リクエストを送信する

  • API 名: VerifyIntelligentCaptcha

  • AliyunCaptchaConfig の region パラメーターの値は、サーバー側のエンドポイントに正しくマッピングされている必要があります。そうでない場合、検証リクエストはエラーを返します。

    エンドポイント

    クライアント側統合の region パラメーターの値

    対応するサーバー側のエンドポイント

    署名検証ドメイン名のデュアルスタックサポート

    中国本土 (上海)

    cn

    IPv4: captcha.cn-shanghai.aliyuncs.com

    IPv4 のみサポート

    デュアルスタック: captcha-dualstack.cn-shanghai.aliyuncs.com

    IPv4 と IPv6 の両方をサポート

    中国本土以外 (シンガポール)

    sgp

    IPv4: captcha.ap-southeast-1.aliyuncs.com

    IPv4 のみサポート

    デュアルスタック: captcha-dualstack.ap-southeast-1.aliyuncs.com

    IPv4 と IPv6 の両方をサポート

  • リクエストメソッド: POST

  • 転送プロトコル: HTTPS

  • API の説明: クライアントサイドの Captcha を設定した後、サーバーからこの API を呼び出して検証を実行します。

リクエストパラメーター

名前

タイプ

必須

説明

CaptchaVerifyParam

String

はい

Captcha スクリプトのコールバックによって返される検証パラメーター。クライアントからサーバーにすべてのパラメーター情報を渡します。

警告

検証パラメーターを変更しないでください。変更すると、ビジネスエラーが発生します。

  • V2 アーキテクチャの例: {"sceneId":"xxxxxx","certifyId":"xxxxxx","deviceToken":"xxxxxxx==","data":"xxxxxx==","..."}

  • V3 アーキテクチャの例: eyJjZXxxxxxxxxxxxxxxnVlfQ==

SceneId

String

いいえ

現在の検証のシナリオ ID。特にマルチシナリオデプロイメントでは、フロントエンドが改ざんされて他のシナリオに使用されるのを防ぐために、サーバーでこのパラメーターを指定します。

Udw***d72

レスポンスパラメーター

名前

タイプ

説明

HTTP ステータスコード

Integer

HTTP ステータスコード。詳細については、「レスポンスパラメーターの説明」をご参照ください。

HTTP ボディ

RequestId

String

リクエスト ID。

Success

ブール値

リクエストが成功したかどうかを示します。

  • true: リクエストは成功しました。

  • false: リクエストは失敗しました。

Code

String

リターンコード。詳細については、「レスポンスパラメーターの説明」をご参照ください。

Message

String

詳細情報。詳細については、「レスポンスパラメーターの説明」をご参照ください。

Result

VerifyResult

ブール値

検証結果。

  • true: 検証に合格しました。

  • false: 検証に失敗しました。

VerifyCode

String

T001

サーバー側の検証に合格しました。

T005

コンソールでテストモードが有効になっており、検証に合格するように構成されています。ご質問がある場合は、Captcha 2.0 コンソール にログインして、シナリオのポリシーステータス設定を確認してください。詳細については、「統合ガイド」をご参照ください。

F001

攻撃の疑いのあるリクエスト。リクエストはリスク管理ポリシーによってブロックされています。

F002

渡された CaptchaVerifyParam パラメーターが空です。CaptchaVerifyParam はフロントエンドによって自動的に取得され、サーバーに渡されます。このパラメーターは変更しないでください。Alibaba Cloud に直接渡してください。詳細については、「サーバーサイド統合」をご参照ください。統合コードを確認してください。

F003

渡された CaptchaVerifyParam パラメーターのフォーマットが無効です。CaptchaVerifyParam はフロントエンドによって自動的に取得され、サーバーに渡されます。このパラメーターは変更しないでください。Alibaba Cloud に直接渡してください。詳細については、「サーバーサイド統合」をご参照ください。統合コードを確認してください。

F004

コンソールでテストモードが有効になっており、検証をブロックするように構成されています。ご質問がある場合は、Captcha 2.0 コンソール にログインして、シナリオのポリシーステータス構成を確認してください。詳細については、「シナリオの管理」をご参照ください。

F005

CaptchaVerifyParam のシーン ID (sceneId) が無効です。CaptchaVerifyParam はフロントエンドによって自動的に取得され、サーバーに渡されます。このパラメーターは変更しないでください。Alibaba Cloud に直接渡してください。詳細については、「サーバーサイド統合」をご参照ください。統合コードを確認してください。

F006

CaptchaVerifyParam のシーン ID (sceneId) が無効です。フロントエンド統合では、アカウント用に作成されたシーン ID を渡す必要があります。[Captcha 2.0 コンソール]にログインして、シナリオ設定を表示してください。

F008

検証データが繰り返し送信されています。検証コードリクエストは一度だけ送信できます。

F009

仮想デバイス環境が検出されました。VMware、VirtualBox、Hyper-V、Parallels などの仮想マシン、AVD、BlueStacks、VBox/Hyper-V などのエミュレーター、またはモバイルデバイスを偽装するデスクトップブラウザを使用しているかどうかを確認してください。これらのリクエストをブロックしたくない場合は、Captcha 2.0 コンソール にログインし、カスタムポリシーでこの機能を無効にしてください。詳細については、「カスタムポリシーを設定する」をご参照ください。

F010

同じ IP アドレスからのアクセス頻度が制限を超えています。頻度のしきい値をカスタマイズするには、Captcha 2.0 コンソール にログインして、カスタムポリシーを構成します。詳細については、「カスタムポリシーを設定する」をご参照ください。

F011

同じデバイスからのアクセス頻度が制限を超えています。頻度のしきい値をカスタマイズするには、Captcha 2.0 コンソール にログインして、カスタムポリシーを構成します。詳細については、「カスタムポリシーを設定する」をご参照ください。

F012

サーバー側パラメーターで渡された SceneID は、フロントエンドで構成された SceneId と同じである必要があります。

F013

渡された CaptchaVerifyParam パラメーターにパラメーターがありません。CaptchaVerifyParam はフロントエンドによって自動的に取得され、サーバーに渡されます。このパラメーターは変更しないでください。Alibaba Cloud に直接渡してください。詳細については、「認証リクエストの送信」をご参照ください。統合コードを確認してください。

F014

初期化レコードが見つかりません。これには 2 つの理由が考えられます。

  • 検証リクエストと初期化リクエストの間隔が 20 分を超えています。バックエンドは初期化レコードを削除します。初期化リクエストを再送信してください。

  • 初期化レコードが存在しません。これは、攻撃の疑いのあるリクエスト、または統合エラーである可能性があります。検証リクエストを送信する前に、クライアント側の初期化リクエストを送信する必要があります。

F015

検証インタラクションに失敗しました。たとえば、パズルピースが正しい位置に移動されませんでした。Captcha を更新して、再試行できます。

F016

コンソールのカスタムポリシーで構成された URL 検証のため、リクエストがブロックされています。Captcha 2.0 コンソール にログインして、URL 検証ポリシーを調整してください。詳細については、「カスタムポリシーを設定する」をご参照ください。

F017

攻撃の疑いのあるリクエスト。異常なプロトコルまたはパラメーターのため、リクエストがブロックされています。

F018

V3 アーキテクチャでは、ビジネス署名検証リクエストのリクエストパラメーター CaptchaVerifyParam が再利用されています。

F019

V3 アーキテクチャでは、動作検証リクエストとビジネス署名検証リクエストの間隔が 90 秒を超えているか、ビジネス署名検証リクエストが先行する動作検証リクエストなしで送信されています。

F020

V3 アーキテクチャでは、ビジネス署名検証リクエストの CaptchaVerifyParam がシーン ID またはユーザーと一致しません。

CertifyID

String

  • 初期化中にカスタム CertifyID パラメーター (UserCertifyId) を渡した場合、この値はカスタムの関連付けと検証をサポートするためにパススルーされます。

  • 初期化中にカスタム CertifyID パラメーターを渡さない場合、この値は単一の検証エポックを識別するためにサーバーによって生成されるデフォルトの CertifyID です。

次の表は、HTTP ステータスコードコード、およびメッセージのレスポンスパラメーターについて説明しています。

HTTP ステータスコード

Code

Message

200

Success

リクエストは成功しました。

400

MissingParameter

必須パラメーターがありません。

401

InvalidParameter

パラメーターが無効です。

403

Forbidden.AccountAccessDenied

操作を実行する権限がありません。サービスがアクティブ化されていないか、アカウントの支払いが遅延している可能性があります。

403

Forbidden.RAMUserAccessDenied

RAM ユーザーは操作を実行する権限がありません。RAM ユーザーに AliyunYundunAFSFullAccess 権限を付与します。詳細については、「RAM ロールに権限を付与する」をご参照ください。

500

InternalError

内部エラーが発生しました。リクエストを再試行することをお勧めします。

コード例

サーバー側インテリジェント検証のサンプル コード