php控制手机发短信,Thinkphp5结合sms-bao短信宝手机短信接口使用

第一次做短信验证,弄了好几天才明白短信验证流程,希望能对小伙伴们有辣么一点点儿滴帮助

流程示意图(纯手绘)

5726b6d6cdbf

下面上干货:二话不说直接开撸

页面如下:(由于编辑器不能粘贴html代码,所以只能截图)

5726b6d6cdbf

JS代码:

function send_phone(){

var mobile_phone=$("#mobile_phone").val();

varmobile_code=$("#mobile_code").val();

if($("#mobile_phone").val()==""){

alert("手机号不能为空!");return false;

}

if(!/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/i.test($("#mobile_phone").val())){

alert("手机号码不对,请正确填写");return false;

}

varurl="{:url('Sms/index')}";

$.post(url,{"mobile_phone":mobile_phone},function(data){

alert(data);

console.log(data);

});

}

function submit(){

var mobile_phone=$("#mobile_phone").val();

var mobile_code=$("#mobile_code").val();

$.post("{:url('Index/yz')}",{"mobile_phone":mobile_phone,"mobile_code":mobile_code},function(data){

alert(data);

});

}

后台代码:两个控制器(Sms处理接口;Index处理页面显示和表单提交)

/**

* Created by PhpStorm.

* User: shzk

* Date: 2017/4/14

* Time: 10:13

*/

namespace app\index\controller;

use think\Controller;

use think\Cookie;

class Sms extends Controller {

public function index(){

if(request()->isPost()){

$mobile_phone=input('post.mobile_phone');

// 短信内容

$vacode=rand('111111','999999');

//设置验证码cookie为300秒,即五分钟内输入验证码都有效果

Cookie::set('mobile_vcode',$vacode,300);

$message="[SMS]您的验证码是:".$vacode."。请不要把验证码泄露给其他人。";

$sms_name='*****';//短信平台帐号

$sms_pwd='*****';//短信平台密码

$statusStr=array(

"0"=>"短信发送成功",

"-1"=>"参数不全",

"-2"=>"服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",

"30"=>"密码错误",

"40"=>"账号不存在",

"41"=>"余额不足",

"42"=>"帐户已过期",

"43"=>"IP地址限制",

"50"=>"内容含有敏感词"

);

$smsapi="http://api.smsbao.com/";

$user=$sms_name;//短信平台帐号

$pass=md5("$sms_pwd");//短信平台密码

$content=$message;//要发送的短信内容

$phone=$mobile_phone;//要发送短信的手机号码

$sendurl=$smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);

$result=file_get_contents($sendurl) ;

echo $statusStr[$result];

}

}

}

/*

*/

namespace app\index\controller;

usethink\Controller;

usethink\Cookie;

class Index extends Controller{

public function index(){

return$this->fetch("Index/index");

}

public function yz(){

if(request()->isPost()){

$phone=input('post.mobile_phone');

$code=input('post.mobile_code');

$cookie_code=Cookie::get('mobile_vcode');

if($code==$cookie_code){

$this->success("yes");

}else{

$this->error("error");

}

}else{

$this->error("error");

}

}

}

如果你看了这篇博文对你有收获,请在右下角给本尊点个喜欢,蟹蟹...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。接入腾讯云短信API需要以下几个步骤: 1. 注册腾讯云账号,并开通短信服务。 2. 创建应用,获取 AppID 和 AppKey。 3. 安装腾讯云 SDK。 4. 在 ThinkPHP5 中集成腾讯云 SDK。 5. 编写发送短信的代码。 以下是详细步骤: 1. 注册腾讯云账号,并开通短信服务。 首先,你需要注册一个腾讯云账号,然后在控制台中开通短信服务。在开通短信服务时,你需要填写企业信息并进行实名认证。 2. 创建应用,获取 AppID 和 AppKey。 在腾讯云控制台中创建应用,并获取 AppID 和 AppKey。这些信息将在后面的代码中使用。 3. 安装腾讯云 SDK。 在你的项目中安装腾讯云 SDK。可以通过 Composer 安装,也可以手动下载安装。 4. 在 ThinkPHP5 中集成腾讯云 SDK。 在 ThinkPHP5 中集成腾讯云 SDK,可以在 config.php 配置文件中添加以下配置: ```php // config.php return [ 'qcloud' => [ 'sms' => [ 'app_id' => 'your-app-id', 'app_key' => 'your-app-key', 'template_id' => 'your-template-id', 'sms_sign' => 'your-sms-sign', ], ], ]; ``` 上面的配置中,app_id 和 app_key 是在第二步中获取的,template_id 是短信模板的 ID,sms_sign 是短信签名。 5. 编写发送短信的代码。 在 ThinkPHP5 中发送短信可以通过继承 Qcloud\Sms\SmsSingleSender 类来实现。以下是发送短信的示例代码: ```php use Qcloud\Sms\SmsSingleSender; $appId = config('qcloud.sms.app_id'); $appKey = config('qcloud.sms.app_key'); $templateId = config('qcloud.sms.template_id'); $smsSign = config('qcloud.sms.sms_sign'); $sender = new SmsSingleSender($appId, $appKey); $result = $sender->sendWithParam('86', $mobile, $templateId, $params, $smsSign); if ($result === false) { return '发送短信失败'; } $response = json_decode($result, true); if ($response['result'] !== 0) { return '发送短信失败:' . $response['errmsg']; } return '发送短信成功'; ``` 上面的代码中,$mobile 是接收短信手机号码,$params 是短信模板中的参数,$result 是发送短信的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值