weijiajia / saloonphp-sms-activate
基于 SaloonPHP 构建的 SMS-Activate.io API 客户端扩展包,支持虚拟手机号码获取和短信验证码接收服务
dev-main
2025-05-28 14:03 UTC
Requires
- php: ^8.1
- illuminate/collections: ^10.0|^11.0|^12.0
- saloonphp/saloon: ^3.0
- weijiajia/saloonphp-logs-plugin: dev-main
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.75
- pestphp/pest: ^3.8
- pestphp/pest-plugin-arch: ^3.0
- symfony/var-dumper: ^7.2
This package is auto-updated.
Last update: 2025-05-28 14:08:49 UTC
README
基于 SaloonPHP 构建的 SMS-Activate.io API 客户端扩展包。SMS-Activate.io 是一个提供虚拟电话号码服务的平台,用于接收短信验证码。
特性
- 🚀 现代 PHP 8.1+ 语法支持
- 🔒 强类型安全,使用枚举类型
- 📱 完整的 SMS-Activate.io API 支持
- 🎯 智能 IDE 自动补全
- 🔄 支持 V1 和 V2 API
- 🌐 多语言和多国家支持
- 💰 价格查询和余额管理
- 🛡️ 错误处理和异常管理
安装
使用 Composer 安装:
composer require weijiajia/saloonphp-sms-activate
快速开始
基本用法
<?php use Weijiajia\SmsActivate\SmsActivateConnector; use Weijiajia\SmsActivate\Enums\Country; use Weijiajia\SmsActivate\Enums\Service; use Weijiajia\SmsActivate\Enums\Operator; // 创建连接器实例 $connector = new SmsActivateConnector('您的API密钥'); // 获取资源实例 $resource = $connector->resource(); // 获取用户余额 $balance = $resource->getBalance(); echo "余额: {$balance->balance} RUB" . PHP_EOL; // 购买号码 $phoneNumber = $resource->getNumber( service: Service::TELEGRAM, country: Country::RUSSIA ); echo "获得号码: {$phoneNumber->phone}" . PHP_EOL; echo "激活ID: {$phoneNumber->id}" . PHP_EOL; // 等待短信 sleep(30); // 获取短信验证码 $sms = $resource->getSms($phoneNumber->id); if ($sms->code) { echo "验证码: {$sms->code}" . PHP_EOL; // 完成激活 $resource->finishActivation($phoneNumber->id); echo "激活完成!" . PHP_EOL; } else { echo "暂未收到短信" . PHP_EOL; }
查询服务和价格
// 获取支持的国家列表 $countries = $resource->getCountries(); foreach ($countries->countries as $country) { echo "国家: {$country->name} (ID: {$country->id})" . PHP_EOL; } // 获取支持的服务列表 $services = $resource->getServices(); foreach ($services->services as $service) { echo "服务: {$service->name} (ID: {$service->id})" . PHP_EOL; } // 获取价格列表 $prices = $resource->getPrices(); foreach ($prices->prices as $countryId => $countryPrices) { echo "国家 {$countryId} 的价格:" . PHP_EOL; foreach ($countryPrices->services as $serviceId => $price) { echo " 服务 {$serviceId}: {$price->cost} RUB" . PHP_EOL; } } // 获取特定服务的价格 $telegramPrice = $resource->getServicePrice(Service::TELEGRAM, Country::RUSSIA); echo "Telegram 俄罗斯号码价格: {$telegramPrice} RUB" . PHP_EOL;
高级功能
购买指定运营商的号码
$phoneNumber = $resource->getNumberWithOperator( Service::TELEGRAM, Country::RUSSIA, Operator::MEGAFON );
语音激活
use Weijiajia\SmsActivate\Enums\Language; $phoneNumber = $resource->getNumberWithVoiceActivation( Service::TELEGRAM, Country::RUSSIA, Language::RUSSIAN ); // 获取语音激活状态 $status = $resource->getStatusV2($phoneNumber->id); if ($status->callInfo) { echo "语音激活码: {$status->callInfo->code}" . PHP_EOL; }
设置最高价格
$phoneNumber = $resource->getNumberWithFreePrice( Service::TELEGRAM, Country::RUSSIA, 5.0 // 最高价格 5 RUB );
号码转发
$phoneNumber = $resource->getNumberWithForward( Service::TELEGRAM, Country::RUSSIA );
支持的枚举类型
主要服务
Service::TELEGRAM
- TelegramService::WHATSAPP
- WhatsAppService::FACEBOOK
- FacebookService::INSTAGRAM
- InstagramService::AMAZON
- AmazonService::GOOGLE
- Google- 更多服务请查看
Service
枚举类
主要国家
Country::RUSSIA
- 俄罗斯Country::UKRAINE
- 乌克兰Country::CHINA
- 中国Country::USA
- 美国Country::INDIA
- 印度- 更多国家请查看
Country
枚举类
运营商
Operator::ANY_OPERATOR
- 任意运营商Operator::MEGAFON
- MegafonOperator::BEELINE
- BeelineOperator::MTS
- MTSOperator::TELE2
- Tele2
API 方法参考
基础方法
getBalance()
- 获取账户余额getNumber()
- 购买号码 (V1 API)getNumberV2()
- 购买号码 (V2 API)getSms()
- 获取短信验证码getStatusV2()
- 获取状态 (支持语音)setStatus()
- 设置激活状态
查询方法
getServices()
- 获取服务列表getCountries()
- 获取国家列表getPrices()
- 获取价格列表getNumbersStatus()
- 获取号码状态
便捷方法
requestSms()
- 请求重发短信finishActivation()
- 完成激活cancelActivation()
- 取消激活isServiceAvailable()
- 检查服务可用性getServicePrice()
- 获取服务价格
高级方法
getNumberWithOperator()
- 购买指定运营商号码getNumberWithVoiceActivation()
- 购买语音激活号码getNumberWithForward()
- 购买转发号码getNumberWithCashBack()
- 使用返现购买号码getNumberWithFreePrice()
- 设置最高价格购买号码getRussianNumberWithExclusion()
- 购买排除特定字冠的俄罗斯号码getNumberWithOrderId()
- 使用订单 ID 购买号码(幂等性)
错误处理
use Weijiajia\SmsActivate\Exceptions\SmsActivateException; try { $phoneNumber = $resource->getNumber(Service::TELEGRAM, Country::RUSSIA); } catch (SmsActivateException $e) { echo "API 错误: " . $e->getMessage() . PHP_EOL; echo "错误代码: " . $e->getCode() . PHP_EOL; }
开发
运行测试
# 安装开发依赖 composer install # 运行测试 ./vendor/bin/pest
代码格式化
# 格式化代码
./vendor/bin/php-cs-fixer fix
生成枚举
# 生成国家枚举 php generate_country_enum.php # 生成服务枚举 php generate_service_enum.php
贡献
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。
许可证
本项目基于 MIT 许可证开源。详见 LICENSE 文件。