好多人都感觉脱离了增删改查的功能都很难,实际上不是的,可能有些教程只是讲了核心的部分,导致一些基础不太好的同学有些蒙逼,本人作为一个基础不太好的同学,今天就从基础开始说说i哈
1.首先,想用短信服务,就得先有个阿里云帐号,然后去购买短信,购买后,然后你去生成一个app_id和key的值,声称这个值不用代码,在阿里云后台就可以生成的,然后生成一个模版,这个你们自己找就行,然后生成一个短信签名,短信签名是干什么的呢?给你们举个列子,一般广告短信都是【阿里云】迎十一大酬宾。。。或者【链家】十一大优惠,短信签名就是【】里面的内容,一般人会放公司名字,当然也有人会放其他的,比如1折起等等,看自己需要,认证短信签名需要提供公司执照,公章,营业执照号,以及授权报告单,授权报告单在后台下载就是了,具体填写内容大概就是 某某人 全权代表某某公司 这么填就行。后面都一样了这些都不需要代码,都是在阿里云后台设置,这些你都搞定后,然后我们开始代码
2.首先在Thinkphp的Application/Common/function.php里添加如下方法(如果找不到这个文件,就ctrl+f搜索function.php因为tp里就这一个文件):
1 function sendSms($phone,$code){ 2 ??Vendor(‘Alisms.Core.Config‘); 3 ??//use Aliyun\Core\Profile\DefaultProfile; 4 ??Vendor(‘Alisms.Core.Profile.DefaultProfile‘); 5 ??//use Aliyun\Core\DefaultAcsClient; 6 ??Vendor(‘Alisms.Core.DefaultAcsClient‘); 7 ??//use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest; 8 ??Vendor(‘Alisms.Api.Sms.Request.V20170525.SendSmsRequest‘); 9 ??//use Aliyun\Api\Sms\Request\V20170525\QuerySendDetailsRequest;10 ??Vendor(‘Alisms.Api.Sms.Request.V20170525.QuerySendDetailsRequest‘);11 ??// 加载区域结点配置12 ??\Aliyun\Core\Config::load();13 ??// 初始化用户Profile实例14 ??$profile = \Aliyun\Core\Profile\DefaultProfile::getProfile(C(‘ALI_SMS.REGION‘), C(‘ALI_SMS.KEY_ID‘), C(‘ALI_SMS.KEY_SECRET‘));15 ??// 增加服务结点16 ??\Aliyun\Core\Profile\DefaultProfile::addEndpoint(C(‘ALI_SMS.END_POINT_NAME‘), C(‘ALI_SMS.REGION‘), C(‘ALI_SMS.PRODUCT‘), C(‘ALI_SMS.DOMAIN‘));17 ??// 初始化AcsClient用于发起请求18 ??$acsClient = new \Aliyun\Core\DefaultAcsClient($profile);19 ??// 初始化SendSmsRequest实例用于设置发送短信的参数20 ??$request = new \Aliyun\Api\Sms\Request\V20170525\SendSmsRequest();21 ??// 必填,设置雉短信接收号码22 ??$request->setPhoneNumbers($phone);23 ??// 必填,设置签名名称24 ??$request->setSignName(‘老陈的博客‘);25 ??// 必填,设置模板CODE26 ??$request->setTemplateCode(‘SMS_84150026‘);27 ??$params = array(28 ????‘code‘ => $code29 ??);30 ??// 可选,设置模板参数31 ??$request->setTemplateParam(json_encode($params));32 ??// 可选,设置流水号33 ??//if($outId) {34 ??// ???$request->setOutId($outId);35 ??//}36 ??// 发起访问请求37 ??$acsResponse = $acsClient->getAcsResponse($request);38 ??// 打印请求结果39 ??// var_dump($acsResponse);40 ??return $acsResponse;41 }
3.在Application\Common\Conf\config.php中添加如下配置:- ‘ALI_SMS‘ => array(
- ‘PRODUCT‘ => ‘Dysmsapi‘,
- ‘DOMAIN‘ => ‘dysmsapi.aliyuncs.com‘,
- ‘REGION‘ => ‘cn-hangzhou‘,
- ‘END_POINT_NAME‘ => ‘cn-hangzhou‘,
- ‘KEY_ID‘ => ‘你的KEY_ID‘,
- ‘KEY_SECRET‘ => ‘你的KEY_SECRET‘
- ),
4.还有一点最重要的去官网后台下载PHP的sdk ,然后放到Thinkphp/library/Vendor下,当然你们下不到,可以找我,我有简易版的sdk,群:84451248
再最后,我还要说一下 很多朋友可能不知道前台怎么用,那我就给写一个简易版的调用吧 ,具体的防盗刷的话,到下一个文章中再详细说明,这里就先简单说个调用
比如我首页要调用,那么我就View/Index/index。html加个 获取验证码 按钮,然后 用ajax异步 获取后台方法也好或者form 表单也好都可以 然后后台对应的action的方法里只需要
sendSms(‘1500xxxx864‘,$randcount);就可以了,你们先试试,下次再讲如果防止盗刷。
Thinkphp 3.2中注册发送短信验证码功能(未进行盗刷处理版本)
原文地址:http://www.cnblogs.com/HoverM/p/7764403.html