跳到主要内容

Omnitouch 端口转移管理器

为运营商提供号码可移植性管理 — 清算所集成、ENUM路由和OSS/BSS生命周期事件,配有供运营团队使用的Web UI。

Omnitouch在我们的网络中部署了号码可移植性,已与PortingXS进行实时集成,并在北美市场支持NPAC


概述

Omnitouch 端口转移管理器处理号码转移操作的完整生命周期:向清算所提交和跟踪请求,维护已转移号码的ENUM路由数据库,并将生命周期事件传递给运营商的OSS/BSS。它与PortingXS在其43个国家的网络中集成,并与NPAC进行美国部署。

该平台旨在由大规模的OSS/BSS驱动,配有Web UI以进行日常操作工作 — 审查端口状态、处理边缘案例、查询路由和验证已转移号码的SMS交付。

在您进一步阅读之前,有几点值得注意:

  • 路由使��All-Call-Query对ENUM数据库进行查询,使用npdi/rn参数,符合RFC 4694和3GPP TS 23.228 — 而不是静态范围表,这在后续转移时会静默中断
  • 账户类型不匹配(最常见的拒绝原因)会在没有人工干预的情况下自动重试
  • 平台拥有转移工作流和路由;账户资格和服务生命周期保留在您的OSS/BSS中,并提供API钩子以连接它们
  • 对于运行OmniCRM的运营商,OSS/BSS集成是预构建的

Omnitouch 端口转移管理器充当客户管理系统、外部转移清算所、DNS/ENUM路由基础设施和计费平台之间的中央集成点。

集成架构

Omnitouch 端口转移管理器围绕一个清晰的边界构建:它拥有转移工作流和路由,而您的OSS/BSS拥有客户。这是故意设计的。

运营商已经拥有一个BSS,知道客户账户是否良好,持有什么服务,以及服务终止时会发生什么。将该逻辑构建到转移平台中意味着要么重复它,要么与之对抗。相反,Omnitouch 端口转移管理器暴露了正确的钩子 — 资格检查调用您的BSS以获取答案,生命周期事件(转移完成、转移授权)通知您的BSS采取行动。转移平台完成其工作;您的BSS完成其工作。

在实践中,这意味着:

  • 端口请求生命周期和清算所交互在此完���管理
  • 完成后路由自动更新
  • 账户资格、服务激活和账户关闭保留在您的OSS/BSS中 — 由该平台的事件触发,而不是被其替代

对于运行OmniCRM的运营商,此集成是预构建的。对于已有BSS的运营商,API提供了所需的事件钩子以进行连接。

Web UI供转移团队处理日常操作 — 审查请求、处理待处理转移、查询路由和诊断SMS交付问题。在规模上,期望通过API自动化端口提交和生命周期响应。


系统架构

核心组件

  1. 端口转移管理器 — 协调转移工作流并管理与号码可移植性清算所的交互
  2. DNS/ENUM服务器 — 管理呼叫路由和号码解析
  3. API与Web界面 — 提供编程和用户访问转移功能

集成点

  • OmniCRM — 客户关系管理和服务提供
  • 计费平台 — 计费和收入管理(CGrateS)
  • PortingXS — 国际号码可移植性清算所
  • NPAC — 美国号码可移植性清算所
  • DNS/ENUM基础设施 — 呼叫路由和号码解析

端口转移管理器

端口转入工作流

  1. 请求发起 — 通过Web UI或API创建端口转入请求
  2. 清算所提交 — 端口转移管理器将请求提交给适当的清算所(国际市场为PortingXS,美国为NPAC)
  3. 状态监控 — 系统通过清算所事件流跟踪状态变化
  4. ENUM配置 — 在成功完成转移后,路由数据库自动更新
  5. 服务激活 — OmniCRM服务被激活,计费开始
  6. 计费集成 — 计费平台被通知开始计费

自动识别捐赠运营商

当提交端口转入请求时,如果没有donornetworkoperator,Omnitouch 端口转移管理器会自动根据号码范围确定捐赠运营商。这是大多数提交的推荐默认值 — 只有在需要覆盖自动检测结果时,才需要明确指定运营商代码。

自动账户类型重提交

捐赠运营商常见的拒绝原因是 账户类型不正确(拒绝代码35) — 请求中的预付费/后付费标志与捐赠者的记录不匹配。在收到此拒绝时,端口转移管理器会自动重试请求,切换账户类型(预付费 → 后付费或反之)。

重提交会创建一个新的端口记录。在Web UI中,原始端口ID在新记录中以绿色显示,以便历史可追溯。通过API,GET /np_api/PortIn/{msgidentifier}在发生重提交时会透明地解析为活动记录。

端口��出工作流

  1. 请求接收 — 从获得运营商通过清算所接收端口转出请求
  2. 服务验证 — 系统验证服务是否存在且符合条件
  3. CRM通知 — OmniCRM更新端口转出状态
  4. ENUM去配置 — 路由数据库更新以将呼叫路由到获得运营商
  5. 服务终止 — 在预定的转移时间:在OmniCRM中停用服务,生成最终发票,关闭所有相关服务

清算所集成

PortingXS

PortingXS (PXS) 是一个广泛采用的国际号码可移植性清算所,在四个地区的43个国家运营:

区域国家
美洲和加勒比安提瓜和巴布达、巴哈马、巴巴多斯、开曼群岛、库拉索、多米尼加、格林纳达、圭亚那、牙买加、巴拿马、圣卢西亚、圣基茨和尼维斯、圣马丁、圣文森特和格林纳丁斯、特立尼达和多巴哥、土克凯科斯
欧洲比利时、波斯尼亚和黑塞哥维那、直布罗陀、根西岛、爱尔兰、曼岛、泽西岛、科索沃、黑山、斯洛文尼亚、荷兰、乌克兰
非洲阿尔及利亚、贝宁、加纳、肯尼亚、纳米比亚、尼日利亚、卢旺达、塞内加尔、塞舌尔、多哥
中东和亚洲亚美尼亚、孟加拉国、文莱、伊拉克、斯里兰卡

端口转移管理器通过REST/SOAP API集成,并通过状态机管理完整的端口生命周期。

核心能力:

  • 端口转入/转出管理,具有完整的状态机工作流
  • 通过事件历史进行实时状态更新
  • SOA/ENUM XML消息跟踪
  • ENUM(IMS)和MAP/INAP/CAP(All Call Query)的集中路由数据库
  • 手动路���覆盖

API端点:

方法端点描述
POST/PortIn/create提交新的端口转入请求
GET/PortIn/list列出所有端口转入请求
GET/PortIn/{msgidentifier}获取事件历史
POST/PortIn/{msgidentifier}发送继续指令
DELETE/PortIn/{msgidentifier}中止端口请求
GET/PortOut/list列出端口转出请求
POST/PortOut/{msgidentifier}授权端口转出
DELETE/PortOut/{msgidentifier}拒绝端口转出
GET/route/{phone_number}查询当前路由
POST/route/{msisdn}/{operator}/{type}手动更新路由

运营商代码、号码格式和账户类型根据部署进行配置。

NPAC

对于美国运营,Omnitouch 端口转移管理器与号码可移植性管理中心(NPAC)集成:

  • NPAC服务订单(SO)创建和管理
  • 本地服务提供商(LSP)交互
  • 订阅版本(SV)管理
  • 实时状态同步
  • 符合美国转移法规和时间表

DNS / ENUM服务器

DNS服务器为电信网络提供全面的DNS服务,支持标准数据包服务、漫游场景、IMS和号码可移植性呼叫路由。

3GPP网络区域

EPC区域 (epc.mncXXX.mccYYY.3gppnetwork.org) — 用于本地Diameter信令和漫游场���。使访问网络能够发现本地PGW资源。包含用于Diameter对等发现的SRV和NAPTR记录。

IMS区域 (ims.mncXXX.mccYYY.3gppnetwork.org) — 支持IP多媒体子系统操作。路由SIP信令并为IMS用户定位CSCF资源。支持VoLTE和RCS。

公共3GPP区域 (mncXXX.mccYYY.pub.3gppnetwork.org) — 提供对面向用户的服务的外部访问:XCAP服务器发现、GBA的BSF位置和VoWiFi的ePDG发现。

ENUM用于号码可移植性

DNS服务器使用e164enum.net区域实现RFC 3761 ENUM服务。

All-Call-Query (ACQ): 每个呼叫查询ENUM数据库以确定当前路由。

ENUM查询流程:

  1. 呼叫系统提取拨打的号码(例如 +1-555-0100)
  2. 号码转换为ENUM格式(0.0.1.0.5.5.5.1.e164.arpa
  3. 向ENUM服务器发出DNS NAPTR查询
  4. 服务器返回路由信息:运营商标识符、路由号码(RN)、服务提供商、自定义路由标签

OmniCall — Omnitouch的IMS和MSC平台 — 处理ENUM ACQ流程无需额外集成工作;OmniCall在每个呼叫中查询ENUM服务器,并根据NAPTR响应进行路由。对于同时运行OmniCall和Omnitouch端口转移管理器的运营商,转移号码的路由在转移完成的瞬间是正确的,无需人工干预或单独的路由表维护。

转移号码的路由方法

RFQ 4694中定义的,3GPP在TS 23.228 §4.18中采用的IMS路由方法是针对ENUM数据库的All-Call-Query。每个呼叫查询ENUM以获取特定拨打号码的当前路由,响应直接携带服务运营商的路由号码。这就是号码可移植性在IMS网络中应有的工作方式 — 基于实时每个号码数据的路由决策,而不是需要手动维护并随着号码转移而过时的范围表。

Omnitouch 端口转移管理器完全实现了这一点。当转移完成时,NAPTR记录会自动推送到ENUM服务器,适用于转移范围内的每个号码:

0.0.1.0.5.5.5.1.e164.arpa. NAPTR 10 10 "u" "E2U+pstn:tel"
"!(^.*$)!sip:\1;npdi;rn=<routing_number>@<carrier_ims_domain>!"

对于未转移的号码,npdi被设置而不带rn — 确认查询已运行且号码未移动。无论如何,发起IMS核心(S-CSCF/BGCF)从DNS获得明确的答案并进行路由,而无需进一步的数据库查询。

路由在多次转移中保持正确,无需任何人工干预。ENUM服务器始终是单一的真实来源。


计费平台集成

端口转入

当号码成功转入时:

  1. 网关向计费平台发送激活通知
  2. 计费平台创建订阅者账户和计费配置文件
  3. 循环费用和使用计费立即开始
  4. 第一个发票可能基于转移完成日期进行按比例计算

端口转出

当号码转出时:

  1. 网关向计费平台发送停用通知
  2. 在预定的转移时间,实时计费停止
  3. 生成最终账单:按比例计算的循环费用、未付使用费、提前终止费用(如适用)、信用/退款
  4. 以转移原因代码关闭订阅者账户

操作工作流

日常操作

  1. 早晨状态审查 — 检查过夜的转移活动和清算所更新
  2. 行动项处理 — 处理待批准和客户确认
  3. 错误解决 — 调查和解决失败或被拒绝的转移
  4. 客户沟通 — 协调客户即将到来的转移日期

监控

Omnitouch 端口转移管理器提供自动监控:

  • 清算所API连接
  • ENUM配置失败
  • CRM同步错误
  • 计费平台集成失败
  • 异常的转移拒绝率

合规性和审计

  • 所有转移活动都有完整的审计跟踪
  • 符合监管转移时间表
  • 保留运营商间通信记录
  • 与清算所费用的财务对账

常见问题

转移卡在待处理状态 — 检查清算所API连接,验证客户信息,查看事件日志以获取拒绝原因。

转移后路由未更新 — 确认端口状态为Number_Ported。使用路由查询检查当前状态。如有需要,使用推送路由手动更正。

SMS验证失败 — 展开结果行以收集消息ID和事务ID。在升级时向CPaaS提供商提供这些信息。


用户指南

入门

访问由API密钥控制。在首次加载时,您将看到一个输入API密钥的模态框。输入您分配的API密钥并点击保存更改。凭据存储在浏览器的localStorage中,并在会话之间保持持久。要随时更新您的密钥,请点击导航栏右上角的更改API密钥

您的账户级别决定可用的功能:

级别访问
管理员完全访问所有功能
PXS用户端口转入/转出管理和路由
只读仅路由查询和SMS验证

导航

转移请求 — 提交新的端口转入请求

端口转入 — 查看和管理所有端口转入请求

端口转出 — 审查并响应其他运营商的端口转出请求

路由查询 — 查找任何号码的当前路由

推送路由 — 手动配置路由记录

验证SMS路由 — 通过多个CPaaS提供商发送测试SMS消息

更改API密钥 — 更新您的凭据(按钮,右上角)


新的端口转移请求

点击导航中的转移请求以打开提交表单。

新的端口转移请求表单

字段描述
捐赠网络运营商捐赠运营商的运营商代码。选择自动以从号码范围自动检测。
覆盖冷却期仅在客户明确放弃冷却期时设置为。默认:假。
账户类型预付费或后付费
号码类型移动或固定
第一个号码号码范围的起始(本地格式,不带国家代码)
最后一个号码范围的结束 — 对于单个号码转移与第一个号码相同
总号码自动计算
电子邮件(联系人)此请求的联系电子邮件
授权号码客户授权号码 — 如果留空则从第一个号码自动填写

点击提交以创建请求。成功消��将显示分配的消息标识符。


端口转入仪表板

端口转入仪表板

描述
ID内部数据库ID
端口ID清算所消息标识符
状态当前转移状态
请求时间提交时间戳
更新最后更新时间戳
运营商捐赠网络运营商代码
目标联系/授权号码
类型移动或固定
服务类型事件历史按钮
操作状态依赖的操作按钮

如果端口已重提交(例如,因账户类型不匹配),则原始端口ID以绿色显示。如果端口被拒绝,则拒绝原因以红色显示。

端口转入状态:

状态含义
Waiting_for_Authorisation_Response请求已提交,等待捐赠者响应
Waiting_for_Instruction捐赠者已授权 — 确认继续
Waiting_for_Instruction_Response指令已发送,等待确认
Waiting_for_Ported_Response转移执行中
Number_Ported / Number_Ported_Complete转移完成,路由已更新
Aborted已取消
Rejected捐赠者拒绝请求
TimeOut请求超时

操作:

  • Waiting_for_Authorisation_Response中止按钮(红色)取消请求
  • Waiting_for_Instruction指令按钮(绿色)确认端口应继续

事件历史:

点击任何行上的事件历史以打开事件日志模态框。

端口转入事件历史模态框

  • 事件 — 每个状态转换的手风琴列表,带有事件类型和日志详细信息
  • XML主体 — 所有SOA/ENUM XML消息的下载链接,分为出站(Output_XML)和入站(Input_XML
  • 详细数据 — 端口记录的完整JSON转储

端口转出仪表板

端口转出仪表板

描述
ID内部数据库ID
端口ID清算所消息标识符
状态当前转移状态
请求时间提交时间戳
更新最后更新时间戳
运营商接收(获得)运营商代码
目标正在转出的号码范围
服务类型事件日志按钮
操作授权或拒绝按钮

操作(Waiting_for_Authorisation_Response):

  • 授权(绿色) — 批准端口转出并通知获得运营商
  • 拒绝(红色) — 拒绝请求。仅在合法理由下使用:账户不匹配、未付款项、欺诈请求或号码未激活。

点击任何行上的事件日志以查看完整的消息交换。

端口转出事件历史模态框


路由查询

输入本地号码(国家代码自动添加)并点击检查路由

路由查询结果

响应是原始CGrateS ProcessEvent结果:

字段描述
Event.E164Address查询的号码
Event.NAPTRAddressNAPTR路由字符串 — IMS域或路由号码
Event.NAPTROrderNAPTR顺序值
Event.NAPTRPreferenceNAPTR优先值
MatchedProfiles此号码匹配的CGrateS属性配置文件

推送路由

推送路由表单

字段描述
电话号码(不带国家代码)本地号码 — 国家代码自动添加
运营商要将此号码路由到的运营商代码
类型移动或固定

用于紧急修正、初始配置或当自动后转路由失败时。


验证SMS路由

SMS路由验证

此工具的主要用例是验证来自外部CPaaS提供商的A2P(应用到个人)SMS消息是否正确路由到已转移的号码。当号码被转移时,新运营商必须在每个提供商的路由表中正确配置 — 这并不总是自动发生,没有像这样的工具���没有简单的方法来检测差距。

通过从每个提供商向已转移的号码发送测试消息,您可以确认哪些提供商已更新其路由,哪些尚未。返回错误或未能交付的提供商可以直接使用结果中的调试信息进行升级。

验证提供商接受了消息提交 — 不确认交付到手机。使用测试设备或SMSc日志检查确认交付。

  1. 输入目标电话号码(通常是最近转移的号码)
  2. 选择一个或多个A2P提供商进行测试
  3. 点击检查路由

目标号码将收到来自每个选定提供商的SMS,内容为来自{ProviderName}的测试。结果显示绿色(接受)或红色(错误)。点击任何结果行以展开调试信息 — 在升级路由问题至CPaaS提供商时所需。

可用提供商:

提供商备注
Enet原生平台SMPP交付
GTT运营商直接
Digicel运营商直接
SinchCPaaS提供商
TwilioOmnitouch有直接升级联系
VonageOmnitouch有直接升级联系
TelnyxOmnitouch客户 — 直接团队联系
PilvoOmnitouch有直接升级联系

Swagger / API Explorer

Omnitouch 端口转移管理器在/np_api/doc提供实时Swagger UI。

Swagger UI — 命名空间概述

Swagger UI — 路由命名空间

Swagger UI — PortIn创建

OpenAPI架构可在/np_api/swagger.json中获取,以便导入到Postman或其他API工具。


API参考

基础URL

/np_api/

交互式文档可在/np_api/doc中找到。

身份验证

有关身份验证设置和凭据管理,请参阅管理员指南。

级别能力
admin完全访问所有端点
pxs端口转入/转出管理和路由
read_only仅验证和号码信息端点

端口转入端点

创建端口转入请求

POST /np_api/PortIn/create授权: admin, pxs

字段类型必需描述
donornetworkoperatorstring捐赠运营商代码 — 留空以进行自动检测
emailstring联系电子邮件
overridecooloffboolean跳过监管冷却期(默认:假)
contacttelephonenumberstring客户授权号码
Type_of_Numbersstring"mobile""fixed"
telephonenumberseriestartstring范围内的第一个号码
telephonenumberserieendstring范围内的最后一个号码
AccountTypestring"Prepaid""Postpaid"
PortingStateinteger初始状态覆盖(默认:0)
curl -X POST https://your-host/np_api/PortIn/create \
-u "your_username:your_api_key" \
-H "Content-Type: application/json" \
-d '{
"donornetworkoperator": "DONOR",
"email": "ops@example.com",
"overridecooloff": false,
"contacttelephonenumber": "5550100",
"Type_of_Numbers": "mobile",
"telephonenumberseriestart": "5550100",
"telephonenumberserieend": "5550199",
"AccountType": "Prepaid"
}'

响应:

{
"result": "success",
"msgidentifier": "XX202501-CARR-00001",
"message": "Port-in request created successfully"
}

列出端口转入请求

GET /np_api/PortIn/list授权: admin, pxs

返回最多30条记录,按最新排序。

获取端口转入请求

GET /np_api/PortIn/{msgidentifier}授权: admin, pxs

返回完整记录,包括事件历史和号码范围。如果被重提交,则透明地返回更新的记录。

响应格式:

{
"port_in_id": 42,
"msgidentifier": "XX202501-CARR-00001",
"PortingState": 2,
"PortingStateString": "Waiting_for_Instruction",
"donornetworkoperator": "DONOR",
"email": "ops@example.com",
"contacttelephonenumber": "5550100",
"Type_of_Numbers": "mobile",
"AccountType": "Prepaid",
"overridecooloff": false,
"submission_timestamp": "2025-01-15T10:30:00",
"update_timestamp": "2025-01-15T14:22:00",
"failure_reason": null,
"original_porting_request": null,
"phone_number_ranges": [
{ "telephonenumberseriestart": "5550100", "telephonenumberserieend": "5550199" }
],
"events": [
{
"porting_in_event_id": 1,
"msgtype": "PortingRequest",
"direction": 0,
"eventlog": "Submitted to clearinghouse",
"submission_timestamp": "2025-01-15T10:30:00Z"
}
]
}

转移状态值:

状态
0NoPort
1Waiting_for_Authorisation_Response
2Waiting_for_Instruction
3Waiting_for_Instruction_Response
10Waiting_for_Ported_Response
11Waiting_for_Change_Response
20Number_Ported
30Number_Ported_Complete
97TimeOut
98Aborted
99Rejected

拒绝原因代码(failure_reason):

代码原因
0未知
31账户已暂停
32账户问题
33账单问题
34存款超限
35��户类型不正确
36报告被盗或丢失
37特殊
38无冷却期(回归)
39预付费账单问题
99一般拒绝

发送指令(确认端口)

POST /np_api/PortIn/{msgidentifier}授权: admin, pxs

确认端口应继续。仅在PortingStateWaiting_for_Instruction(2)时有效。

中止端口转入

DELETE /np_api/PortIn/{msgidentifier}授权: admin, pxs

取消端口转入。有效状态:Waiting_for_Authorisation_ResponseWaiting_for_InstructionWaiting_for_Authorisation

列出XML文件

GET /np_api/PortIn/get_xml_list/{msgidentifier}授权: admin, pxs

返回端口的XML文件名数组。

下载XML文件

GET /np_api/PortIn/get_xml/{folder}/{filename}授权: admin, pxs

folderoutput_XML(发送)或input_XML(接收)。


端口转出端点

列出端口转出请求

GET /np_api/PortOut/list授权: admin, pxs

获取端口转出请求

GET /np_api/PortOut/{msgidentifier}授权: admin, pxs

响应格式:

{
"port_out_id": 99,
"msgidentifier": "XX202501-DONOR-00001",
"PortingState": 1,
"PortingStateString": "Waiting_for_Authorisation_Response",
"recipientnetworkoperator": "DONOR",
"Type_of_Numbers": "mobile",
"submission_timestamp": "2025-01-16T09:15:00",
"update_timestamp": "2025-01-16T09:15:00",
"phone_number_ranges": [
{ "telephonenumberseriestart": "5550200", "telephonenumberserieend": "5550249" }
],
"events": []
}

授权端口转出

POST /np_api/PortOut/{msgidentifier}授权: admin, pxs

批准端口转出并通知获得运营商。

拒绝端口转出

DELETE /np_api/PortOut/{msgidentifier}授权: admin, pxs

拒绝端口转出。仅在合法理由下使用:账户不匹配、未付款项、欺诈请求或号码未激活。


路由端点

查询号码路由

GET /np_api/route/{msisdn}授权: admin, pxs

返回CGrateS路由记录,包括NAPTR地址、顺序、优先级和HSS订阅数据。msisdn为不带前导+的完整E.164号码。

推送路由更新

POST /np_api/route/{msisdn}/{operator}/{type}授权: admin, pxs

手动配置路由记录。operator为特定于部署的。typemobilefixed

删除路由记录

DELETE /np_api/route/{msisdn}授权: admin, pxs

移除路由记录。

仅查询HSS

GET /np_api/route/hss_route/{msisdn}授权: admin, pxs

仅返回HSS订阅��据,不进行路由数据库查找。


验证端点

SMS路由验证

POST /np_api/validate/sms_validate授权: admin, pxs, read_only

通过指定的CPaaS提供商发送测试SMS。国家代码前缀自动添加。

字段类型描述
phone_numberstring目标号码
OperatorstringEnetGTTDigicelSinchTwilioVonageTelnyxPilvoClickSend
apiKeystring提供商API密钥(如需要)

响应:

{
"result": "Sent",
"x-message-id": "SM1234567890abcdef",
"x-transaction-id": "8a2c925809bb403f01",
"x-message-timestamp": "2025-01-15T10:30:00.000Z",
"x-provider": "Twilio",
"x-provider-response": "..."
}

号码信息

GET /np_api/info/{msisdn}授权: admin, pxs, read_only

查询清算所以获取号码信息。返回原始清算所响应的JSON格式。


终止号码

DELETE /np_api/terminate/{msisdn}/{type_of_numbers}授权: admin, pxs

向清算所提交终止请求并移除路由记录。type_of_numbersmobilefixed


清算所XML接收器

POST /np_api/{deployment_prefix}/recv/授权: pxs(清算所凭据)

清算所用于传递入��XML消息的内部端点。不可直接使用。部署前缀根据安装进行配置。

消息类型操作
authorisation_request创建新的端口转出记录
authorisation_response更新端口转入状态;在代码35时重试并切换账户类型
instruction_response将端口转入推进到Waiting_for_Ported_Response
ported标记转移完成,更新路由数据库,发送欢迎通知
timedout将状态设置为TimeOut
terminated移除路由记录

错误响应

{
"result": "Exception raised in ...",
"Reason": "error details"
}
状态含义
200成功
401身份验证失败
403文件未找到(XML下载)
500内部错误 — 检查Reason字段