登录之手机号验证码登录

news/2024/12/22 14:48:27/

今天测试云之讯api 云之讯官网提供源码只需要修改就好

我的是放入tp5路径如下:前端代码脑补 只有一个input和按钮


直接上代码

index.php

<?php
namespace app\admin\controller;
use think\Db;
use think\Loader;
use think\Controller;
use app\admin\controller\PhoneSend;class Index extends Controller
{public function index(){return $this->fetch();}public function set(){// var_dump($_POST);$obj = new PhoneSend();$obj->text();}
}
PhoneSend.php

<?php
namespace app\admin\controller;
use app\admin\controller\Ucpass;
class PhoneSend{public function text(){//初始化必填//填写在开发者控制台首页上的Account Sid$options['accountsid']='0ac771342e5d4a88985e72777b940287';//填写在开发者控制台首页上的Auth Token$options['token']='e1cea586fcfb361167de2264d8693f56';//初始化 $options必填   /*随机生成6位验证码  复杂方式*/srand((double)microtime()*1000000);//create a random number feed.$authnum;$ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";$list=explode(",",$ychar);for($i=0;$i<6;$i++){$randnum=rand(0,35); // 10+26;$authnum[$i]=$list[$randnum]; }$authnum = implode('', $authnum);// 简单的验证 6位纯数字// $authnum = rand(100000,999999);$ucpass = new \app\admin\controller\Ucpaas($options);$appid = "88d1b0f941f942c9a45fc354653af2ae";  //填写自己的$mobile = $_POST['mobile'];$templateid = "313343";$param=$authnum;$uid=''; $arr=$ucpass->SendSms($appid,$templateid,$param,$mobile,$uid);/*if (substr($arr,21,6) == 000000) {//如果成功就,这里只是测试样式,可根据自己的需求进行调节echo "短信验证码已发送成功,请注意查收短信";}else{//如果不成功echo "短信验证码发送失败,请联系客服";}*/}
}

Ucpass.php

<?php
namespace app\admin\controller;
class Ucpaas
{//API请求地址const BaseUrl = "https://open.ucpaas.com/ol/sms/";//开发者账号ID。由32个英文字母和阿拉伯数字组成的开发者账号唯一标识符。private $accountSid;//开发者账号TOKENprivate $token;public function  __construct($options){if (is_array($options) && !empty($options)) {$this->accountSid = isset($options['accountsid']) ? $options['accountsid'] : '';$this->token = isset($options['token']) ? $options['token'] : '';} else {throw new Exception("非法参数");}}private function getResult($url, $body = null, $method){$data = $this->connection($url,$body,$method);if (isset($data) && !empty($data)) {$result = $data;} else {$result = '没有返回数据';}return $result;}/*** @param $url    请求链接* @param $body   post数据* @param $method post或get* @return mixed|string*/private function connection($url, $body,$method){if (function_exists("curl_init")) {$header = array('Accept:application/json','Content-Type:application/json;charset=utf-8',);$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HTTPHEADER, $header);if($method == 'post'){curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$body);}curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);$result = curl_exec($ch);curl_close($ch);} else {$opts = array();$opts['http'] = array();$headers = array("method" => strtoupper($method),);$headers[]= 'Accept:application/json';$headers['header'] = array();$headers['header'][]= 'Content-Type:application/json;charset=utf-8';if(!empty($body)) {$headers['header'][]= 'Content-Length:'.strlen($body);$headers['content']= $body;}$opts['http'] = $headers;$result = file_get_contents($url, false, stream_context_create($opts));}return $result;}/**单条发送短信的function,适用于注册/找回密码/认证/操作提醒等单个用户单条短信的发送场景* @param $appid        应用ID* @param $mobile       接收短信的手机号码* @param $templateid   短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID* @param null $param   变量参数,多个参数使用英文逗号隔开(如:param=“a,b,c”)* @param $uid			用于贵司标识短信的参数,按需选填。* @return mixed|string * @throws Exception*/public function SendSms($appid,$templateid,$param=null,$mobile,$uid){$url = self::BaseUrl . 'sendsms';$body_json = array('sid'=>$this->accountSid,'token'=>$this->token,'appid'=>$appid,'templateid'=>$templateid,'param'=>$param,'mobile'=>$mobile,'uid'=>$uid,);$body = json_encode($body_json);$data = $this->getResult($url, $body,'post');return $data;}/**群发送短信的function,适用于运营/告警/批量通知等多用户的发送场景* @param $appid        应用ID* @param $mobileList   接收短信的手机号码,多个号码将用英文逗号隔开,如“18088888888,15055555555,13100000000”* @param $templateid   短信模板,可在后台短信产品→选择接入的应用→短信模板-模板ID,查看该模板ID* @param null $param   变量参数,多个参数使用英文逗号隔开(如:param=“a,b,c”)* @param $uid			用于贵司标识短信的参数,按需选填。* @return mixed|string * @throws Exception*/public function SendSms_Batch($appid,$templateid,$param=null,$mobileList,$uid){$url = self::BaseUrl . 'sendsms_batch';$body_json = array('sid'=>$this->accountSid,'token'=>$this->token,'appid'=>$appid,'templateid'=>$templateid,'param'=>$param,'mobile'=>$mobileList,'uid'=>$uid,);$body = json_encode($body_json);$data = $this->getResult($url, $body,'post');return $data;}
} 




http://www.ppmy.cn/news/711978.html

相关文章

手机发送验证码

1 需求 发送短信以后&#xff0c;再次发送短信按钮变得不可用&#xff0c;倒计时60秒以后才可以使用 2 步骤 创建按钮倒计时的方法&#xff1a;function countDown(count)&#xff0c;在发送短信请求以后调用 发送短信按钮不可用 每过1秒调用1次匿名函数 匿名函数中计数减1…

某注册页面存在手机短信验证码绕过

某注册页面存在手机短信验证码绕过的情况 关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭关闭…

手机号+短信验证码登录注意

首先我们 说下成员变量和局部变量 简单介绍下 成员变量 &#xff1a;定义在class里面 方法外边 局部变量&#xff1a; 定义在方法里面 如果一个变量是成员变量&#xff0c;那么多个线程对同一个对象的成员变量进行操作时&#xff0c;它们对该成员变量是彼此影响的&#xff0c…

往手机发验证码

前段时间因为项目的需要涉及到了一个往手机上发验证码的项目&#xff0c;代码贴出来&#xff0c;希望指点。。。。。 首先是页面&#xff0c;此页面是用于输入用户的手机号码&#xff1a;addModeCode.jsp <% page contentType"text/html; charsetgb2312" %> &…

城市一账通收不到注册短信或者手机收不到短信

每个人手里都是有手机&#xff0c;有很多的app的注册、登录都是用手机号&#xff0c;因为这样更方便&#xff0c;不需要实时记录个人密码&#xff0c;特别是针对自己设置很多密码&#xff0c;容易忘记&#xff0c;只需要收到验证码即可授权登录&#xff0c;但是有一定的风险吧&…

手机验证码获取

<el-form-item label"短信验证码" required><el-input v-model"ruleForm.verificationcode" placeholder"请添加验证码"><el-button v-if"isdisabled" slot"suffix" style"color:#409EFF;" type&…

短信验证码泄露怎么办?

短信验证码泄露看起来不是啥大事&#xff0c;但是如果真的被别人恶意窃取了就不是个小事了&#xff0c;轻则账号丢失&#xff0c;重则账户中的钱财不保&#xff0c;所以对验证码大家一定要加强保护&#xff0c;不要被有心人窃取了。 那么&#xff0c;短信验证码为什么会泄露&a…

手机号码、验证码的处理

1、 验证手机号码是否正确 export function validPhoneNumber(phoneNumber) {return !!phoneNumber && /^1[3-9]\d{9}$/.test(phoneNumber); }2、验证输入密码是否符合规则 注&#xff1a;6到16位&#xff0c;必须包含数字&#xff0c;大小写字母 export function va…