咨询热线:18076568990、0755-25823180

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

2020-8-28 07:22| 发布者: shopwt| 查看: 816| 评论: 0

简介:怎样在thinkphp 5中实现阿里云-云通讯发短信 阿里大于并入阿里云之后,阿里大于维护原有客户。新的客户可以在阿里云-云通讯里购买短佩服务。起首我们可以看下阿里云-云通讯的菜单位置: 添加短佩服务之后就

怎样在thinkphp 5中实现阿里云-云通讯发短信

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

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

使用阿里云-云通讯要注意三个地方:1)设置eccesskeys--这个就是短佩服务的账号和暗码。2)设置短信署名。3)设置短信模板。由于阿里云-云通讯自己有使用教程和客户服务,怎样申请和使用我们就不外多报告,下边我们下载一个基于thinkphp 5的ShopWT多用户开源电子商务体系讲授一下:怎样使用和实现thinkphp 5框架中接入阿里云-云通讯功能。

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

上边的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。则分析短信发送乐成,否则的话则提示用户短信发送失败。

接待各人一起分享、交换!


ShopWT(www.shopwt.com)是国内知名商城系统及商城网站建设提供商,其中销客多小程序系统为商家提供小程序商城开发、小程序分销系统、微分销系统、商城系统、电商网站建设、微信分销系统、小程序商城等多端商城及电子商务行业解决方案>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
收藏 分享 邀请

鲜花

握手

雷人

路过

鸡蛋

精彩阅读

更多+

最新活动

联系我们

产品及方案咨询:18076568990、0755-25823180

电子邮箱:web@shopwt.com、客服微信:shopwtcom

公司地址:深圳市罗湖区人民南路3002号国贸大厦B座1608楼

  • 官方公众号

  • 微信客服