You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aadhaar OTP认证返回Error Code 998问题排查求助

分析你的Aadhaar OTP认证错误(err=998)

从你提供的响应和请求体来看,核心问题是请求参数不符合UIDAI测试环境的规范,导致签名或参数验证失败(err=998是通用的验证失败错误码)。下面是具体的问题点和修复建议:

1. 无效的时间戳(ts字段)

你的请求体里的ts值是0001-01-01T00:00:00,这是一个无效的默认值,UIDAI的API要求这个字段必须是当前的印度标准时间(UTC+5:30),精确到毫秒。这个错误会直接导致服务器拒绝请求,因为时间戳是签名验证的关键部分之一。

修复方法:

修改Program.cs中构建OTP请求的代码,将ts设置为当前的IST时间,比如:

var currentIstTime = DateTime.UtcNow.AddHours(5.5);
// 在构建Otp对象时设置ts属性
otp.Ts = currentIstTime;

2. 签名算法与测试环境要求不匹配

你的请求签名使用的是rsa-sha1算法(从<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />可以看出),但UIDAI的测试环境现在要求使用SHA-256作为签名摘要算法。响应中的info字段已经包含SHA-256的哈希值,说明服务器期望的是SHA-256签名。

修复方法:

在项目中找到签名配置的代码,将签名方法和摘要方法改为SHA-256:

  • 签名方法:http://www.w3.org/2001/04/xmldsig-more#rsa-sha256
  • 摘要方法:http://www.w3.org/2001/04/xmlenc#sha256

3. 测试UID的有效性确认

你使用的UID是999999990026,虽然UIDAI提供了测试UID,但需要确认这个ID是否在当前测试环境的白名单中。如果不确定,可以替换为UIDAI官方文档中明确列出的测试UID(比如999999990001等)。

4. 接口端点的正确性

你的请求URL是http://developer.uidai.gov.in/otp/1.6/public/9/9/...,注意UIDAI的测试环境端点现在可能已经更新为HTTPS,HTTP请求可能会被拒绝或者重定向,导致验证失败。

修复方法:

将请求协议改为HTTPS,确保调用的是正确的测试环境端点。

按照以上步骤逐一排查修复,应该就能解决err=998的问题。

内容的提问来源于stack exchange,提问作者PavanKumar GVVS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:53:42