tp5短信接口的使用

阿里大鱼短信配置非常简单,只需引入阿里大鱼完整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="http://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引入不正确。

转载于:

Matrix

PHP程序员

原文地址:https://www.cnblogs.com/yinyusoso/p/9015406.html

时间: 2024-08-26 11:20:03

tp5短信接口的使用的相关文章

THINKPHP3.2.3增加阿里云短信接口思路整理

https://help.aliyun.com/document_detail/55359.html?spm=5176.product44282.4.7.O4lc1n 阿里云短信服务地址,感冒的下载看看 1 文件存放位置的问题 阿里云的短信接口 属于第三方扩展 所以文件放在 thinkphp\vendor\ 比如起名message 把SDK的文件都存到里面 2 把实现功能的代码 写好 放在message目录 不过注意文件的路径 代码里面的文件头 引用的文件地址用类似的 require_once

关于手机短信接口优化

项目:目前需要支持手机号码注册,流程如下: 1)用户输入手机号码 2)点击获取手机校验码 3)收到短信息后,填入验证码.完成注册 有个问题,在项目中前期设计问题,导致短信接口被恶意调用. 调整方案: 网络提供方案: 推荐的对接方式:1.流程限定--将手机短信验证和用户名密码设置分成两个步骤,用户在注册成功用户名密码后,下一步才进行手机短信验证.(推荐)2.绑定图型校验码--将图形校验码和手机验证码进行绑定,这样能比较有效的防止软件恶意点击.(推荐) 不推荐的对接方式:3.短信发送间隔设置--设置

阿里大鱼短信接口

阿里大于短信验证实现完整代码分享 http://bbs.2ccc.com/topic.asp?topicid=515649 补充:跨平台的例子可以去csdn下载这位大神的demo http://download.csdn.net/detail/hansxia888/9603061 1 这两天搞那个sign,搞的烦躁,问了一下论坛的那位同学,开口500. 2 唉,delphi这种偏门的就是这样,啥都贵. 3 后来想想用C#按阿里那边的帮助文档写了个,可以正常发送.然后把C#翻译成Delphi就可以

短信接口调用——阿里大于API开发心得

互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短信费用是计数缴纳的,作为个人开发者,我使用的服务产生的费用为0.45¥/条(10万条以下). 现在要实现一个例会短信群发通知的功能,所有被通知对象信息均存于Mysql中,应用架构采用asp.net MVC .首先准备好获取的API各项(以下各项服务参数都需要在大于官网上申请), 申请好自己的短信签名

zabbix短信接口调用出现的问题

在写调用短信网关的shell脚本的时候,发现了一个百思不得其解的问题,用浏览器访问短信接口地址是可以成功接收到短信的.但在shell 里面调用就报错了!!!在反复测试当中发现,在shell 中对特殊字符有特殊意义,这里需要把http整个部分用双引号括起来,问题就迎刃而解了.这里分享下,希望能帮助到有用短信网关出错的人

如何选择一家好的验证码短信接口服务商?

多年的行业经验及与客户沟通中所了解的一些信息反馈.现在总结出来 跟大家说一说,怎样去选择一家比较好的短信接口提供商. 公司网站/app想嵌入短信接口 发验证短信.去网上一搜几十家,每个网站的产品宣传.介绍都大同小异,挑了几家问问价格低至3,4分,高至7,8分.价格高的会说是验证码专用通道,但又去问问价格低的 也说是专用 这时在没使用过的情况下 价格低的完全占绝对优势 因为70%客户会选择价格便宜的.于是乎就开了帐号 充值使用了,用了3天,一个礼拜或者1-2个月 渐渐的问题开始多了,收不到 延迟厉

阿利大于短信接口问题

include "TopSdk.php";  function sendSMF ($mobile, $content ,$name) {    // include "TopSdk.php";  //错误在这里     date_default_timezone_set('Asia/Shanghai');           $c = new TopClient;     $c->appkey = '';     $c->secretKey = &quo

短信接口接近我们的生活

随着社会的发展,时代的进步,我们的生活水平已经得到了很大的提高,我们对生活的享受有了更大最求,我们所希望的就是方便,简洁.由于当今社会的种种压力,让我们不得不努力向前,我们不是机器,我们也会累的,所以在别的方面,我们希望尽可能的简单一些.发短信肯定是我们生活中不了缺少的一个部分,不管在什么时候只要动一动手指就可以轻松将想要说的话传达给对方.华软通信短信接口就是基于短信平台产生的,用于对短信的管理和传达. 短信接口是对你发的短信的管理,是短信平台的必须的系统.现代的网络短信平台也是传统的短信平台进

短信接口的介绍和功能

短信接口是面向有一定技术开发能力的用户而单独研发的信息(sms)接口.本接口采用了通用的HTTP形式,可以支持各种操作系统和开发语言,只要电脑能上网就可以使用发送信息,可以根据需要开发自己的一套信息平台.也可以简单的把信息接口嵌入到您自己的系统中,快速拥有无线应用,完善您的服务!同时提供各种语言的例子代码. 1.一点接入,全网服务    企业信息服务覆盖全国,全面开通中国移动.中国联通和中国电信所有用户. 2.对接容易,覆盖面广    本接口采用了通用的HTTP形式,可以支持各种操作系统和开发语