在PHP中,发送短信通常需要使用第三方的API服务,这里以阿里云的短信服务为例,介绍如何使用PHP发送短信。
你需要在阿里云注册账号并开通短信服务,获取到AccessKey ID和AccessKey Secret。
你需要安装阿里云的SDK,可以使用Composer进行安装:
composer require alibabacloud/client
你可以使用以下代码来发送短信:
require_once __DIR__ . '/vendor/autoload.php';use AlibabaCloud\Client\AlibabaCloud;use AlibabaCloud\Client\Exception\ClientException;use AlibabaCloud\Client\Exception\ServerException;AlibabaCloud::accessKeyClient('<yourAccessKeyID>', '<yourAccessKeySecret>')->regionId('cnhangzhou')->asDefaultClient();try { $result = AlibabaCloud::rpc() ->product('Dysmsapi') // ->scheme('https') // https | http ->version('20170525') ->action('SendSms') ->method('POST') ->host('dysmsapi.aliyuncs.com') ->options([ 'query' => [ 'RegionId' => "cnhangzhou", 'PhoneNumbers' => "<yourPhoneNumber>", 'SignName' => "<yourSignName>", 'TemplateCode' => "<yourTemplateCode>", 'TemplateParam' => "{"code":"<yourVerificationCode>"}", ], ]) ->request(); print_r($result->toArray());} catch (ClientException $e) { echo $e->getErrorMessage() . PHP_EOL;} catch (ServerException $e) { echo $e->getErrorMessage() . PHP_EOL;}
注意:以上代码中的<yourAccessKeyID>,<yourAccessKeySecret>,<yourPhoneNumber>,<yourSignName>,<yourTemplateCode>和<yourVerificationCode>都需要替换为你自己的信息。
这个例子中,我们使用了阿里云的RPC风格接口,调用了SendSms操作来发送短信,我们指定了手机号、签名名称、模板代码和模板参数。
下面是一个关于PHP短信发送接口的简易介绍,其中包括了发送短信时可能需要的一些关键信息。
参数名称 | 描述 | 示例值 |
API URL | 短信服务提供商的API接口地址 | https://api.sms.com/send |
API Key | 接口认证密钥 | your_api_key |
Phone Number | 接收短信的手机号码 | 13800138000 |
Message | 要发送的短信内容 | 您的验证码是:123456 |
Sender | 发送者,通常为短信签名 | 【公司名称】 |
Template ID | 如果使用模板发送,需要提供模板ID | 12345 |
Variables | 模板中对应的变量值 | {"code": "123456"} |
Request Type | 请求类型,通常为POST | POST |
Response Code | 响应状态码 | 200 |
Description | 响应描述 | 发送成功 |
以下是使用这些参数的一个简单PHP脚本示例:
<?php// 设置短信接口参数$apiUrl = 'https://api.sms.com/send';$apiKey = 'your_api_key';$phoneNumber = '13800138000';$message = '您的验证码是:123456';$sender = '【公司名称】';$templateId = '12345';$variables = json_encode(["code" => "123456"]);// 初始化curl$ch = curl_init();// 设置curl参数curl_setopt($ch, CURLOPT_URL, $apiUrl);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'apikey' => $apiKey, 'phone' => $phoneNumber, 'message' => $message, 'sender' => $sender, 'templateId' => $templateId, 'variables' => $variables]));curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// 执行curl请求$response = curl_exec($ch);// 关闭curl资源curl_close($ch);// 解析响应$responseData = json_decode($response, true);// 输出结果echo "Response Code: " . $responseData['code'] . "";echo "Description: " . $responseData['description'] . "";?>
请注意,实际的API URL、API Key、参数名称和值必须根据您选择的短信服务提供商的具体要求来设置,上面的示例仅供参考。