1要拼接接收的手机号和短信
public function sendcode() { $parpm = input(); $valist = $this->validate($parpm, [ 'phone' => 'require|regex:1[3-9]\d{9}' ]); if ($valist !== true) { $res = [ 'code' => 400, 'msg' => $valist ]; return Json($res); die; } $timer = cache('register_time_' . $parpm['phone']); if (time() - $timer < 60) { $rs = [ 'code' => '500', 'msg' => '发送太过频繁' ]; echo json_encode($rs); die; } $co = mt_rand(1000, 9999); $code = '%23code%23%3d' . $co; //发送短信验证 // $resule=sendmsg($parpm['phone'],$code); $resule = true; if ($resule === true) { cache('register_code_' . $parpm['phone'], $co, 180); cache('register_time_' . $parpm['phone'], time(), 180); $re = [ 'code' => 200, 'msg' => '短信发送成功', 'data' => "$code" ]; echo json_encode($re); die; } else { $re = [ 'code' => 400, 'msg' => $resule ]; echo json_encode($re); die; } }
2拼接要发送短信的要求
if(!function_exists('sendmsg')){ function sendmsg($phone,$code){ $gateway=config('msg.gateway'); $appkey=config('msg.appkey'); $tpl_id=config('msg.tpl_id'); $url=$gateway.'?mobile='.$phone.'&tpl_id='.$tpl_id.'&tpl_value='.$code.'&key='.$appkey; $res=curl_require($url,false,[],false); if(!$res){ return '请求失败'; } $arr=json_decode($res,true); if(isset($arr['code'])&&$arr['code']==10000){ return true; }else{ return false; } } }
3向第三方请求
if(!function_exists('curl_require')){ function curl_require($url,$post=true,$parpm=[],$https=false){ $ch=curl_init($url); if($post){ curl_setopt($ch,CURLOPT_PORT,true); curl_setopt($ch,CURLOPT_POSTFIELDS,$parpm); } if($https){ curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); } curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $res=curl_exec($ch); curl_close($ch); return $res; } }
下面是aliyun的发信deom
// 代码节选,详见dy *** s_php.zip\aliyun-dy *** s-php-sdk\api_demo/SmsDemo.php ... class SmsDemo { ... * 短信服务API产品的DEMO程序,工程中包含了一个SmsDemo类,直接通过 * 执行此文件即可体验短信服务产品API功能(只需要将AK替换成开通了云通信-短信服务产品功能的AK即可) * 备注:Demo工程编码采用UTF-8 */ /** * 发送短信 * @return stdClass */ public static function sendSms() { // 初始化SendSmsRequest实例用于设置发送短信的参数 $request = new SendSmsRequest(); // 必填,设置短信接收号码 $request->setPhoneNumbers("12345678901"); // 必填,设置签名名称,应严格按"签名名称"填写,请参考: https://dy *** s.console.aliyun.com/dy *** s.htm#/develop/sign $request->setSignName("短信签名"); // 必填,设置模板CODE,应严格按"模板CODE"填写,(如果发送国际/港澳台消息时,请使用国际/港澳台短信模版) 请参考: https://dy *** s.console.aliyun.com/dy *** s.htm#/develop/template $request->setTemplateCode(" *** S_0000001"); // 可选,设置模板参数, 假如模板中存在变量需要替换则为必填项 $request->setTemplateParam(json_encode(Array( // 短信模板中字段的值 "code"=>"12345", "product"=>"dsd" ))); // 可选,设置流水号 $request->setOutId("yourOutId"); // 选填,上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段) $request->setSmsUpExtendCode("1234567"); // 发起访问请求 $acsResponse = static::getAcsClient()->getAcsResponse($request); return $acsResponse; } // 调用示例: set_time_limit(0); header('Content-Type: text/plain; charset=utf-8'); $response = SmsDemo::sendSms(); echo "发送短信(sendSms)接口返回的结果:\n"; print_r($response);
完整版deom下载:https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.4.2.796351cdoeTnoI
<?php //首先你要有读写文件的权限 //本程序可以直接运行,第一次报错,以缶涂梢? $online_log = "count.dat"; //保存人数的文件, $timeout = 30;...
分享两个版本的网站运行时间代码 PHP版本 显示为 本站运行:3年9月10天 <?php date_default_timezone_set('Asia/Shanghai')...
<?php //查询禁止IP $ip =$_SERVER['REMOTE_ADDR']; $fileht=".htaccess2"; if(!file_exists($fileht))file_...
<?php header("Content-type:text/html;charset=utf-8"); //jkch.net if (class_exists('CURLFile')) { ...
效果是这样滴~ <meta http-equiv="refresh" content="1;url='<?php echo $url;?>';"> content是跳转时间...
微信域名安全检测API PHP源码 感谢蓝优提供源码 这是一个很简单操作,利用跳转检测是否和域名一致。调用:域名/api.php?url= <?php /** --------...