使用SMS-Activate的API协议
API 是 你软件与我们激活服务器之间的交互协议.
API是为实现你接受短信过程的自动化
我们的API和竞争对手的网站是完全相容的
所有请求必须发送至 https://api.sms-activate.guru/stubs/handler_api.php
POST和GET请求.
所有请求都必须以 api_key 该 GET 参数的形式包含一个 API 密钥
在php中下载协议的现成实现 在 Python 中下载协议的现成实现激活
参数:
$api_key - API 密钥
$country * - 国家号码 见表
$operator * - 移动运营商号码,您可以指定多个以逗号分隔的号码(仅适用于**):
**可用于 $country = 0, $country = 1, $country = 2
答案:
服务答案有json形式, 比如:
{"vk_0":76,"ok_0":139,"wa_0":90,"vi_0":223,"tg_0":158,"wb_0":106,"go_0":182,"av_0":244,"av_1":211,"fb_0":107}
连号是服务的名称,指定之后是否要开启呼叫转移。0-否,1-是。
参数:
$api_key - API 密钥
$service * - 服务 见表
* 可选参数。如果未指定,默认情况下将显示所有服务的顶级国家/地区。
$freePrice * - 可选参数。如果被提供 true,数量和价格将根据 Free Price 会被提供。
答案:
服务答案有json形式, 比如:
{
0: {
"country: 0,
"count": 43575,
"price": 15.00,
"retail_price": 30.00
}, ...
}
$freePrice = true:
{
0: {
"country: 0,
"count": 43575,
"price": 15.00,
"retail_price": 30.00,
"freePriceMap": {
"15.00": 43242,
"18.00": 333
}
}, ...
}
使用现金返还帐户的余额请求:
* 如果在返现账户设置“激活时花费返现”复选框被选中,则返回余额并包括累积的返现
参数:
$api_key - API 密钥
答案:
ACCESS_BALANCE: '账户余额'
可能有错误:
BAD_KEY - api 密钥不正确
ERROR_SQL - sql服务的错误
*返回转移国家/地区可用的所有运营商,如果国家/地区未转移 - 将返回每个国家/地区可用的所有运营商
参数:
$api_key - API 密钥
$country- 国家代码
答案:
服务的响应将为json格式:
{"status":"success", "countryOperators": {
"Country1Code": ["operator1Name","operator2Name","operator3Name", ...],
"Country2Code": ["operator1Name","operator2Name","operator3Name", ...],
...
}}
例子:
{"status":"success", "countryOperators": {
"0": ["beeline","megafon","mts", ...],
"1": ["life","mts","kyivstar","utel" ...],
...
}}
*在“国家运营商”内 - 关键将是国家代码
可能有错误:
BAD_KEY - api 密钥不正确
ERROR_SQL - sql服务的错误
OPERATORS_NOT_FOUND - 未找到记录(例如,不存在的国家/地区已转移)
参数:
$api_key - API 密钥
答案:
服务的响应将为json格式:
{"status":"success", "activeActivations": [
{
"activationId" : "635468021",
"serviceCode" : "vk",
"phoneNumber" : "79********1",
"activationCost" : "12.50",
"activationStatus" : "4",
"smsCode" : ["CODE"],
"smsText" : "[您的代码注册码]",
"activationTime" : "2022-06-01 16:59:16",
"discount" : "0.00",
"repeated" : "0",
"countryCode" : "0",
"countryName" : "Russia",
"canGetAnotherSms" : "1",
}]
可能有错误:
BAD_KEY - api 密钥不正确
ERROR_SQL - sql服务的错误
NO_ACTIVATIONS - 未找到条目(无活动激活)
参数:
$api_key - API 密钥
$service - 订购服务 见表
$forward * - 是否有必要通过转发请求号码
* 可选参数,接受0(不执行,默认设置),1(执行)
$maxPrice * - 您准备以Free Price购买号码的最高价格
* 可选参数,如果不指定则按正常价格购买
$phoneException * - 为俄罗斯号码排除的字冠。请使用逗号输入。记录格式:国家代码和 3 至 6 位掩码数字(如 7918、7900111)。默认数值为账户中指定的数值。
$operator* 是号码的移动运营商,你可以使用逗号指定几个(仅适用于 **)
$activationType - 激活类型:0 - 通过短信(默认),1 - 通过号码,2 - 通过语音
$language - 数据采集的语言(通过语音激活时必须使用) 见表
$userId * - 用户 ID。适用于因激活统计数据差而禁用,转售者的账户不受影响。
* 可选字段
**可用于 $country = 0, $country = 1, $country = 2
$ref - 转移推荐 ID 更多细节
$country - 国家号码 见表
$useCashBack* - 取值为 boolean,如果参数为 "true " 的话,购买号码时会花返现。返现用完后,所有后续购物都将使用余额。请务必记住,所有后续购物将首先使用现金返还,然后才使用主余额(即使以后提供的参数是 "false" 也是如此)。
* 可选的参数,接受 ”true“
可能有错误:
WRONG_MAX_PRICE:$min- 输入的最高价格低于允许的价格
$min - 最低允许价格
BAD_ACTION - 错误的动作
BAD_SERVICE - 不正确的服务名称
BAD_KEY - api 密钥不正确
ERROR_SQL - sql服务的错误
BANNED:'YYYY-m-d H-i-s' - 帐户被封锁的时间
WRONG_EXCEPTION_PHONE - 不正确的排除前缀
NO_BALANCE_FORWARD - 没有足够的资金购买呼叫转移
CHANNELS_LIMIT - 账户被封锁
NO_NUMBERS - 没有数字
如果您尝试获取不在所选国家/地区运营或没有所选服务的特定运营商的号码,则将返回第一个与请求参数匹配的运营商的号码
该方法的工作方式与该方法类似getNumber,接受相同的参数和下文所述的额外参数,但返回额外的关于激活信息
参数:
$orderId- 转售家系统中的激活 ID。购买时,这些数据将与我们系统中的激活 ID 和转售家相匹配。我们希望通过这种方式实现等幂性(同一订单不会再次被处理)。
答案:
如果请求成功,响应将采用以下格式:
{
"activationId": 635468024,
"phoneNumber": "79584******",
"activationCost": "12.50",
"countryCode": "0",
"canGetAnotherSms": "1",
"activationTime": "2022-06-01 17:30:57",
"activationOperator": "mtt"
}
如果您尝试获取不在所选国家/地区运营或没有所选服务的特定运营商的号码,则将返回第一个与请求参数匹配的运营商的号码
可能有错误:
ORDER_ALREADY_EXISTS- 订单已创建
当您收到发送给某个号码的短信时,如果您在设置中启用了 Webhooks 功能,我们将使用 POST 请求将有关短信的信息发送到您指定的地址
答案:
响应格式如下:
{
"activationId": 635468024,
"service": "go",
"text": "Your sms text",
"code": "Your sms code",
"country": 0,
"receivedAt": "2022-06-01 17:30:57",
}
发送请求时,我们将等待您的脚本的响应,HTTP 状态为 200。如果您的脚本没有响应,我们将在 2 小时内发送请求,但最多不超过 8 次。
您可以在个人资料设置中启用此功能
参数:
$api_key - API 密钥
$service - 订购服务 见表
$forward * - 是否有必要通过转发请求号码
* 可选参数,转发字符用逗号分隔,转发位数必须与参数中传输的服务数匹配 $service. 只允许使用重定向传输 1 个服务,例如“0,1,0,0” - 正确,“0,1,1,0” - 不正确。取 0(不执行,默认),1(执行)
$operator * - 号码的移动运营商,您可以指定多个以逗号分隔的号码(仅适用于**):
$ref - 转移推荐 ID 更多细节
$country - 国家号码 见表
答案:
NO_NUMBERS - 没有数字
NO_BALANCE - 余额已结束
{{'phone':phone,'activation':activation,'service':service},
{'phone':phone,'activation':activation,'service':service}}, 在哪里 (phone - id 业务, activation - 电话号码, service - 服务)
可能有错误:
BAD_ACTION - 错误的动作
BAD_SERVICE - 不正确的服务名称
BAD_KEY - api 密钥不正确
ERROR_SQL - sql服务的错误
BANNED:'YYYY-m-d H-i-s' - 帐户被封锁的时间
参数:
$api_key - API 密钥
$id - 激活ID
$forward * - 您要转发到的电话号码
* 您需要呼叫转移的电话号码 (一定,如果getNumber传递了forward = 1参数) forward=1.
$status - 激活状态
1 - 通知号码已可以使用了(向号码发送短信)
3 - 申请其他一个验证码 (免费)
6 - 完成激活 *
8 - 通知号码已被使用并取消激活
* 如果有“收到代码”状态 - 标记它成功并完成,如果有“准备” - 删除并标记错误,如果有状态“等待重试” - 将激活转移到 SMS 挂起
**如果号码已到达,则无法更改选择呼叫验证方法的激活状态
跟 API 工作时间顺序的简单流程:
使用 getNumber 方法获取号码,然后可以进行以下行为:
8 - 取消激活(如果号码不适合你)
1 - 通知短信已发送(没有必要)
要以状态1激活:
8 - 取消激活
收到代码后立即:
3 - 再申请一个短信
6 - 确认短信验证码并完成激活
要以状态3激活:
6 - 确认短信验证码并完成激活
答案:
ACCESS_READY 号码准备状态成功确认
ACCESS_RETRY_GET 期待新短信
ACCESS_ACTIVATION 服务成功激活
ACCESS_CANCEL - 激活取消
可能有错误:
EARLY_CANCEL_DENIED - 最先 2 分钟内无法取消号码
ERROR_SQL - sql服务的错误
NO_ACTIVATION - id 激活没存在
BAD_SERVICE - 不正确的服务名称
BAD_STATUS - 不正确的状态
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
WRONG_ACTIVATION_ID - неверный ID или ID не является числом.
参数:
$api_key - API 密钥
$id - 激活ID
答案:
STATUS_WAIT_CODE - 等待短信
STATUS_WAIT_RETRY“过去的不合适代码”-等待代码完善
STATUS_WAIT_RESEND - 等待重新发送短信 *
* 软件必须按重新发送短信并将状态更改为6
STATUS_CANCEL - 激活取消
STATUS_OK: '激活码' - 收到的代码
可能有错误:
NO_ACTIVATION - id 激活没存在
ERROR_SQL - sql服务的错误
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
参数:
$api_key - API 密钥
$id - 激活ID
答案:
响应格式如下:
{
"verificationType": 2,
"sms": {
"dateTime": "0000-00-00 00:00:00",
"code": "code",
"text": "sms text",
},
"call": {
"from": "phone",
"text": "voice text",
"dateTime": "0000-00-00 00:00:00",
"url": "voice file url",
"parsingCount": 1,
}
}
STATUS_CANCEL - 激活取消
可能有错误:
NO_ACTIVATION - id 激活没存在
ERROR_SQL - sql服务的错误
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
参数:
$api_key - API 密钥
$start - Unix Timestamp 格式的时间戳(没有必要)- 考虑激活的起始日期
$end - Unix Timestamp 格式的时间戳(没有必要)- 考虑激活的结束日期
$offset - 回复中返回的第一个元素的移动。默认值为 0
$limit - 返回记录的最大数量。最多为 100 个。默认为 50 个。
答案:
响应格式如下:
[{
"id": 635468024,
"date": "2022-11-12 15:58:39",
"phone": "79918529716",
"sms": "sms":"["Your sms code"]",
"cost": 100 //Если активация не завершена, то cost = 0,
"status": "4",
}]
可能有错误:
ERROR_SQL - sql服务的错误
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
参数:
$api_key - API 密钥
$service - 服务名称
答案:
响应格式如下:
[{
"country": 0,
"share": 50 - // (按国家分列的所选服务购买量占我们服务总购买量的百分比),
"rate": 50 - //(成功激活占全国激活总数的百分比)
}]
可能有错误:
ERROR_SQL - sql服务的错误
BAD_KEY - api 密钥不正确
WRONG_SERVICE - 服务不正确
BAD_ACTION - 错误的动作
参数:
$api_key - API 密钥
$id - 激活ID
答案:
服务答案有json形式, 比如:
{"status":"2","phone":false}
可能的状态:
2 - 新激活
3 - 成功完成
4 - 已取消
5 - 退还
可能有错误:
BAD_KEY - api 密钥不正确
INVALID_ACTIVATION_ID - 无效的激活ID
答案:
JSON - 对象格式
{"Service":{"Country":{"count":Quantity,"price":"Price"}}}
参数:
$api_key - API 密钥
答案:
JSON - 对象格式 {{'Страна':{'id':0,'rus':"Россия","eng:"Russia","chn":"俄罗斯","visible":1,"retry":1,"rent":1,"multiService":1}},
在哪里 (
id : 国家编号;
rus : 俄文国名;
eng : 英文国名;
chn : 中文国名;
visible : 0 - 网站上不显示国家,1 - 显示;
retry : 0 - 重复短信不可用,1 - 可用;
rent : 0 - 国家未租用,1 - 租用;
multiService 0国家不适用于多种服务,1国家可用
参数:
$api_key- API 密钥
$country *- 国家 ID。如果你提供了国家,我们返回对所选国家有价格的服务
$lang *- 要提供 `name` 的语言。可使用的值:'ru'、'en'、'es'、'cn'。默认为 'en'
* 可选参数
答案:
JSON - 对象格式 { "status": "success", "services": [ { "code": "aoo", "name": "Pegasus Airlines" } ] }
收到第一条有关重定向号码的短信后,您可以购买其他相关服务,例如Yula,Yandex,Avito和其他任何服务
附加服务的费用仅为5p
答案:
ADDITIONAL:$id:$phone - 新激活已成功创建。其中 ID 是新激活的 ID,phone 是电话号码
可能有错误:
WRONG_ADDITIONAL_SERVICE 无效的附加服务(仅允许重定向服务)
WRONG_ACTIVATION_ID - 原来激活 ID 不正确
WRONG_SECURITY - 尝试传输激活 ID 时出现错误,且未重定向,或激活已完成/未激活
REPEAT_ADDITIONAL_SERVICE - 尝试再次订购已购买的服务时出现错误 NO_BALANCE - 资金不足
ERROR_SQL- 数据库错误,联系客服
如果您已成功激活该号码,则可以再次激活。
额外激活的费用取决于国家和服务。具体费用可以从this query中获取。
参数:
$api_key - API 密钥
$activationId - 家长激活码
答案:
ACCESS_NUMBER:$id:$phone - 已成功创建新激活。其中,$id 是新激活的 ID,$phone 是电话号码
可能有错误:
RENEW_ACTIVATION_NOT_AVAILABLE- 该号码不可用于额外激活
WRONG_ACTIVATION_ID - 原来激活 ID 不正确
ERROR_SQL- 数据库错误,联系客服
NEW_ACTIVATION_IMPOSSIBLE- 无法进行额外激活
NO_BALANCE - 账户中没有钱
您可以找到额外激活号码的可用性并获取其费用
参数:
$api_key - API 密钥
$activationId - 家长激活码
答案:
JSON - 对象格式 {'status': 'success', 'cost':200,"service":"tw","phone":777777777,"country":14},
可能有错误:
RENEW_ACTIVATION_NOT_AVAILABLE- 该号码不可用于额外激活
WRONG_ACTIVATION_ID - 原来激活 ID 不正确
SIM_OFFLINE - SIM卡离线
答案:
响应格式如下:
{
"result": "OK"
}
STATUS_CANCEL - 激活取消
NO_CALL- 没有来电
PARSE_COUNT_EXCEED- 解析尝试次数限制(最多为 4 次)
可能有错误:
WRONG_ACTIVATION_ID - ID 不正确,激活不存在
ERROR_SQL - sql服务的错误
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
API密钥
参数:
$api_key - API 密钥
$time* - 租用时间(默认:4小时)
$operator* - 号码的移动运营商,你可以用逗号分隔指定多个运营商(默认:任何)
$country* - 国家(默认:俄罗斯)
$incomingCall * - 如果被提供 "true"获得有可能接受来电的号码
答案:
服务答案有json形式, 比如:
{ "countries": { "0": 0 }, "operators": { "0": "aiva", "1": "any", "2": "beeline", ... "16": "yota" }, "services": { "full": { "cost": 42.93, "quant": 20 }, "vk": { "cost": 21.95, "quant": 20 }, "ok": { "cost": 7.68, "quant": 55 }, "ot": { "cost": 5.2, "quant": 42 } } }
可能有错误:
BAD_KEY - api 密钥不正确
OUT_OF_STOCK - 没有这个国家的号码
参数:
$api_key - API 密钥
$service - 您需要获取号码的服务
$time* - 租赁时间以小时为单位(默认值:4 小时)。下一个可用时间段是 12 小时,然后是 24 小时。当请求租赁一天或以上时,您必须转让:24、48、72 等。
$operator* - 号码的移动运营商,你可以用逗号分隔指定多个运营商(默认:任何)
$country* - 国家(默认:俄罗斯)
$url * - 用于 webhook 的链接 (默认不考虑)
$incomingCall * - 如果被提供 "true"获得有可能接受来电的号码
* 可选参数。如果未指定,将使用默认参数。
答案:
服务答案有json形式, 比如:
{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564" } }
可能有错误:
BAD_KEY - api 密钥不正确
以json格式回答:
{ "status": "error", "message": "*possible_answer*" }
现场可能的答案 "message":
BAD_SERVICE - 未指定服务或名称不正确
NO_BALANCE - 账户中没有钱
NO_NUMBERS - 没有号码
ACCOUNT_INACTIVE - 没有号码
SERVER_ERROR - 服务器错误
CHANNELS_LIMIT - 账户被封锁
参数:
$api_key - API 密钥
$id - 订购号码时收到的回复中的租用 ID
$page* - 选择开始的页码(页码从0开始,从新到旧;默认为0)
$size* - 页面大小(默认10)
* 可选参数。如果未指定,将使用默认参数。
答案:
服务答案有json形式, 比如:
{ "status": "success", "quantity": "2", "values": { "0": { "phoneFrom": "79180230628", "text": "5", "service": "ot", "date": "2020-01-30 14:31:58" }, "1": { "phoneFrom": "79180230628", "text": "4", "service": "ot", "date": "2020-01-30 14:04:16" } } }
* 仅在有短信时成功(字段 “quantity”> 0)。
可能有错误:
BAD_KEY - api 密钥不正确
以json格式回答:
{ "status": "error", "message": "*possible_answer*" } 现场可能的答案 "message": NO_ID_RENT - 租用 ID 未提供 INVALID_PHONE - 该号码不是由你租用的 (租用 ID 不正确) STATUS_FINISH - 租金已付并已完成 STATUS_CANCEL - 租金取消并退款 STATUS_WAIT_CODE - 等待第一条短信 STATUS_REVOKE - 号码已被封锁,您的资金已被退回
参数:
$api_key - API 密钥
$id - 订购号码时收到的回复中的租用 ID
$status 更改状态的代码(数字)
状态取值包括:
答案:
服务的响应将为json格式:
{ "status": "success" }
可能有错误:
BAD_KEY - api 密钥不正确
以json格式回答:
{ "status": "error", "message": "*possible_answer*" }
现场可能的答案 "message":
NO_ID_RENT - 租用 ID 未提供
INCORECT_STATUS 状态缺失或不正确
CANT_CANCEL 无法取消租借(超过20分钟)
INVALID_PHONE - 该号码不是由你租用的 (租用 ID 不正确)
ALREADY_FINISH 租用已完成
ALREADY_CANCEL - 租约已经取消
SERVER_ERROR - 服务器错误
👉请注意! 该方法只显示最后 10 个号码。如果你需要更多,请使用 getRentStatus 该方法来检查状态。
参数:
$api_key - API 密钥
答案:
服务的响应将为json格式:
{ "status": "success", "values": { "0": { "id": "12345", "phone": "79181234567" }, "1": { "id": "12345", "phone": "79181234568" } } }
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
以json格式回答:
{ "status": "error", "message": "*possible_answer*" }
现场可能的答案 "message":
NO_NUMBERS 没有出租号码
SERVER_ERROR - 服务器错误
参数:
$api_key - API 密钥
$id - id 租用
$rent_time- 租用期间 (默认:4个小时)
答案:
服务的响应将为json格式:
{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564"} }
当一个已完成的租用被延长时,租用就被重新预订,我们把一个新的ID给用户
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
SERVER_ERROR - 服务器错误
以json格式回答:
{ "status": "error", "message": "*possible_answer*", "info": "*details*" }
现场可能的答案 "message":
NO_ID_RENT - 没有租用 ID
INVALID_TIME - 不合时机。可用小时数从 4 到 1344
MAX_HOURS_EXCEED - 最大可用的时间被超过
max - 最大可用时间
INVALID_PHONE - 租用 ID 不正确
RENT_DIE - 由于数量已过期,因此无法延长租约
NO_BALANCE 不充足的资金
CHANNELS_LIMIT - 账户被封锁
此方法仅适用于MTT运营商出租。
参数:
$api_key - API 密钥
$id - id 租用
$rent_time - 租用时间
答案:
服务的响应将为json格式:
{ "status": "success", "price": 6.33 }
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
SERVER_ERROR - 服务器错误
以json格式回答:
{ "status": "error", "message": "*possible_answer*" }
现场可能的答案 "message":
NO_ID_RENT - 没有租用 ID
INVALID_PHONE - 租用 ID 不正确
INVALID_TIME - 错误设置时间
RENT_DIE - 由于数量已过期,因此无法延长租约
MAX_HOURS_EXCEED - 最大可用的时间被超过
max - 最大可用时间
CHANNELS_LIMIT - 账户被封锁
API JAVA
将库包含在Maven中
<artifactId>SMSActivateApi</artifactId>
<version>1.0</version>
</dependecy>
您可以通过以下方式查看注册示例 ссылке на MavenRepository
导入主类以与SMS-Activate API进行交互。
要使用该库,您需要一个 API 密钥,您可以在此页面和下面的链接中获取它。
SMS-Activate API-Key要获取您帐户的当前余额,请使用该方法 getBalance...如果除了余额还对返现感兴趣,那么调用方法 getBalanceAndCashBack.
方法 getBalanceAndCashBack 返回一个类对象SMSActivateGetBalanceAndCashBack.
参数:
没有任何
返回类型:
BigDecimal
参数:
没有任何
参数:
countryId(Integer) - 国家标识符
service(String) - 服务的简称
forward*(boolean) -是否要申请有呼叫转移的号码
operatorSet*(Set) - 套运营商
phoneException*(Set) - 不包括仅适用于俄罗斯的字冠,一套从 3 到 6 的数字(7918,7900111)
* 可选字段。如果未指定,将根据配置文件中的设置给出默认数量。
返回类型:
参数:
countryId(Integer) - 国家标识符
operatorSet*(Set) - 服务可用的运营商套
参数:
id(Integer) - 激活标识符
service(String) - 服务的简称
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
参数:
countryId(Integer) - 国家标识符
serviceMap(Set) - 购买激活的服务套
multiForwardList(List) - 提供转移功能的服务列表
operatorSet(Set) - 套运营商
参数:
没有任何
返回类型:
参数:
countryId(Integer) - 国家标识符
service(String) - 服务的简称
返回类型:
参数:
countryId(Integer) - 国家标识符
返回类型:
参数:
activationId(Integer) - 激活标识符
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
参数:
id(Integer) - 激活标识符
status(SMSActivateClientStatus) - 为激活要设置的状态
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
参数:
没有任何
参数:
activationId(Integer) - 激活标识符
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
通过激活接收短信全文的算法
使用 getNumber 方法获取号码,然后可以进行以下行为:
CANCEL - 取消激活(如果号码不适合您)
MESSAGE_WAS_SENT - 通知短信已发送(必须接收短信全文)
强制设置MESSAGE_WAS_SENT状态后,使用带有激活参数和等待SMS的时间的waitSMS方法,将变量设置为接收SMS。
收到SMS后,您可以使用getFullSMS方法获取它,然后使用getText()方法显示全文 getText()
之后,您可以将激活设置为以下状态:
要以状态1激活 MESSAGE_WAS_SENT:
CANCEL - 取消激活
收到代码后立即:
REQUEST_ONE_MORE_CODE - 请求另一条短信
FINISH - 确认短信代码并完成激活
要以状态1激活 REQUEST_ONE_MORE_CODE:
FINISH - 确认短信代码并完成激活
参数:
countryId(Integer) - 国家标识符
service(String) - 服务的简称
hours(Integer)* - 租用期间
operator(String)* - 移动运营商名称
urlWebhook(String)* - webhook的链接(默认情况下不考虑)
什么是webHook?可选参数。如果未指定,则默认值为
参数:
countryId(Integer) - 国家标识符
operatorSet(Set) - 移动运营商套
hours(Integer)* - 租用期间
可选参数。如果未指定,则默认值为
返回类型:
邮箱 API
API状态说明
3 - 等待
4 - 取消
5 - 成功
描述:
更严格遵守 REST API 的原则,并增加用于注册 Telegram 帐户的 gmail.com 邮箱数量。
参数:
$api_key - API 密钥
$site- 需要邮箱的网站
答案:
服务答案有json形式, 比如:
{ "status":"OK", "response":{ "zones":[ { "name":"info", "cost":2.5 }, ... ], "popular":[ { "name":"mail.ru", "cost":6, "count":159008 }, ... ] } }
可能有错误:
BAD_SITE- 未指定网站
BAD_KEY - api 密钥不正确
BAD_ACTION - 不正确的动作
参数:
$api_key - API 密钥
$site - 需要邮箱的网站
$mail_type - 邮箱类型:热门域名或区域(1 - 区域 2 - 热门)
$mail_domain - 所选的区域或域名
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 不正确的动作
MAIL_TYPE_ERROR - 指定的网站没有此类域名
CHANNELS_LIMIT - 账户被封锁
参数:
$api_key - API 密钥
$id- 需要重新激活的邮箱 ID
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 不正确的动作
BLOCKED_SITE - 阻止的网站
BAD_BALANCE - 资金不足
ACTIVATION_NOT_FOUND - 没有找到该激活
CHANNELS_LIMIT - 账户被封锁
参数:
$api_key - API 密钥
$page- 页面号
$per_page- 每页的购买数量
$search- 搜索行
$sort- 排序方向。(desc, asc)
答案:
服务答案有json形式, 比如:
{ "status":"OK", "response":{ "list":[ { "id":"241", "site":"apple.com", "email":"[email protected]", "status":"3", "value":null, "cost":"6.00", "date":"2023-10-06 14:24:13", "full_message":"" } ], "pages":1, "count":1 } }
参数:
$api_key - API 密钥
$id- 购物 ID
答案:
服务答案有json形式, 比如:
{ "status":"OK", "response":true }
可能有错误:
EARLY_CANCEL_DENIED - 前 2 分钟内您无法取消邮件。
参数:
$api_key - API 密钥
$id- 购买邮件的ID,购买邮件后会退回
答案:
服务答案有json形式, 比如:
{ "status":"OK", "response":{ "value":"Содержания письма" } }
API 合作伙伴软件
参数:
$api_key - API 密钥
$id- 需要购买软件的 ID
答案:
服务答案有json形式, 比如:
{ "status": "success", "key": "F5qrzFoY6afj3zrEq7SeMplbx", "manual": "下载软件的链接:" }
可能有错误:
BAD_DATA - ID 不正确或 ID 不是数字
BAD_ACTION - 无效 action 或未验证经销商。
<?php
include_once ("smsactivateApi.php");//在项目中包含课程
$sms = new SMSActivate($API_KEY);//创建类实例 SMSActivate
$freeSlots = $sms->getNumbersStatus(0, 'tele2');//获取俄罗斯和Tele2运营商所在国家的可用号码数量
echo "Номеров Вконтакте: " . $freeSlots['vk']."\n";//显示Vk
echo "Номеров Whatsapp: " . $freeSlots['wa']."\n";//显示whatsapp
var_dump($freeSlots); //显示所有服务的数量
$array=$activate->getTopCountriesByService(); //获取一个数组,其元素包含每个国家的信息
$balance = $sms->getBalance();//取得平衡
echo "在帐户上 " . $balance." 卢布.\n";//显示余额
$balance = $sms->getBalanceAndCashBack();//获得现金返还余额
echo "在帐户上 " . $balance." 卢布.\n";//显示现金返还余额
$operators = $sms->getOperators();
//获取所有国家/地区的运营商
if (in_array('mts', $operators['countryOperators'][0])) {
//检查“mts”是否适用于俄罗斯
//执行操作
}
if (in_array('chinamobile', $operators['countryOperators'][3])) {
//检查“中国移动”是否适用于中国
//执行操作
}
$activations = $sms->getActiveActivations();
$number = $sms->getNumber('ok',0, 0, 'tele2');//不转发即可获取Odnoklassniki号码
echo "激活 № " . $number['id']. "电话 ". $number['number'] \n";//显示ID和激活号
$result = $sms->getNumber('vk', 0 , 1);
if (!is_array($result)) {
echo 'Ошибка: ' . $result . '\n';//如果发生错误,将返回一个字符串,如果成功,将返回一个数组。
} else {
echo 'Id: ' . $result['id'] ."\n";
echo 'Номер: ' . $result['number'] ."\n";
}
$result = $sms->getNumberV2('vk', 0 , 1);
$number = $sms->getMultiServiceNumber('ok,vk,vi,av','0,0,0,1', 0, 'tele2');//获取电话号码,包括Odnoklassniki,Vkontakte,Viber(无电话转接)和Avito(有电话转接)
foreach ($number as $value) {
echo "激活 № " . $value['activation']. " 服务 ". $value['service'] ."\n";
}
echo "数字 " . $value['phone'] ."\n";//显示激活ID和编号
$status = $sms->setStatus($number['id'], 3);//通过ID更改激活状态(获取1个以上的代码)
$status = $sms->getStatus($number['id']);//通过ID获取激活状态
if (is_array($status) {
echo "статус : " . $status['status'];//可以是 STATUS_OK 或 STATUS_WAIT_RETRY,否则会返回一行错误文本
echo "код: " . $status['code'];
} else {
echo $status ."\n";
}
$incomingCall = $sms->getIncomingCallStatus($id);//通过调用获取激活数据
echo $incomingCall['phone'] //显示传入号码
$prices = $sms->getPrices(1, 'vk');//获取服务的当前价格
echo "VK(乌克兰)的价格 : " .$prices[1]['vk']['cost']." 擦数量: ". $prices[1]['vk']['count'];//显示结果
$countries = $sms->getCountries();//获取所有国家的清单
$additional = $sms->getAdditionalService('fx', $id);//根据 id 激活获得 PGbonus 服务的额外激活
echo "激活号: " . $additional[id] . " 电话: " . $additional[number];//显示结果
$getAvailableRentNumbers = $sms->getRentServicesAndCountries('2');//索取可用国家的租金和服务费(所有运营商2小时)
echo "全额租金-费用:" . $getAvailableRentNumbers['services']['full']['cost'] . " 数量 :" .$getAvailableRentNumbers['services']['full']['quant'] ." \n"; //显示完整的价格信息
foreach( $getAvailableRentNumbers['operators'] as $value) {
echo " 任何运营商 " . $value ."\n"; }//清单运算子
$getRentNumber = $sms->getRentNumber('vk','10','0','yota');//获取 Vkontakte 10 小时租金,运营商“Yota”,国家 - 俄罗斯
if ($getRentNumber['status'] === 'success'){
echo "出租成功!您的电话号码: " . $getRentNumber['phone']['number']." \n租赁结束日期 : ". $getRentNumber['phone']['endDate']." \n编号 :" .$getRentNumber['phone']['id'] ; }//显示租金信息
else
echo "错误码 : " . $getRentNumber['message'];
$getRentStatus = $sms->getRentStatus($getRentNumber['phone']['id']);//从收到的号码中获取具有ID的租赁状态
if ($getRentStatus['status'] == 'success'){
foreach( $getRentStatus['values']as $index => $value) {
echo " 发送短信 " . $index .": 从号码里 - " . $value['phoneFrom'] . " 服务 - " . $value ['service'] . "讯息文字 - " . $value['text'] . "日期 - " . $value['date']; } }//显示租号码时收到的消息列表
else
echo "错误码 : " . $getRentStatus['message'];
$setRentStatus = $sms->setRentStatus($getRentNumber['phone']['id'],1);//从接收到的号码中设置带有ID的租赁状态为“完成”
if ($setRentStatus['status'] == 'success')
echo " 状态更改成功! ";
else
echo "错误码 : " . $setRentStatus['message'];
$getRentList = $sms->getRentList();//获取当前出租用号码间的列表
if (getRentList['status'] == 'success')
foreach( $getRentList['values'] as $value) {
echo " ID " . $value["id"] . " 数字 " . $value["phone"] ."\n"; }//列出号码
else
echo "错误码 : " . $getRentList['message'];
$result = $sms->continueRentNumber($id);//延长激活id的租期4小时(默认)
if ($result['status'] == 'success') {
echo "数字: " . $result['phone']['number']"//显示编号
echo "id: " . $result['phone']['id']"//显示激活 ID
echo "租约有效期至: " . $result['phone']['endDate']"//显示租约结束的日期和时间
} else {
echo "错误码 : " . $result['msg'];
}
$result = $sms->getContinueRentPriceNumber($id, 12);//获取更新租约激活id 12小时的费用
if ($result['status'] == 'success') {
echo " 续约费用 " . $result['price'];//提取费用
} else {
echo "错误码: " . $result['message']; //显示错误代码
}
from smsactivate.api import SMSActivateAPI
# SMSActivateAPI 包含使用 SMSActivate API 的所有基本工具
sa = SMSActivateAPI(API_KEY)
sa.debug_mode = True
# 用于调试。当 debug_mode 处于活动状态时,来自服务器和类的所有响应都将输出到控制台
print(sa.version())
# 返回库的当前版本
status = sa.getNumbersStatus(country=0, operator='tele2')
try:
print(status['vk_0']) # 274789
except:
print(status['message']) # 错误文本
result = sa.getTopCountriesByService('vk')
try:
print(result[0]['count']) # 2350
except:
print(result['message']) # 错误文本
balance = sa.getBalance() # {'balance': '100.00'}
try:
print(balance['balance']) # 100.00
except:
print(balance['message']) # 错误文本
balance = sa.getBalanceAndCashBack() # {'balance': '100.00'}
try:
print(balance['balance']) # 100.00
except:
print(balance['message']) # 错误文本
operators = sa.getOperators(country=0)
try:
print(operators['countryOperators']['0'])
except:
print(operators['error']) # 错误状态
activations = sa.getActiveActivations()
try:
print(activations['activeActivations'])
except:
print(activations['error']) # 错误状态
number = sa.getNumber(service='vk', operator='tele2', country=0, verification="true") # {'activation_id': 000000000, 'phone': 79999999999}
try:
print(number['phone']) # 79999999999
except:
print(number['message']) # 错误文本
number = sa.getNumberV2(service='vk', country=0)
try:
print(number['phoneNumber']) # 79999999999
except:
print(number['message']) # 错误文本
multinumber = sa.getMultiServiceNumber(service='fb,ig', operator='tele2', country=0) # [{'phone': '79999999999', 'activation': 000000000, 'service': 'fb'}, {'phone': '79999999999', 'activation': 000000001, 'service': 'ig'}]
try:
print(multinumber[0]['phone']) # 79999999999
except:
print(multinumber['message']) # 错误文本
status = sa.setStatus(id=000000000, status=1) # ACCESS_READY
try:
print(status) # ACCESS_READY
except:
print(status['message']) # 错误文本
status = sa.getStatus(id=000000000) # STATUS_WAIT_CODE
try:
print(sa.activationStatus(status)) # {'status': 'STATUS_WAIT_CODE', 'message': 'Ожидание смс'}
except:
print(status['message']) # 错误文本
status = sa.getIncomingCallStatus(id=000000000)
try:
print(status['status']) # 2
except:
print(status['message']) # 错误文本
prices = sa.getPrices(service='fb', country=0)
try:
print(prices['0']) # {'fb': {'cost': 9, 'count': 27934}}
except:
print(prices['message']) # 错误文本
countries = sa.getCountries()
try:
print(countries['0']['eng']) # Russia
except:
print(countries['message']) # 错误文本
service = sa.getAdditionalService(id=000000000, service='ig')
try:
print(service['phone']) # 79999999999
except:
print(service['message']) # 错误文本
service = sa.getRentServicesAndCountries(time=4, operator='tele2', country=0)
try:
print(service['services']['full']['cost']) # 100.00
except:
print(service['message']) # 错误文本
rent = sa.getRentNumber(service='ig', time=4, operator='tele2', country=0)
try:
print(rent['phone']['number']) # 79999999999
except:
print(rent['message']) # 错误文本
status = sa.getRentStatus(000000000)
try:
print(status['values']['0']['text']) # SMS
except:
print(status['message']) # 错误文本
status = sa.setRentStatus(id=000000000, status=1)
try:
print(status['status']) # success
except:
print(status['message']) # 错误文本
rent = sa.getRentList()
try:
print(rent['values']['0']['phone']) # 79999999999
except:
print(rent['message']) # 错误文本
rent = sa.continueRentNumber(id=000000000, time=4)
try:
print(rent['phone']['number']) # 79999999999
except:
print(rent['message']) # 错误文本
rent = sa.getContinueRentPriceNumber(000000000)
try:
print(status['price']) # 4.00
except:
print(status['message']) # 错误文本
import ru.sms_activate.SMSActivateApi;//在项目中包含课程
SMSActivateApi smsActivateApi = new SMSActivate("API_KEY");//创建类实例
BigDecimal balance = smsActivateApi.getBalance();//获取当前帐户余额
System.out.println("Balance: "+ balance)//提取收到的余额
SMSActivateGetBalanceAndCashbackResponse smsActivateGetBalanceAndCashbackResponse = smsActivateApi.getBalanceAndCashback();//获取当前余额和现金返还
System.out.println("Cashback + balance: "+ smsActivateGetBalanceAndCashbackResponse.getBalanceAndCashback());//提取余额和现金返还
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//在俄罗斯获得Vkontakte服务的激活
System.out.println(activation);//取消激活
SMSActivateGetNumbersStatusResponse smsActivateGetNumbersStatusResponse= smsActivateApi.getNumberStatus(0,null);//获取有关俄罗斯可用服务的信息
SMSActivateServiceInfo go = smsActivateGetNumbersStatusResponse.getSMSActivateServiceInfoByShortName("go");//获取有关Google服务号码的信息
System.out.println("Short name service: " + go.getShortName();//返回服务的简称
System.out.println("count phone numbers: "+ go.getCountPhoneNumber();//获取服务号码
System.out.println(""Forwarding is available: "+ go.isForward() ? "yes" : "no"//找出服务是否具有重定向
SMSActivateActivation activation=smsActivateApi.getNumbersStatus(0,"ot",true);//激活
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//发送短信以获取号码后,设置MESSAGE_WAS_SENT状态
SMSActivateActivation childActivation =smsActivateApi.getAdditionalService(activation,"av");//请求新激活以激活其他服务
System.out.println(childActivation);//显示有关其他激活的信息
Set<String>operatorSet= new HashSet<>();
operatorSet.add("mts");//将MTS运算符添加到运算符集中
Map<String,Boolean>serviceMap= new HashMap<>();
serviceMap.put("av",false);//将Avito服务添加到服务列表中(如果需要重定向服务,请指定true)
SMSActivateGetMultiServiceNumberResponse multiServiceNumberResponse=smsActivateApi.getMultiServiceNumber(0, serviceMap, operatorSet);//获得多种服务的激活
multiServiceNumberResponse.getSMSActivateActivationList().forEach(activation->{
System.out.println("Id: " + activation.getId());
System.out.println("Number: " + activation.getNumber());
System.out.println("Service name: " + activation.getShortName());
}
//显示有关收到的激活的信息
SMSActivateGetPricesResponse smsActivateGetPricesResponse=smsActivateApi.getPricesByCountryIdAndServiceShortName(0, "vk");//在Vkontakte服务上获取俄罗斯的价格清单。要获取价格的完整列表,请使用getAllPrices()方法;
SMSActivateGetPriceInfo vk=smsActivateGetPricesResponse.getPriceInfo(0, "vk");//获取有关俄罗斯Vkontakte服务的信息
System.out.println(">>> Cost: "+ vk.getCost());//获得服务价格
System.out.println(">>> count phone numbers: " + vk.getCountPhoneNumbers());//获取服务号码
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//在俄罗斯获得Vkontakte服务的激活
System.out.println(activation);//取消激活
SMSActivateGetStatusResponse getResponse = smsActivateApi.getStatus(activation);//获取激活状态
System.out.println(getResponse.getSMSActivateGetStatus());//显示有关激活状态的信息
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//收到短信的号码后,设置MESSAGE_WAS_SENT状态
smsActivateApi.setStatus(activation, SMSActivateClientStatus.FINISH);//收到该号码的短信后,设置完成状态
SMSActivateGetCountriesResponse smsActivateGetCountriesResponse =smsActivateApi.getCountries();//获取具有信息的国家/地区列表
SMSActivateCountryInfo countryInfo = smsActivateGetCountriesResponse.get(0)//获取有关列表中第一个国家的信息
System.out.println("Russian name: "+countryInfo.getRussianName();//显示国家/地区的俄语名称
System.out.println("English name: "+countryInfo.getEnglishName();//显示国家/地区的俄语名称
System.out.println("Support multi-service: "+ countryInfo.isSupportMultiService() ? "yes" : "no"//显示国家是否支持多种服务
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//在俄罗斯获得Vkontakte服务的激活
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//发送短信以获取号码后,设置MESSAGE_WAS_SENT状态
String code=smsActivateApi.waitSms(activation,2)//在2分钟内设置接收短信
if(code == null) {
smsActivateApi.setStatus(activation, SMSActivateClientStatus.CANCEL);//如果短信尚未到达,则设置取消状态
}
else{
SMSActivateGetFullSmsResponse smsActivateGetFullSmsResponse=smsActivateApi.getFullSms(activation)//接收短信
System.out.println("Full SMS: "+smsActivateGetFullSmsResponse.getText());//短信输出
}
SMSActivateRentActivation rentActivation= smsActivateApi.getRentNumber(0, "vk", 6);//获得有租用功能的号码
System.out.println(">> ID: "+rentActivation.getId());//激活ID不正确
System.out.println(">> Number: "+rentActivation.getId());//换成现金的申请被驳回
System.out.println(">> End date: "+rentActivation.getId());//显示激活到期日期
SMSActivateGetRentServicesAndCountriesResponse smsActivateGetRentServicesAndCountriesResponse= smsActivateApi.getRentServicesAndCountries(0, null, 4);//获取有关支持租金的服务和国家/地区的信息
smsActivateGetRentServicesAndCountriesResponse.getAllRentServices().forEach((serviceShortName, smsActivateRentService)->{
System.out.println("Service shortname: " + serviceShortName);
System.out.println(" count phone numbers: " + smsActivateRentService.getCountPhoneNumbers());
System.out.println(">> Cost: " + smsActivateRentService.getCost());
}
//显示有关已接收服务的信息
SMSActivateRentActivation rentActivation= smsActivateApi.getRentNumber(0, "vk");//获得有租用功能的号码
SMSActivateGetRentStatusResponse smsActivateGetRentStatusResponse= smsActivateApi.getRentStatus(rentActivation);//获取激活状态
System.out.println(">> Count sms: "+ smsActivateGetRentStatusResponse.getCountSms());//在租用号码上显示短信数