首页 >后端开发 >php教程 >PHP调用华为云短信接口实现短信发送

PHP调用华为云短信接口实现短信发送

WBOY
WBOY原创
2023-05-26 20:21:041801浏览

随着智能手机的流行,短信已经成为了人们生活中必不可少的一部分。不论是商业还是个人用途,短信都是一种重要的沟通方式。华为云是一家领先的云计算服务提供商,为了满足用户需求,华为云提供了短信服务。在这篇文章中,我们将介绍如何使用PHP调用华为云短信接口实现短信发送。

  1. 注册华为云账号

首先,您需要注册华为云账号并开通短信服务。如果您已经有了华为云账号,那么可以直接进入控制台开通短信服务。

  1. 创建应用和签名

在控制台中,进入短信模块,点击左侧菜单中的“应用管理”,然后点击“创建应用”,填写应用名称和描述。接下来,创建签名,签名用于识别您发送的短信来源。

  1. 创建模板

在短信模块中,点击“模板管理”,然后点击“创建模板”。在创建模板时,需要填写模板名称、模板内容和审核说明。

  1. 获取API调用地址

华为云提供了API接口供用户调用。在控制台中,进入“API管理”菜单,然后选择“调用地址”。可以看到API的URL地址和访问密钥等信息。

  1. PHP代码实现短信发送

接下来进入PHP代码实现短信发送。

首先,创建一个sendSms()函数,用于发送短信。需要传递三个参数:$accessKeyId,$accessKeySecret,$params。

$accessKeyId和$accessKeySecret可以从华为云的API管理中获取。$params包含了短信的必要参数,如手机号码、签名、模板ID等。代码如下:

function sendSms($accessKeyId, $accessKeySecret, $params) {
    $url = "https://api.<region>.myhuaweicloud.com/sms/batchSendSms/v1"; //API接口地址
    $headers = array(
        "Content-type: application/json;charset=utf-8", //请求Body数据格式
        "X-WSSE: xxxxxx"  //使用API密钥认证
    );
    $accessKey = base64_encode($accessKeyId . ':' . $accessKeySecret);
    array_push($headers, "Authorization: WSSE realm="SDP",profile="UsernameToken",type="Appkey"",
    "X-WSSE: UsernameToken Username="{$accessKeyId}",PasswordDigest="{$accessKey}",Nonce="xxxxxxxxxxx",Created="xxxxxxxxxxx""); //使用API密钥认证,请将参数替换为实际值
    $params_str = json_encode($params); //参数转化为json格式
    $ch = curl_init($url); //初始化curl
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS,$params_str); //请求Body部分
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

在调用sendSms()函数前,需要先将参数组织好。示例代码如下:

$params = array(
    "from" => "<签名名称>", //短信签名,从控制台中获取
    "to" => "<手机号码>", //接收短信的手机号码
    "templateId" => "<模板ID>", //短信模板ID,从控制台中获取
    "templateParas" => array("<参数1>", "<参数2>") //短信模板替换参数,具体参数值由模板定义
);

至此,PHP调用华为云短信接口实现短信发送的代码已经完成。在实际使用时,需要替换对应的参数。

总结

本文介绍了如何使用PHP调用华为云短信接口实现短信发送。需要注意的是,每发送一条短信都会消耗一定的API调用次数,因此需要根据实际需求合理地使用API接口调用次数。本文中的代码仅为示例代码,具体实现中需要根据实际情况进行调整。

以上是PHP调用华为云短信接口实现短信发送的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn