如何在thinkphp 5中实现阿里云云通信发短信

原创 2017年11月15日 11:21:46

如何在thinkphp 5中实现阿里云-云通信发短信

 

阿里大于并入阿里云之后,阿里大于维护原有客户。新的客户可以在阿里云-云通信里购买短信服务。首先我们可以看下阿里云-云通信的菜单位置:

 

添加短信服务之后就可以在左侧看到短信服务的菜单:

 

使用阿里云-云通信要留意三个地方:1)设置eccesskeys--这个就是短信服务的账号和密码。2)设置短信签名。3)设置短信模板。因为阿里云-云通信本身有使用教程和客户服务,如何申请和使用我们就不过多讲述,下边我们下载一个基于thinkphp 5的WSTMart多用户开源电子商务系统讲解一下:如何使用和实现thinkphp 5框架中接入阿里云-云通信功能。

 

1、在WSTMart的“拓展管理”-“插件管理”中找到“短信接口(阿里云-云通信)”插件,点击右侧的“安装”进行启用。然后在“设置”界面对阿里云-云通信进行设置:


上边的Access Key ID、Access Key secret以及短信签名为必填。发送的模板ID则选填,如果用户没有填写,则系统不会发送该情况下的短信。

 

2、在商城设置中开启短信功能:


要留意的事,wstmart中默认的短信发送间隔是2分钟,阿里云-云通信则最短1分钟1条,1小时5条,1天10条。设置到这里,基本上wstmart中就可以使用短信服务的功能了。

 

3、实现原理:

1)下载阿里云-云通信SDK放到到阿里云-云通信插件目录下,该名为sdk。

2)在发短信的位置埋入钩子。在类文件wstmart\common\model\LogSms.php中我们对发送短信的位置埋入钩子。


当程序运行到此处的时候,系统就会自动检测在此钩子处监听的插件有哪些。因为我们前边只开启了阿里云-云通信,所以程序就会进入到阿里云-云通信的插件函数里:


sendSMS写在插件的model里,我们按照阿里云-云通信的演示代码封装成一个http接口函数:

public function http($params){
                 require_once WST_ADDON_PATH.'dysms/sdk/vendor/autoload.php';
                 Config::load();
                 $smsConf= $this->getConfigs();
            $accessKeyId = $smsConf['smsKey'];;
            $accessKeySecret = $smsConf['smsPass'];
            $product = "Dysmsapi";
            $domain ="dysmsapi.aliyuncs.com";
            $region = "cn-hangzhou";
            $profile =DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
           DefaultProfile::addEndpoint("cn-hangzhou","cn-hangzhou", $product, $domain);
            $acsClient= new DefaultAcsClient($profile);
            $request = new SendSmsRequest();
           $request->setPhoneNumbers($params['phoneNumber']);
            //必填-短信签名
           $request->setSignName($smsConf["signature"]);
            //必填-短信模板Code
           $request->setTemplateCode($smsConf[$params['params']['tpl']['tplCode']]);
            $request->setTemplateParam($params['content']);
            //选填-发送短信流水号
            $request->setOutId($params['timeId']);
            //发起访问请求
            $resp =$acsClient->getAcsResponse($request);
       return $resp;
}
 

然后我们在在model里边去调用http函数去发短信.

public function sendSMS($params){
                 .......
       省略封装函数过程
       .......
                 $code= $this->http($params);
                 $log= model('common/logSms')->get($params['smsId']);
                 $log->smsReturnCode= json_encode($code);
                 $log->save();
                 try{
                         if(strtolower($code->Message)=='ok'){
                    $params['status']['msg'] = '短信发送成功!';
                    $params['status']['status'] = 1;
                         }
                 }catch(\Exception $e) {
           $params['status']['msg'] = $code->Message;
                $params['status']['status'] = -1;
                 }
}
 


调试:如果调用阿里云-云通信能正确返回json对象的数据,并且其message的内容为ok。则说明短信发送成功,否则的话则提示用户短信发送失败。

 

欢迎大家一起分享、交流!

版权声明:本文为B2B2C商城系统原创文章,未经允许不得转载。 https://blog.csdn.net/shangtaosoft/article/details/78538915

ThinkPHP实现阿里云的发送验证码功能

今天由于做项目需要短信验证功能,所以弄了一下午的终于集成了的阿里云的短信功能 首先就是前面那一套, 1、申请Access Key 2、短信模板及其签名然后我们就可以去官网上下载sdk了 本篇博文...
  • qq_36172443
  • qq_36172443
  • 2017-09-03 21:46:53
  • 5898

Tpshop商城短信接口开发

TPshop是用thinkphp开发的一款免费开源网店系统,二次开发非常方便,代码清晰简洁,通俗易懂,丰富的插件和多套模板支持,易扩展,是目前国内首家最为完善的开源商城系统。系统支持多语言版本,操作简...
  • mindev
  • mindev
  • 2017-10-13 18:27:56
  • 726

thinkphp5 中使用阿里云的短信服务

在项目中用到阿里云的短信服务,在使用阿里云提供的SDK后,踩了很多坑,费尽九牛二虎之力才调试成功。为方便大家快速方便的使用sdk,将我自己封装的短信调用方法提供如下,方便大家参考:1. 请自行下载ph...
  • glx490676405
  • glx490676405
  • 2018-02-28 16:59:50
  • 246

Thinkphp5集成阿里云短信

先去阿里云申请账号(后台地址: https://www.aliyun.com/ , 注意不是阿里大于短信平台,阿里大于已经停止新用户注册),登入控制台,创建得到keyId 和 keysecret. ...
  • wqhjfree
  • wqhjfree
  • 2017-08-20 15:38:00
  • 3174

thinkphp5详细使用阿里云短信最新版(原大鱼)教程!

先说一下吧,这篇文章主要教大家如何使用tp5来使用阿里短信平台最新版2.0sdk,也就是所谓的前阿里大鱼。 但是高手略过啊,只针对新手,如果大家发现有什么问题,欢迎留言指出,我会更正! 首先我们下载...
  • myarche
  • myarche
  • 2017-11-14 11:20:19
  • 351

thinkphp3.2 如何使用 阿里大鱼短信接口

1 在开发者控制平台里下载sdk 2 解压后放在ThinkPHP\Library\Org\Alidayu下(Alidayu名字是自定义的) 3 修改其中的4个文件.php 改为 .class.ph...
  • u010957293
  • u010957293
  • 2016-10-06 14:10:17
  • 7002

php操作阿里云短信API接口

最近公司短信到期了,我看到阿里云里面有个短信验证码服务,价格非常低,每条最高4分半,3秒可到,于是就申请了. 可是后面很难用,找不到例子代码,然后自己摸索,也咨询了阿里云的工作人员,花了2天才搞定,...
  • yunkaicn
  • yunkaicn
  • 2016-10-31 14:52:04
  • 10915

Thinkphp5+阿里云SMS短信服务发送验证码

阿里云短信服务介绍阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了。首先,你需要注册一个阿里云账号,这个自行解决。仅用于测试使用官方送的代金券够用了。相关配置1.开通阿里云AccessK...
  • gu_wen_jie
  • gu_wen_jie
  • 2017-10-31 13:53:52
  • 496

ThinkPHP中集成阿里大于短信发送SDK

阿里大于短信发送控制台已经被整合到阿里云控制台了,之前注册的阿里大于账户使用过阿里大于服务的,现在还可以进入阿里大于控制台,新注册用户的话,都会直接跳转到阿里云控制台,使用短信服务的话,SDK也不同了...
  • sinat_35861727
  • sinat_35861727
  • 2017-07-21 17:15:15
  • 2752

Thinkphp5使用阿里大于短信验证

现在各种平台登录验证很多时候会使用短信验证,快捷安全,有很多平台提供短信验证服务,相比较而言阿里大于价格比较便宜,快捷,所以在在千锋日常的php教学中多以此为例来说明短信验证的使用。下面我们在tp5中...
  • chengshaolei2012
  • chengshaolei2012
  • 2017-06-01 22:50:54
  • 3066
收藏助手
不良信息举报
您举报文章:如何在thinkphp 5中实现阿里云云通信发短信
举报原因:
原因补充:

(最多只允许输入30个字)