Heim > Artikel > Backend-Entwicklung > 短信验证码 谁会
网站有API 现在只有一个前台页面 求教我PHP该怎么写? 以前从没接触过,谁会的话加我QQ804135715 解决一下 更想拜个师傅
没用过 你看看短信服务商提供的api接口
应该是有demo
www.yuntongxun.com的短信验证码,速度挺快,平均8秒左右。以下是类文件
<?php/** * 云通讯短信类 * @author yuanjiang **/if(!defined('IN_T')){ die('hacking attempt');}class Sms_yuntongxun{ //开发者账号 private $AccountSid; //开发者Token private $AccountToken; //应用id private $AppId; //短信模板id private $TemplateId; //请求地址,格式如下,不需要写https:// //private $ServerIp='sandboxapp.cloopen.com'; //开发环境url private $ServerIP='app.cloopen.com'; //生产环境url //请求端口 private $ServerPort='8883'; //REST版本号 private $SoftVersion='2013-12-26'; //当前时间 private $Batch; /** * 构造 */ function __construct($accountsid,$accounttoken,$appid,$tempid){ $this->AccountSid = $accountsid; $this->AccountToken = $accounttoken; $this->AppId = $appid; $this->TemplateId = $tempid; $this->Batch = date('YmdHis',time()); } /** * 发送短信 */ public function sendMsg($to,$datas) { // 拼接请求包体 $data=""; for($i=0;$i<count($datas);$i++){ $data = $data. "'".$datas[$i]."',"; } $body= "{'to':'$to','templateId':'".$this->TemplateId."','appId':'$this->AppId','datas':[".$data."]}"; // 大写的sig参数 $sig = strtoupper(md5($this->AccountSid . $this->AccountToken . $this->Batch)); // 生成请求URL $url="https://$this->ServerIP:$this->ServerPort/$this->SoftVersion/Accounts/$this->AccountSid/SMS/TemplateSMS?sig=$sig"; // 生成授权:主帐户Id + 英文冒号 + 时间戳。 $authen = base64_encode($this->AccountSid . ":".$this->Batch); // 生成包头 $header = array("Accept:application/json","Content-Type:application/json;charset=utf-8","Authorization:$authen"); // 发送请求 $result = $this->curl_post($url,$body,$header); $datas=json_decode($result); /* if($datas == FALSE){ $datas = new stdClass(); $datas->statusCode = '172003'; $datas->statusMsg = '返回包体错误'; } */ //重新装填数据 if($datas->statusCode==0){ $datas->TemplateSMS =$datas->templateSMS; unset($datas->templateSMS); } return $datas; } /** * 发起HTTPS请求 */ private function curl_post($url,$data,$header,$post=1) { //初始化curl $ch = curl_init(); //参数设置 $res= curl_setopt ($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, $post); if($post) curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$header); $result = curl_exec ($ch); curl_close($ch); return $result; } }/** * 应用实例//主帐号$accountSid= 'xxxxxx';//主帐号Token$accountToken= 'xxxxxx';//应用Id$appId='xxxxxx';//模板Id$templateId='xxxxxx';$Sms_yuntongxun = new Sms_yuntongxun($accountSid,$accountToken,$appId,$templateId);print_r($Sms_yuntongxun->sendMsg('13612345678',array(273262,'注册新用户',15)));*/?>
短信供应商应该有接口的,按照他们给的demo写就好了