使用SMS-Activate的API协议
API 是 你软件与我们激活服务器之间的交互协议.
API是为实现你接受短信过程的自动化
我们的API和竞争对手的网站是完全相容的
所有请求都应转到 https://api.sms-activate.org/stubs/handler_api.php
POST和GET请求.
所有的询问需要"api_key"形式的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 * - 号码的移动运营商,您可以指定多个以逗号分隔的号码(仅适用于**):
$verification * - 如果传输 "true"获得有可能接受来电的号码
* 可选字段
**可用于 $country = 0, $country = 1, $country = 2
$ref - 转移推荐 ID 更多细节
$country - 国家号码 见表
可能有错误:
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 - 没有足够的资金购买呼叫转移
该方法的工作方式与该方法类似getNumber采用相同的参数,但返回其他激活信息
答案:
如果请求成功,响应将采用以下格式:
{
"activationId": 635468024,
"phoneNumber": "79584******",
"activationCost": "12.50",
"countryCode": "0",
"canGetAnotherSms": "1",
"activationTime": "2022-06-01 17:30:57",
"activationOperator": "mtt"
}
当您收到发送给某个号码的短信时,如果您在设置中启用了 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 - 错误的动作
参数:
$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 密钥
$start - Unix 时间戳格式的时间戳(可选)- 从哪个日期开始激活
$end - Unix 时间戳格式的时间戳(可选)- 激活的日期
答案:
响应格式如下:
[{
"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国家可用
收到第一条有关重定向号码的短信后,您可以购买其他相关服务,例如Yula,Yandex,Avito和其他任何服务
附加服务的费用仅为5p
答案:
ADDITIONAL:$id:$phone - 成功创建了新的激活。其中,ID-附加激活ID,电话-电话号码
可能有错误:
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
您可以从收到的号码订购拨出电话以进行激活。
参数:
$api_key - API 密钥
$activationId - 激活ID
$phone - 要拨打的号码
答案:
JSON - 对象格式 {'status': 'success', 'msg':'呼叫请求创建成功.'},
可能有错误:
CALL_TASK_ALREADY_EXIST - 已创建呼叫请求。
WRONG_ACTIVATION_ID - 无效的激活ID
NUMBER_NOT_EXIST - 您尝试拨打的号码不存在
订购拨出电话后,您可以检查应用程序的状态。默认情况下,返回当天的请求。
参数:
$api_key - API 密钥
$activationId - 激活ID,可选参数,如果不传递,将返回所有请求的列表
$date - 格式为 'YYYY-MM-DD' 的日期,可选参数,如果未传递 - 将返回当前日期的列表
答案:
JSON - 对象格式 {"958874106":{"date":"2022-07-29 16:03:23","phoneFrom":"79912556393","status":"IN_PROCESS"}},
API密钥
参数:
$api_key - API 密钥
$time* - 租用时间(默认为 4 个小时)
$operator * - 号码的移动运营商,您可以指定多个以逗号分隔的号码(默认:Any)
$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 密钥不正确
参数:
$api_key - API 密钥
$service - 您需要获取号码的服务
$time * - 以小时为单位的租赁时间(默认情况下:4 小时)。下一个可用时间段是 12 小时,然后是 24 小时。申请一天或更长时间的租金时,您必须发送:24、48、72 等。
$operator * - 号码的移动运营商,您可以指定多个以逗号分隔的号码(默认:Any)
$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 - 没有号码
SQL_ERROR - sql服务的错误
参数:
$api_key - API 密钥
$id - 订购号码时在响应中收到的租金ID
答案:
服务答案有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" } } }
* 仅当存在SMS时成功(字段“数量”> 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 - 等待第一条短信
参数:
$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 - 租约已经取消
SQL_ERROR - sql服务的错误
参数:
$api_key - API 密钥
答案:
服务的响应将为json格式:
{ "status": "success", "values": { "0": { "id": "123456", "phone": "79181234567" }, "1": { "id": "123457", "phone": "79181234568" } } }
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
以json格式回答:
{ "status": "error", "message": "*possible_answer*" }
现场可能的答案 "message":
NO_NUMBERS 没有出租号码
SQL_ERROR - sql服务的错误
参数:
$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 - 错误的动作
以json格式回答:
{ "status": "error", "message": "*possible_answer*", "info": "*details*" }
现场可能的答案 "message":
NO_ID_RENT - 没有租金编号
INVALID_TIME - 不合时机。可用小时数从 4 到 1344
MAX_HOURS_EXCEED - 最大可用的时间被超过
max - 最大可用时间
INVALID_PHONE - 无效的租赁编号
RENT_DIE - 由于数量已过期,因此无法延长租约
SERVER_ERROR - 服务器错误
NO_BALANCE 不充足的资金
此方法仅适用于MTT运营商出租。
参数:
$api_key - API 密钥
$id - id 租
$rent_time - 租用时间
答案:
服务的响应将为json格式:
{ "status": "success", "price": 6.33 }
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 错误的动作
以json格式回答:
{ "status": "error", "message": "*possible_answer*" }
现场可能的答案 "message":
NO_ID_RENT - 没有租金编号
INVALID_PHONE - 无效的租赁编号
INVALID_TIME - 错误设置时间
RENT_DIE - 由于数量已过期,因此无法延长租约
MAX_HOURS_EXCEED - 最大可用的时间被超过
max - 最大可用时间
SERVER_ERROR - 服务器错误
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) - 服务中可用的运算符集
参数:
countryId(Integer) - 激活ID。
service(String) - 服务简称。
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
参数:
countryId(Integer) - 国家/地区标识符。
serviceMap(Set) - 为其购买激活的一组服务。
multiForwardList(List) - 具有转发服务的列表
operatorSet(Set) - 一组运算符。
参数:
没有任何
返回类型:
参数:
countryId(Integer) - 国家/地区标识符。
service(String) - 服务简称。
返回类型:
参数:
countryId(Integer) - 国家/地区标识符。
返回类型:
参数:
countryId(Integer) - 激活ID。
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
参数:
countryId(Integer) - 激活ID。
status(SMSActivateClientStatus) - 设置激活的状态
您可以传递接收到的类对象,而不是激活标识符 SMSActivateActivation 使用该方法后 getNumber 或使用后的激活之一 getMultiServiceNumber.
参数:
没有任何
参数:
没有任何
参数:
countryId(Integer) - 激活ID。
您可以传递接收到的类对象,而不是激活标识符 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)* - 出租时间.
可选参数。如果未指定,则默认值为
参数:
rentId(Integer) - 分配的电话号码的标识符。
您可以传递生成的类对象,而不是rentId SMSActivateRentActivation
使用该方法后 getRentNumber
返回类型:
邮箱 API
参数:
$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 - zones 2 - popular)
$mail_domain- 所选的区域或域名
可能有错误:
BAD_KEY - api 密钥不正确
BAD_ACTION - 不正确的动作
MAIL_TYPE_ERROR - 为指定的网站没有该域名
参数:
$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 }
参数:
$api_key - API 密钥
$id- 购买邮件的ID,购买邮件后会退回
答案:
服务答案有json形式, 比如:
{ "status":"OK", "response":{ "value":"Содержания письма" } }
<?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];//显示结果
$sms->createTaskForCall(958874106, 78006007664);//通过激活号 958874106 创建呼出请求,拨打号码 78006007664
$sms->getOutgoingCalls('2022-07-27');//查看 2022 年 7 月 27 日创建的通话请求
$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"//显示国家是否支持多种服务
SMSActivateGetQiwiRequisitesResponse smsActivateGetQiwiRequisitesResponse=smsActivateApi.getQiwiRequisites();//获取有关Qiwi的信息
System.out.println("Comment: "+smsActivateGetQiwiRequisitesResponse.getComment()//显示对细节的评论
System.out.println("Wallet: "+smsActivateGetQiwiRequisitesResponse.getWallet());//数字钱包
System.out.println("Up to date: "+smsActivateGetQiwiRequisitesResponse.getUpToDate());//补货日期显示
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());//在租用号码上显示短信数