Home  >  Article  >  Backend Development  >  How to connect to Alibaba Cloud SMS sending interface through PHP to implement customer service notification function

How to connect to Alibaba Cloud SMS sending interface through PHP to implement customer service notification function

WBOY
WBOYOriginal
2023-07-05 15:30:071387browse

How to connect Alibaba Cloud SMS sending interface through PHP to implement customer service notification function

With the development of the Internet, more and more companies use SMS as an important customer service notification tool. The Alibaba Cloud SMS sending interface provides stable and reliable services. This article will introduce how to connect to the Alibaba Cloud SMS sending interface through PHP to implement the customer service notification function.

First, we need to create an SMS service on the Alibaba Cloud official website and obtain the AccessKey information. Then, we can use PHP's cURL library to send a POST request to the Alibaba Cloud SMS sending interface to implement the SMS sending function.

The following is a sample code that shows how to send text messages through PHP:

<?php

/**
 * 发送短信
 * @param string $accessKeyId AccessKeyId
 * @param string $accessSecret AccessKeySecret
 * @param string $phoneNumbers 手机号码
 * @param string $signName 短信签名
 * @param string $templateCode 短信模板Code
 * @param array $templateParam 短信模板变量
 * @return bool|string
 */
function sendSms($accessKeyId, $accessSecret, $phoneNumbers, $signName, $templateCode, $templateParam)
{
    $params = array(
        'SignName' => $signName,
        'PhoneNumber' => $phoneNumbers,
        'TemplateCode' => $templateCode,
        'TemplateParam' => json_encode($templateParam),
        'AccessKeyId' => $accessKeyId,
        'Timestamp' => gmdate("Y-m-dTH:i:sZ"),
        'Format' => 'JSON',
        'SignatureMethod' => 'HMAC-SHA1',
        'SignatureVersion' => '1.0',
        'SignatureNonce' => uniqid(),
        'Action' => 'SendSms',
        'Version' => '2017-05-25',
    );

    ksort($params);

    $accessSecret .= '&';
    $url = 'http://dysmsapi.aliyuncs.com/?';

    foreach ($params as $key => $value) {
        $url .= "$key=" . urlencode($value) . '&';
    }

    $url = substr($url, 0, -1);

    $sign = base64_encode(hash_hmac('sha1', $url, $accessSecret, true));
    $signature = urlencode($sign);

    $url .= "&Signature={$signature}";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

// 使用示例
$accessKeyId = '您的AccessKeyId';
$accessSecret = '您的AccessKeySecret';
$phoneNumbers = '手机号码';
$signName = '短信签名';
$templateCode = '短信模板Code';
$templateParam = array(
    'code' => '验证码'
);

$result = sendSms($accessKeyId, $accessSecret, $phoneNumbers, $signName, $templateCode, $templateParam);

// 打印短信发送结果
if($result) {
    $result = json_decode($result, true);
    if(isset($result['Code']) && $result['Code'] == 'OK') {
        echo '短信发送成功';
    } else {
        echo '短信发送失败';
    }
} else {
    echo '短信发送失败';
}

In the sample code, we define a sendSms function, which receives AccessKeyId, AccessKeySecret and other parameters, and passes cURL Send a POST request to the Alibaba Cloud SMS sending interface. Among them, AccessKeyId and AccessKeySecret are the identifiers of your Alibaba Cloud account, phoneNumbers is the mobile phone number for receiving SMS messages, signName is the SMS signature, templateCode is the SMS template code, and templateParam is used to replace variables in the SMS template.

Through the above sample code, we can easily implement the function of docking the Alibaba Cloud SMS sending interface in PHP, thereby realizing the needs of customer service notifications. Hope this article can be helpful to readers.

The above is the detailed content of How to connect to Alibaba Cloud SMS sending interface through PHP to implement customer service notification function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn