海外手机卡提取SMS短信API代码分享参考

1. 通过API提取海外手机号码的短信需要先获取一个手机号

比如注册光年号 (https://gnhao.com),然后获取一个英国手机号。这家都是实体手机sim卡,不是虚拟卡,所以是比较推荐的。

获取到手机号之后,使用下面的api文档进行配置api收取短信SMS内容。

2. 获取短信内容的API文档

简要描述
  • 获取短信内容,返回该号码最新的一条短信内容,建议5-30秒请求一次
请求URL
  • https://gnhao.com/index/api/get_sms_v1
请求方式
  • post
参数
参数名必选类型说明
app_key字符串API密钥
phone字符串手机号码
返回参数
参数名必选类型说明
code数值返回状态码
message字符串返回结果说明
data数组返回的短信内容数组
返回示例
  { 
     "code": 200,
     "message": "请求成功",
     "data": Array
  }
data内容示例
[data] => Array
    (
        [phone] => 收信号码
        [sender] => 发信人
        [sender_name] => 发信人名称
        [content] => 短信内容
        [send_time] => 短信发送时间
    )
code返回值对照
文本说明
200请求成功
40001API密钥不能为空
40002认证失败API密钥错误
40003phone不能为空
40004phone错误.

如果对代码不熟悉,可以直接让deepseek帮忙写一个php或者python代码,非常简单。

3.参考代码片段分享

<?php
/**
 * 获取短信内容的API调用示例
 */

class SmsApiClient {
    private $apiKey;
    private $apiUrl = 'https://gnhao.com/index/api/get_sms_v1';
    
    /**
     * 构造函数
     * @param string $apiKey API密钥
     */
    public function __construct($apiKey) {
        $this->apiKey = $apiKey;
    }
    
    /**
     * 获取最新短信内容
     * @param string|null $phone 手机号码(可选)
     * @return array 返回解析后的API响应数据
     * @throws Exception 当API请求失败时抛出异常
     */
    public function getLatestSms($phone = null) {
        // 准备请求参数
        $params = [
            'app_key' => $this->apiKey
        ];
        
        if ($phone !== null) {
            $params['phone'] = $phone;
        }
        
        // 初始化cURL
        $ch = curl_init();
        
        // 设置cURL选项
        curl_setopt($ch, CURLOPT_URL, $this->apiUrl);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 如果是生产环境,建议设为true并配置证书
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        
        // 执行请求
        $response = curl_exec($ch);
        
        // 检查错误
        if (curl_errno($ch)) {
            throw new Exception('cURL请求错误: ' . curl_error($ch));
        }
        
        // 关闭cURL资源
        curl_close($ch);
        
        // 解析JSON响应
        $result = json_decode($response, true);
        
        if (json_last_error() !== JSON_ERROR_NONE) {
            throw new Exception('解析JSON响应失败: ' . json_last_error_msg());
        }
        
        // 检查API返回的状态码
        if (!isset($result['code'])) {
            throw new Exception('API响应格式异常: 缺少状态码');
        }
        
        // 根据状态码处理不同情况
        switch ($result['code']) {
            case 200:
                // 请求成功
                return $result;
            case 40001:
                throw new Exception('API密钥不能为空');
            case 40002:
                throw new Exception('API密钥错误,认证失败');
            case 40003:
                throw new Exception('phone参数不能为空');
            case 40004:
                throw new Exception('phone参数错误');
            default:
                throw new Exception('未知错误: ' . ($result['message'] ?? '无错误信息'));
        }
    }
}

// 使用示例
try {
    // 替换为你的API密钥
    $apiKey = 'your_api_key_here';
    
    // 创建API客户端实例
    $smsClient = new SmsApiClient($apiKey);
    
    // 可选: 指定要查询的手机号码
    // $phone = '13800138000';
    $phone = null;
    
    // 获取最新短信
    $result = $smsClient->getLatestSms($phone);
    
    // 处理结果
    if (!empty($result['data'])) {
        echo "最新短信内容:\n";
        echo "收信号码: " . $result['data']['phone'] . "\n";
        echo "发信人: " . $result['data']['sender'] . "\n";
        echo "发信人名称: " . $result['data']['sender_name'] . "\n";
        echo "短信内容: " . $result['data']['content'] . "\n";
        echo "发送时间: " . $result['data']['send_time'] . "\n";
    } else {
        echo "没有获取到短信内容\n";
    }
    
} catch (Exception $e) {
    echo "发生错误: " . $e->getMessage() . "\n";
}

// 如果需要定时请求,可以使用循环
/*
$interval = 10; // 10秒请求一次
do {
    try {
        $result = $smsClient->getLatestSms($phone);
        // 处理结果...
    } catch (Exception $e) {
        // 错误处理...
    }
    sleep($interval);
} while (true);
*/
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值