curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_national_id_facial" \
-F "vendor_data=user-1234" \
-F "national_id=11111111111" \
-F "selfie=@./selfie.jpg"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_national_id_facial"],
national_id="11111111111",
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "NGA",
services: ["nga_national_id_facial"],
national_id: "11111111111",
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "NGA",
Services: didit.Some([]string{"nga_national_id_facial"}),
NationalID: didit.String("11111111111"),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("NGA")
.services(List.of("nga_national_id_facial"))
.nationalId("11111111111")
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'NGA',
'services' => ['nga_national_id_facial'],
'national_id' => '11111111111',
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "NGA",
services: ["nga_national_id_facial"],
national_id: "11111111111",
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "NGA",
Services = new string[] { "nga_national_id_facial" },
NationalId = "11111111111",
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"address": "1 SAMPLE STREET",
"birth_country": "nigeria",
"birth_lga": "Ikeja",
"birth_state": "Lagos",
"date_of_birth": "1990-01-01",
"face_match_score": 92.4,
"first_name": "JOHN",
"gender": "Male",
"identification_number": "11111111111",
"last_name": "DOE",
"marital_status": "single",
"middle_name": "SAMUEL",
"phone_number": "08000000000",
"photo_available": true,
"residence_lga": "Ikeja",
"residence_state": "Lagos",
"residence_town": "IKEJA"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"address": "1 SAMPLE STREET",
"birth_country": "nigeria",
"birth_lga": "Ikeja",
"birth_state": "Lagos",
"date_of_birth": "1990-02-01",
"face_match_score": 92.4,
"first_name": "JOHN",
"gender": "Male",
"identification_number": "11111111111",
"last_name": "DOE",
"marital_status": "single",
"middle_name": "SAMUEL",
"phone_number": "08000000000",
"photo_available": true,
"residence_lga": "Ikeja",
"residence_state": "Lagos",
"residence_town": "IKEJA"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"face_match_score": 12.5,
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {},
"validation": {}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
🇳🇬 尼日利亚
尼日利亚国家身份证 + 自拍照(NIMC)核验 API
尼日利亚国家身份证 + 自拍照(NIMC):通过 Didit 查询尼日利亚权威数据库。按次计费,起价 $0.35,无合同,无最低消费。
POST
/
v3
/
database-validation
/
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_national_id_facial" \
-F "vendor_data=user-1234" \
-F "national_id=11111111111" \
-F "selfie=@./selfie.jpg"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_national_id_facial"],
national_id="11111111111",
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "NGA",
services: ["nga_national_id_facial"],
national_id: "11111111111",
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "NGA",
Services: didit.Some([]string{"nga_national_id_facial"}),
NationalID: didit.String("11111111111"),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("NGA")
.services(List.of("nga_national_id_facial"))
.nationalId("11111111111")
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'NGA',
'services' => ['nga_national_id_facial'],
'national_id' => '11111111111',
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "NGA",
services: ["nga_national_id_facial"],
national_id: "11111111111",
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "NGA",
Services = new string[] { "nga_national_id_facial" },
NationalId = "11111111111",
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"address": "1 SAMPLE STREET",
"birth_country": "nigeria",
"birth_lga": "Ikeja",
"birth_state": "Lagos",
"date_of_birth": "1990-01-01",
"face_match_score": 92.4,
"first_name": "JOHN",
"gender": "Male",
"identification_number": "11111111111",
"last_name": "DOE",
"marital_status": "single",
"middle_name": "SAMUEL",
"phone_number": "08000000000",
"photo_available": true,
"residence_lga": "Ikeja",
"residence_state": "Lagos",
"residence_town": "IKEJA"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"address": "1 SAMPLE STREET",
"birth_country": "nigeria",
"birth_lga": "Ikeja",
"birth_state": "Lagos",
"date_of_birth": "1990-02-01",
"face_match_score": 92.4,
"first_name": "JOHN",
"gender": "Male",
"identification_number": "11111111111",
"last_name": "DOE",
"marital_status": "single",
"middle_name": "SAMUEL",
"phone_number": "08000000000",
"photo_available": true,
"residence_lga": "Ikeja",
"residence_state": "Lagos",
"residence_town": "IKEJA"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"face_match_score": 12.5,
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {},
"validation": {}
}
]
}
{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
根据国家身份管理委员会(NIMC)登记库,核验尼日利亚国家身份证号(NIN)。此服务需要提供自拍照:与 NIN 关联的注册照片会与自拍照进行人脸比对,只有两者为同一人时才会返回记录。您可以通过
POST /v3/database-validation/ 调用此服务,将提交的数据与权威数据源进行核对,并获得标准化的匹配结果。
覆盖范围
- 覆盖率: ~ 100%
- 国家/地区: 尼日利亚
- 服务 ID:
nga_national_id_facial - 数据领域: 身份
- 类别: NationalIDRegistry
输入
| 字段 | 必填 | 示例 |
|---|---|---|
national_id | 是 | 11111111111 |
selfie | 是 | @./selfie.jpg |
first_name | 否 | John |
last_name | 否 | Doe |
date_of_birth | 否 | 1990-01-01 |
vendor_data | 否 | user-1234 |
- 必填输入:
national_id、selfie - 可选输入:
first_name、last_name、date_of_birth、vendor_data - 同意: 无需
- 工作流可用性: 可在工作流中使用
- 覆盖率: ~ 100%
- 价格: 每次成功查询 $0.35
请求体参数
string
默认值:"NGA"
必填
此数据库服务的 ISO 3166-1 alpha-3 国家/地区代码。示例:
NGAstring
默认值:"nga_national_id_facial"
必填
包含此服务 ID 的数组。指定该服务可确保请求仅针对此特定数据库。示例:
nga_national_id_facialstring
默认值:"11111111111"
必填
此服务的国家身份证号。示例:
11111111111file
必填
用于生物识别数据库核验的自拍照文件。支持的格式:JPEG、PNG 或 WebP。示例:
@./selfie.jpgstring
需要核验的名字。示例:
Johnstring
需要核验的姓氏。示例:
Doestring
出生日期,格式为
YYYY-MM-DD。示例:1990-01-01string
默认值:"user-1234"
您为此用户设定的稳定用户标识,例如您的内部用户 ID。Didit 使用它将独立检查关联到同一终端用户,并减少重复检测的干扰。示例:
user-1234输入规则与校验说明
first_name必须匹配[A-Za-zÀ-ÖØ-öø-ÿ .'-]+。national_id只能包含数字;发送请求前,请删除空格、连字符和标点符号。national_id的长度必须恰好为 11 个字符。
调用方式
curl -X POST "https://verification.didit.me/v3/database-validation/" \
-H "x-api-key: YOUR_API_KEY" \
-F "issuing_state=NGA" \
-F "services=nga_national_id_facial" \
-F "vendor_data=user-1234" \
-F "national_id=11111111111" \
-F "selfie=@./selfie.jpg"
from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.database_validation.validate(
issuing_state="NGA",
services=["nga_national_id_facial"],
national_id="11111111111",
vendor_data="user-1234",
selfie=open("selfie.jpg", "rb"),
)
print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.databaseValidation.validate({
issuing_state: "NGA",
services: ["nga_national_id_facial"],
national_id: "11111111111",
vendor_data: "user-1234",
selfie: await fileFromPath("selfie.jpg"),
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DatabaseValidation.Validate(ctx, didit.DatabaseValidationValidateParams{
IssuingState: "NGA",
Services: didit.Some([]string{"nga_national_id_facial"}),
NationalID: didit.String("11111111111"),
VendorData: didit.String("user-1234"),
Selfie: didit.Some(didit.FileFromPath("selfie.jpg")),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import java.util.List;
import me.didit.Didit;
import me.didit.types.DatabaseValidationValidateParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.databaseValidation().validate(DatabaseValidationValidateParams.builder()
.issuingState("NGA")
.services(List.of("nga_national_id_facial"))
.nationalId("11111111111")
.vendorData("user-1234")
.selfie(Path.of("selfie.jpg"))
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->databaseValidation->validate([
'issuing_state' => 'NGA',
'services' => ['nga_national_id_facial'],
'national_id' => '11111111111',
'vendor_data' => 'user-1234',
'selfie' => File::fromPath('selfie.jpg'),
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.database_validation.validate(
issuing_state: "NGA",
services: ["nga_national_id_facial"],
national_id: "11111111111",
vendor_data: "user-1234",
selfie: Pathname("selfie.jpg")
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DatabaseValidation.ValidateAsync(new DatabaseValidationValidateParams
{
IssuingState = "NGA",
Services = new string[] { "nga_national_id_facial" },
NationalId = "11111111111",
VendorData = "user-1234",
Selfie = FileUpload.FromPath("selfie.jpg"),
});
Console.WriteLine(JsonSerializer.Serialize(result));
每次成功调用都返回 HTTP 200。outcome_code 字段说明实际发生的情况,例如可区分真实的生物识别不匹配(BIOMETRIC_NO_MATCH)与无法读取的自拍照(BIOMETRIC_IMAGE_UNUSABLE)。所示的 status 为默认功能状态;您配置的部分匹配/不匹配操作可以覆盖该状态。MATCH:登记库已确认身份,且所有检查字段均匹配。{
"request_id": "req_01H…",
"status": "Approved",
"issuing_state": "NGA",
"match_type": "full_match",
"validations": [
{
"outcome_code": "MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"address": "1 SAMPLE STREET",
"birth_country": "nigeria",
"birth_lga": "Ikeja",
"birth_state": "Lagos",
"date_of_birth": "1990-01-01",
"face_match_score": 92.4,
"first_name": "JOHN",
"gender": "Male",
"identification_number": "11111111111",
"last_name": "DOE",
"marital_status": "single",
"middle_name": "SAMUEL",
"phone_number": "08000000000",
"photo_available": true,
"residence_lga": "Ikeja",
"residence_state": "Lagos",
"residence_town": "IKEJA"
},
"validation": {
"date_of_birth": "full_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
PARTIAL_MATCH:自拍照与登记照片匹配,NIN 在登记库中有记录,但您发送的姓名或出生日期与 NIMC 记录不一致。系统会返回该记录,以便您查看哪些字段不一致。{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": "partial_match",
"validations": [
{
"outcome_code": "PARTIAL_MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"address": "1 SAMPLE STREET",
"birth_country": "nigeria",
"birth_lga": "Ikeja",
"birth_state": "Lagos",
"date_of_birth": "1990-02-01",
"face_match_score": 92.4,
"first_name": "JOHN",
"gender": "Male",
"identification_number": "11111111111",
"last_name": "DOE",
"marital_status": "single",
"middle_name": "SAMUEL",
"phone_number": "08000000000",
"photo_available": true,
"residence_lga": "Ikeja",
"residence_state": "Lagos",
"residence_town": "IKEJA"
},
"validation": {
"date_of_birth": "no_match",
"full_name": "full_match",
"identification_number": "full_match"
}
}
]
}
BIOMETRIC_NO_MATCH:NIN 在登记库中有记录,但自拍照与 NIMC 注册照片并非同一人(人脸比对分数低于接受阈值)。不会返回记录中的任何内容,仅返回分数。{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "BIOMETRIC_NO_MATCH",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"face_match_score": 12.5,
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
INCONCLUSIVE:NIN 在登记库中有记录,但无法完成人脸比对:没有可用的注册照片,或未检测到人脸。不会返回记录中的任何内容,match_type 为 null,且该检查会转入审核。{
"request_id": "req_01H…",
"status": "In Review",
"issuing_state": "NGA",
"match_type": null,
"validations": [
{
"outcome_code": "INCONCLUSIVE",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {},
"validation": {}
}
]
}
DOCUMENT_NOT_FOUND:NIN 格式正确,但 NIMC 登记库中没有对应记录。此次查询仍会计费。{
"request_id": "req_01H…",
"status": "Declined",
"issuing_state": "NGA",
"match_type": "no_match",
"validations": [
{
"outcome_code": "DOCUMENT_NOT_FOUND",
"service_id": "nga_national_id_facial",
"service_name": "Nigeria National ID + Selfie (NIMC)",
"source_data": {
"identification_number": "NO_MATCH"
},
"validation": {
"identification_number": "no_match"
}
}
]
}
返回数据
source_data 中实际返回的字段取决于登记库返回的内容。nga_national_id_facial 的自动生成示例目前记录了以下标准化结构:
addressbirth_countrybirth_lgabirth_statedate_of_birthface_match_scorefirst_namegenderidentification_numberlast_namemarital_statusmiddle_namephone_numberphoto_availableresidence_lgaresidence_stateresidence_town
定价与 SLA
尼日利亚国家身份证 + 自拍照(NIMC)查询仅在 Didit 从验证来源收到明确结果时计费。- 单次调用价格: $0.35 USD。
- 计费方式: 按每次成功的查询计费。如果登记库无法访问、缺少必填字段,或请求在到达来源之前即被拒绝,则不收费。
- 延迟: 典型 p95 低于 2 秒。
- 可用性: Didit 一侧每季度 99.9%;下游来源的可用性因国家和数据集而异。
自拍照与人脸比对
NIMC 登记库会为有效的 NIN 返回持有人的完整记录,因此知道一个号码并不能证明您就是该号码的持有人。因此,每次查询都必须与一张自拍照关联:该自拍照会与 NIMC 为该 NIN 保存的登记照片进行人脸比对,只有两者为同一人时才会返回记录。- 匹配:
source_data包含 NIMC 记录和face_match_score。您发送的姓名和出生日期会与之比对,结果在validation中返回。如果您发送了这些信息,将得到姓名和出生日期的判定结果;如果省略,则从source_data中读取登记库的值。 - 不是同一人: 返回
BIOMETRIC_NO_MATCH。仅返回face_match_score,不返回任何个人数据。 - 无法完成比对: 当 NIMC 未保存该 NIN 的照片,或无法检测到人脸时,返回
INCONCLUSIVE。不返回任何内容,该检查会转入人工审核。 - NIN 未知: 返回
DOCUMENT_NOT_FOUND。该查询仍会计费。
继续阅读
最后修改于 2026年11月7日