最近在做发送短信的接口,用了阿里云的短信服务。分享自己的开发心得。
阿里主要提供了三个接口:短信发送API,短信查询API,短信消息API。
短信发送API:发送短信的接口(SendSms)。
短信查询API:短信记录查询接口(QuerySendDetails)。
短信消息API:SmsReport短信状态报告和SmsUp上行短信消息接口
步骤1.首先购买阿里云短信服务。
步骤2.去短信服务控制台去添加短信签名和短信模板
步骤3.下载官方sdk地址
步骤4.开始你的代码,我是用php开发,这里用php做示例
下载的sdk目录如图所示:

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 是你订阅了短信状态报告接收、短信上行消息接收后阿里云给予的列队名称 如下图所示
