SMSPVAdevelopers
Activation V2
SMSPVA / API REFERENCE

接收短信

获取短信、来电显示或语音结果;HTTP 202 表示仍在等待。

SMSPVA API
GEThttps://api.smspva.com/activation/sms/{orderid}

此请求可能修改订单或产生费用。 示例不会自动重试。即使使用 GET,读取新收到的短信也可能触发计费。

身份验证

名称位置类型必填说明
apikeyheaderstring是你的 API 密钥
partnerkeyheaderstring否可选推荐合作方密钥,仅在成功接收短信时使用。

参数

名称位置类型必填说明
orderidpathinteger是申请号码时返回的订单 ID

无需请求体。

使用说明

使用申请号码时返回的 orderId,也可从当前订单获取。本接口同时返回短信、来电显示和语音结果;类型已在下单时通过 voice=0、voice=1 或 voice=2 选定,这里无需再次传入 voice。

供应商的 text 原样放入 data.sms.code,sms 原样放入 data.sms.fullText。因此,code 不一定是纯数字验证码。

HTTP 202,且 statusCode=202、error.type=SMS_NOT_YET_RECEIVED 时,表示结果仍在等待中。应先识别这一状态,再处理一般错误;稍后再查,且不要超过订单期限。三种消息类型都适用,详见轮询指南。

请求示例

运行环境及配置. cURL 使用 POSIX shell。JavaScript 示例也可用于 Node.js TypeScript 项目。Java 使用标准 HTTP 客户端并输出原始 JSON;请使用应用的 JSON 库读取响应字段。

  • SMSPVA_ORDER_ID: orderid (必填).
: "${SMSPVA_API_KEY:?Set SMSPVA_API_KEY}"
: "${SMSPVA_ORDER_ID:?Set SMSPVA_ORDER_ID to your orderid}"
curl --fail-with-body --max-time 30 --request GET \
  --url "https://api.smspva.com/activation/sms/${SMSPVA_ORDER_ID}" \
  --header "apikey: $SMSPVA_API_KEY"

响应

下方示例用于说明响应格式。价格、余量和账户数据仅为示例,实际数值请以 API 响应为准。

HTTP说明
200操作成功
202结果仍在等待中。短信、语音及来电显示均使用 SMS_NOT_YET_RECEIVED 和 Waiting for SMS 表示等待。
405参数不正确
406订单 ID 格式不正确或未找到。
407已收到短信,但余额不足以支付。
410订单已关闭,不可继续使用。
411karma 过低或请求过于频繁,API 访问受限。
500未能获取短信。
501服务器未能处理请求。
503服务器负载过高,请稍后再试。
HTTP 200

操作成功

SMS (voice=0)

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "123456",
      "fullText": "Your verification code is 123456"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

语音(voice=2)

语音结果示例:fullText 包含文本和录音链接,格式为 VOICE: ...; The file: ...。

code 的内容取决于供应商,目前格式未确认,不保证为数字验证码。

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "<provider text value>",
      "fullText": "VOICE: Your code is 123456; The file: https://link.smspva.com/EXAMPLE_RECORD_ID"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

语音:仅链接(voice=2)

可能的格式:fullText 仅包含录音链接。此形式尚未确认,请勿依赖固定文本格式。

code 是占位示例,实际为供应商 text 字段的原始值。

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "<provider text value>",
      "fullText": "https://link.smspva.com/EXAMPLE_RECORD_ID"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

来电显示(voice=1)

JSON 结构与短信相同。字段内容为占位示例,来电显示的准确格式尚未确认。

供应商可能在 code 中返回验证码或来电号码,在 fullText 中返回消息。不要假定 code 一定为验证码。

{
  "statusCode": 200,
  "data": {
    "sms": {
      "code": "<provider text: code or caller number>",
      "fullText": "<provider sms: caller-ID message>"
    },
    "orderId": 123456,
    "orderExpireIn": 420
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
dataobject响应数据
data.smsobject收到的短信内容
data.sms.codestring供应商 text 字段的原始内容,取决于消息类型和供应商,不一定是验证码。
data.sms.fullTextstring供应商 sms 字段的原始内容,可能是短信、语音文本和录音链接、单独录音链接或来电显示信息。
data.orderIdinteger订单 ID
data.orderExpireIninteger距订单到期的秒数
HTTP 202

结果仍在等待中。短信、语音及来电显示均使用 SMS_NOT_YET_RECEIVED 和 Waiting for SMS 表示等待。

响应示例

{
  "statusCode": 202,
  "error": {
    "type": "SMS_NOT_YET_RECEIVED",
    "description": "Waiting for SMS"
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 405

参数不正确

响应示例

{
  "statusCode": 405,
  "error": {
    "type": "INVALID_PARAMS",
    "description": "Invalid params, please re-check the specified data."
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 406

订单 ID 格式不正确或未找到。

响应示例

{
  "statusCode": 406,
  "error": {
    "type": "INVALID_ORDER_FORMAT",
    "description": "Order should be integer."
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 407

已收到短信,但余额不足以支付。

响应示例

{
  "statusCode": 407,
  "error": {
    "type": "LOW_BALANCE",
    "description": "Low balance"
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 410

订单已关闭,不可继续使用。

响应示例

{
  "statusCode": 410,
  "error": {
    "type": "ORDER_CLOSED",
    "description": "Order closed and unavailable"
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 411

karma 过低或请求过于频繁,API 访问受限。

响应示例

{
  "statusCode": 411,
  "error": {
    "type": "ACCESS_LIMITED",
    "description": "Access is temporary limited"
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 500

未能获取短信。

响应示例

{
  "statusCode": 500,
  "error": {
    "type": "SMS_FETCH_FAIL",
    "description": "Failed to fetch SMS."
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring错误类型
error.descriptionstring错误说明
HTTP 501

服务器未能处理请求。

响应示例

{
  "statusCode": 501,
  "error": {
    "type": "SERVER_FAIL",
    "description": "Server failed to process request"
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring
error.descriptionstring
HTTP 503

服务器负载过高,请稍后再试。

响应示例

{
  "statusCode": 503,
  "error": {
    "type": "SERVER_BUSY",
    "description": "Server overload, try later."
  }
}

响应字段

名称类型说明
statusCodeinteger结果状态码
errorobject错误详情
error.typestring错误类型
error.descriptionstring错误说明

相关指南

修改订单的请求发生网络故障时,先检查订单状态,再决定是否重试。

本页内容