thinkphp5配置阿里大鱼短信接口

阿里大鱼短信配置非常简单,只需引入阿里大鱼完整SDK,然后在自己的项目里面引用SDK目录autoload.php文件,然后在接口调用demo接口就好了!

一,先说具体实现方法,最后附加源码包!

1.下载SDK,接口在阿里大鱼官网,本人使用版本为2017年10月下载,不保证后续官方SDK会相同,本人SDK版本地址百度云:http://pan.baidu.com/s/1eRPzmro    密码:oy7c;下载后放到TP5扩展目录extend下,如图:

2,仿照SDK的demo,编写自己的短信发送接口,这里的前提是引入SDK目录autoload.php文件,APP_EXTEND宏定义目录+SDK路径;APP_EXTEND定义位置在入口文件index.php中,define('APP_EXTEND',__DIR__.'/extend/');    


定义后,我们就可以引入SDK加载路径了,我们在home控制器新建sms控制器,然后引入SDK需要的命名空间如图


到这一步,引入SDK就完成了,剩下的就是复制sdk的 demo函数,构建一个自己的startSendSms()发送函数就行了。

下面是SMS接口代码,需要的网友可以直接下载http://pan.baidu.com/s/1skGVp2t  密码:5w1x


namespaceapp\home\controller;

usethink\Controller;

usethink\Session;

ini_set("display_errors","on");

require_onceAPP_EXTEND.'Alidayu/api_sdk/vendor/autoload.php';

useAliyun\Core\Config;

useAliyun\Core\Profile\DefaultProfile;

useAliyun\Core\DefaultAcsClient;

useAliyun\Api\Sms\Request\V20170525\SendSmsRequest;

useAliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;

//加载区域结点配置

Config::load();

/**

* Class SmsDemo

*

*@property\Aliyun\Core\DefaultAcsClient acsClient

*/

classSmsextendsController

{

/**

*构造器

*

*@paramstring $accessKeyId必填,AccessKeyId

*@paramstring $accessKeySecret必填,AccessKeySecret

*/

public function__construct($accessKeyId='这里要写你自己的短信accessKeyId',$accessKeySecret='这里要写你自己的短信accessKeySecret')

{

//短信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=newDefaultAcsClient($profile);

}

/**

*发送短信范例

*

*@paramstring $signName

*必填,短信签名,应严格"签名名称"填写,参考:短信签名页

*

*@paramstring $templateCode

*必填,短信模板Code,应严格按"模板CODE"填写,参考:短信模板页

* (e.g. SMS_0001)

*

*@paramstring $phoneNumbers必填,短信接收号码(e.g. 12345678901)

*@paramarray|null $templateParam

*选填,假如模板中存在变量需要替换则为必填项(e.g. Array("code"=>"12345", "product"=>"阿里通信"))

*

*@paramstring|null $outId [optional]选填,发送短信流水号(e.g. 1234)

*@returnstdClass

*/

public functionsendSms($signName,$templateCode,$phoneNumbers,$templateParam,$outId=null){

//初始化SendSmsRequest实例用于设置发送短信的参数

$request=newSendSmsRequest();

//必填,设置雉短信接收号码

$request->setPhoneNumbers($phoneNumbers);

//必填,设置签名名称

$request->setSignName($signName);

//必填,设置模板CODE

$request->setTemplateCode($templateCode);

//可选,设置模板参数

if($templateParam){

$request->setTemplateParam(json_encode($templateParam));

}

//可选,设置流水号

if($outId){

$request->setOutId($outId);

}

//发起访问请求

$acsResponse=$this->acsClient->getAcsResponse($request);

//打印请求结果

// var_dump($acsResponse);

return$acsResponse;

}

//调用发送短信接口

public function startSendSms(){    //这里是自己写的发送函数,里面直接调用SDK的sendSms接口就行了

$signName='这里写签名';//签名

$templateCode='这里写短信模板';//短信模板  如:SMS_105200000

$mobile=input('phone');//传递的号码

if($mobile==""){

returnApiError('手机号码不能为空');

return;

}

if(checkMobile($mobile)){

returnApiError('手机号码格式不正确');

return;

}

$phoneNumbers=$mobile;

$verifycode=strval(rand(1000,9999));//验证码数字4位   验证码按照自己需要编写

$templateParam=array('code'=>$verifycode);

$result=$this->sendSms($signName,$templateCode,$phoneNumbers,$templateParam,$outId=null);  //调用SDK接口

$result=json_decode(json_encode($result),true);

if($result['Message']!='OK'){

returnApiError('验证码发送失败:'.$result['Message']);

return;

}

session('home_reg.verifycode',$verifycode);

session('home_reg.phone',$phoneNumbers);

session('home_reg.time',time()+600);//10分钟

returnApiSuccess('验证码发送成功,请注意查收');

}

}

这样整个短信配置就完成了,前端只需要调用你的这个sms/startSendSms接口就可以发短信了!可能会遇到的问题SDK  autoload.PHP引入不正确。

如有其他疑问可以在本文留言!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • PhpSms 可能是目前最聪明、优雅的php短信发送库了。从此不再为各种原因造成的个别短信发送失败而烦忧! php...
    小漠不漠阅读 1,257评论 0 0
  • 短信验证码的速度阿里大于还是值得依赖的,至少在我测试过程中几乎没有大于10分钟的延迟。 先到 阿里大于注册:htt...
    英文名叫夏天阅读 880评论 0 2
  • 一、配置 1.从终端或命令行进入您的项目目录,运行 composer require iscms/alisms-f...
    吴涛涛阅读 569评论 0 2
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,499评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,099评论 18 139