CI使用阿里云短信服务
来源:互联网 发布:intouch软件下载 编辑:程序博客网 时间:2024/05/17 08:10
以前的阿里大于被整合到阿里云旗下,现在叫阿里与·云通信。现在将短信服务整合到ci框架中。
下载sdk
点击SDK及DEMO 在阿里云下载短信服务所需要的sdk,解压到ci框架application\ibraries下。如下图所示:
申请短信签名及模板
在短信服务管理控制台申请短信签名以及短信模板
添加成功后,我们需要用到的有签名名称和模板CODE
获取accessKeyID,accessKeySecret
在CI使用阿里云短信服务接口
- 在application/config下新建sms.php文件,用于保存accessKeyID,accessKeySecret,模板CODE以及签名名称.
//sms.php//阿里云Access Key$config['accessKeyID'] = '你的阿里云access Key ID';$config['accessKeySecret'] = '你的阿里云access Key Secret';//短信模板CODE$config['code'] = array('SMS_xxxxx','SMS_xxxxx'......);//短信签名$config['sign'] = '你申请的签名名称';
- 在application/config/config.php里将$config[‘subclass_prefix’] 设为 ‘MY_’;
$config['subclass_prefix'] = 'MY_';
- 在application/core下新建MY_Controller类.代码如下:
//MY_Controller.php<?phpini_set("display_errors", "on");class MY_Controller extends CI_Controller{ function __construct() { parent::__construct(); }}/** * SMS短信发送服务 */require_once dirname(__DIR__) . '/libraries/api_sdk/vendor/autoload.php';use Aliyun\Core\Config;use Aliyun\Core\Profile\DefaultProfile;use Aliyun\Core\DefaultAcsClient;use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;// 加载区域结点配置Config::load();class Sms extends MY_Controller { /** * 构造器 * @param string $accessKeyId 必填,AccessKeyId * @param string $accessKeySecret 必填,AccessKeySecret */ public function __construct($accessKeyId, $accessKeySecret){ parent::__construct(); // 短信API产品名 $product = "Dysmsapi"; // 短信API产品域名 $domain = "dysmsapi.aliyuncs.com"; // 暂时不支持多Region $region = "cn-hangzhou"; // 服务结点 $endPointName = "cn-hangzhou"; // 初始化用户Profile实例 $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret); // 增加服务结点 DefaultProfile::addEndpoint($endPointName, $region, $product, $domain); // 初始化AcsClient用于发起请求 $this->acsClient = new DefaultAcsClient($profile); } /** * 发送短信 * * @param string $sign <p> * 必填, 短信签名,应严格"签名名称"填写,参考:<a href="https://dysms.console.aliyun.com/dysms.htm#/sign">短信签名页</a> * </p> * @param string $code <p> * 必填, 短信模板Code,应严格按"模板CODE"填写, 参考:<a href="https://dysms.console.aliyun.com/dysms.htm#/template">短信模板页</a> * (e.g. SMS_0001) * </p> * @param string $phone 必填, 短信接收号码 (e.g. 12345678901) * @param array|null $param * 选填, 假如模板中存在变量需要替换则为必填项 (e.g. Array("code"=>"12345", "product"=>"阿里通信")) * </p> * @param string|null $outId [optional] 选填, 发送短信流水号 (e.g. 1234) * @return stdClass */ public function sendSms($phone, $sign, $code, $param = null) { // 初始化SendSmsRequest实例用于设置发送短信的参数 $request = new SendSmsRequest(); // 必填,设置雉短信接收号码 $request->setPhoneNumbers($phone); // 必填,设置签名名称 $request->setSignName($sign); // 必填,设置模板CODE $request->setTemplateCode($code); // 可选,设置模板参数 if($param) { $request->setTemplateParam(json_encode($param)); } // 可选,设置流水号// if($outId) {// $request->setOutId($outId);// } // 发起访问请求 $acsResponse = $this->acsClient->getAcsResponse($request); // 打印请求结果 // var_dump($acsResponse); return $acsResponse; }}
- 调用SMS
$this->config->load('sms');//引用config文件夹下sms.php中的值$sms = new Sms( $this->config->item('accessKeyID'), $this->config->item('accessKeySecret'));$code = $code = $this->config->item('code')[n];//n为第几个模板CODE,参照sms.php中的配置$response = $sms->sendSms( $phone, // 短信接收者 $this->config->item('sign'), // 短信签名 $code, // 短信模板编号 array('name'=>'xxx','code'=>'1234')//短信模板中的变量,name以及code为变量名);if($response->Code == 'OK'){ /**发送成功后的操作**/}
【完】
阅读全文
2 0
- CI使用阿里云短信服务
- 阿里云短信服务
- 阿里云短信服务
- 阿里云短信服务
- 使用阿里云的短信服务发送短信验证码
- 阿里短信服务使用心得
- 阿里云 短信服务实现
- 阿里云短信服务 java
- 调用阿里云短信服务
- 阿里云短信服务api
- 开启阿里云短信服务
- 使用阿里云消息服务mns发送短信
- laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能
- java使用阿里大于发送短信(现在已经更名为云通讯下的短信服务)
- PHP开发阿里云短信服务接口
- Java 阿里云短信服务的集成
- Yii2使用阿里大鱼或阿里云短信发送短信
- PHP接入阿里云市场 阿里短信服务DEMO
- 将a=["aaa","bbb","ccc"]转化为aaa,bbb,ccc和将a=[111,222,333]转化为111,222,333的字符串作为输出的方法
- 欧拉函数的性质证明(欧拉筛)
- 屏幕适配--自动生成各种屏幕大小的尺寸文件的jar包
- bmp转rgb565在framebuffer中显示
- ios 证书与 profile
- CI使用阿里云短信服务
- XGBoost探索
- Thrift 双向通信实现(C#版)
- Noip2015 Day1 T2 信息传递(虽然是图论题但是...)
- 注解 @CrossOrigin
- 机器学习第四课(padding)
- 数组模拟链表之P1160 队列安排
- Day8-27.Literals
- Spark以及生态圈介绍