最近在做发送短信的接口,用了阿里云的短信服务。分享自己的开发心得。
阿里主要提供了三个接口:短信发送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 是你订阅了短信状态报告接收、短信上行消息接收后阿里云给予的列队名称 如下图所示