阿里云短信服务接入

最近在做发送短信的接口,用了阿里云的短信服务。分享自己的开发心得。

阿里主要提供了三个接口:短信发送API,短信查询API,短信消息API。

短信发送API:发送短信的接口(SendSms)。

短信查询API:短信记录查询接口(QuerySendDetails)。

短信消息API:SmsReport短信状态报告和SmsUp上行短信消息接口

步骤1.首先购买阿里云短信服务。

步骤2.去短信服务控制台去添加短信签名和短信模板

步骤3.下载官方sdk地址 

步骤4.开始你的代码,我是用php开发,这里用php做示例

下载的sdk目录如图所示:

image.png

api_demo:短信发送API、短信查询API demo 

api_sdk:短信发送API、短信查询API 所需要的sdk 

msg_demo: 短信消息API demo 

msg_sdk: 短信消息API 所需要sdk。

SmsDemo.php和MsgDemo.php 是官方给的例子

发送短信:

$demo = new SmsDemo(
    "your AccessKeyId",
    "your AccessKeySecret"
);

echo "SmsDemo::sendSms\n";
$response = $demo->sendSms(
    "短信签名名称", // 短信签名
    "短信模板CODE", // 短信模板编号
    "12345678901", // 短信接收者
    Array(  // 短信模板中字段的值
        "code"=>"12345",
    ),
    uniqid()
);
print_r($response);

查询短信记录:

$demo = new SmsDemo(
    "your AccessKeyId",
    "your AccessKeySecret"
);

$phoneNumbers = "12345678901";
$sendDate="20171024";
$response = $demo->queryDetails($phoneNumbers,$sendDate);
echo '<pre>';
print_r($response);

SmsReport短信消息报告

     $sms = new MsgDemo(
            "1943695596114318",
              "your AccessKeyId",
            "your AccessKeySecret"
        );

        $sms->receiveMsg(
            "SmsReport",
            "Alicom-Queue-10391693-SmsReport",
             function ($message) {
                $message = json_encode($message,JSON_UNESCAPED_UNICODE);
               file_put_contents(\Yii::getAlias('@root').'/logs/msg.log',$message.PHP_EOL,FILE_APPEND);
                return true;
            }
        );

SmsUp上行短信

  $sms = new MsgDemo(
            "1943695596114318",
              "your AccessKeyId",
            "your AccessKeySecret"
        );

        $sms->receiveMsg(
            "SmsUp",
            "Alicom-Queue-10391693-SmsUp",
           function ($message) {
            $message = json_encode($message,JSON_UNESCAPED_UNICODE);
              file_put_contents(\Yii::getAlias('@root').'/logs/msg.log',$message.PHP_EOL,FILE_APPEND);
                return true;
            }
        );

注:

Alicom-Queue-10391693-SmsReport 和 Alicom-Queue-10391693-SmsUp 是你订阅了短信状态报告接收短信上行消息接收后阿里云给予的列队名称 如下图所示

image.png