700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > thinkphp6 短信宝/腾讯云发送手机号验证码

thinkphp6 短信宝/腾讯云发送手机号验证码

时间:2021-09-12 13:01:13

相关推荐

thinkphp6 短信宝/腾讯云发送手机号验证码

短信接口

场景:通常在使用手机号注册时需要发送短信验证码,在修改密码等敏感操作时也需要验证手机号发送短信验证码。

短信验证码的目的:验证用户的身份是否本人

在项目代码中发送短信,通常要调用第三方短信商的短信发送接口。

提供短信接口的平台:百度Apistore数据平台、聚合数据平台、京东万象等等

一般情况下,短信接口需要企业认证用户才能申请、一般都是收费的。

短信宝:

<?php$statusStr = array("0" => "短信发送成功","-1" => "参数不全","-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!","30" => "密码错误","40" => "账号不存在","41" => "余额不足","42" => "帐户已过期","43" => "IP地址限制","50" => "内容含有敏感词");$smsapi = "/";$user = "***"; //短信平台帐号$pass = md5("****"); //短信平台密码$content="短信内容";//要发送的短信内容$phone = "*****";//要发送短信的手机号码$sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);$result =file_get_contents($sendurl) ;echo $statusStr[$result];

首先使用composer执行命令

composer require mrwanghongda/sms-sdk

当点击发送验证码的按钮时发送ajax请求

绑定点击事件

<div class="control-group"><label for="inputPassword" class="control-label">验证码:</label><div class="controls"><input type="text" id="code" name="code" placeholder="验证码" class="input-xfat input-xlarge" style="width:120px"><button type="button" class="btn-xlarge" id="dyMobileButton">发送验证码</button><span class="error"></span></div></div>

发送ajax请求

$('#dyMobileButton').click(function (){var tel = $('#phone').val();$.ajax({url:'sendcode',data:{tel:tel,},type:'get',success:function (e){console.log(e);}})})

控制器中的代码

/*** 短信宝*/const SMS_BAO = 'bao';/*** 腾讯云*/const SMS_TENCENT = 'tencent';/*** 阿里云正在开发中...*/const SMS_ALIYUN = 'aliyun';//接受手机号$tel = $request->get('tel');//生成随机数$code=rand(1111,9999);//工厂模式$smsObj = (new SmsFactory(SmsFactory::SMS_BAO))->getSmsService();/* 必要步骤:* 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。* 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。* 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,* 以免泄露密钥对危及你的财产安全。* CAM密匙查询: https://console./cam/capi*/$config = [/* 填写平台对应的CAM密匙secretId,短信宝填写平台账号*/'secretId' => '账号',/* 填写平台对应的CAM密匙secretKey,短信宝填写平台密码*/'secretKey' => '密码',/* 短信应用ID: 短信SdkAppId在 [短信控制台] 添加应用后生成的实际SdkAppId,示例如1400006666 ,短信宝默认为空*/'smsSdkAppId' => '',/* 验证码,示例如5039 */'code' => $code,/* 填写腾讯、阿里平台对应的签名内容,短信宝则默认为空 */'signName' => '',/* 发送的手机号,示例如17899873465 */'tel' => $tel,/* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */'templateId' => "",/* 模板发送的短信内容,短信宝则需要填写 如:"【短信宝】您的验证码是"5390",3分钟有效。", 腾讯、阿里默认为空 */'content' => '【短信宝】'.$code.',3分钟有效。',//];$result = $smsObj->send($config);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。