首頁  >  文章  >  後端開發  >  短信验证码 谁会

短信验证码 谁会

WBOY
WBOY原創
2016-06-23 13:09:31824瀏覽

网站有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写就好了

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn