玄武科技短信接口封装类

<?php

 

/**

 * 短信发送类

 */

 

class Sms{

 

public $config;

/**

 * 发送短信

 * @param int $phone 手机号码

 * @param int $content 正文 带 %s替换

 * @param int $code 验证码

 * @param int $code_limit 验证码位数

 * @return array

 *

 * @example

 * $content='验证码:%s';

 * $result=$this->sms->send(15918721789,$content,$code);

 * var_dump($result,$content,$code);

 */

public function send($phone,&$content,&$code,$code_limit=6){

//生成验证码

$code=$this->generateMsgAuthCode($code_limit);

 

//正文

$content = sprintf($content, $code);

 

//默认只有玄武

//return array("result"=>true,"info"=>'');

return $this->xuanWuSms($phone,$content);

}

 

/**

 * 玄武科技短信接口

 * @param int $phone 手机号码

 * @param int $content 正文

 * @return array

 */

public function xuanWuSms($phone,$content){

$msm_url = 'http://xxxx/cgi-bin/sendsms?';

$msm_account = $this->config['xuanwu']['account'];

$msm_pwd = $this->config['xuanwu']['pwd'];

 

$url=$msm_url."username=".$msm_account."&password=";

$url.=$msm_pwd."&to=".$phone."&text=".urlencode(iconv('utf-8', 'gb2312', $content))."&subid=&msgtype=1";

$send=$this->__httpGet($url);

 

if ($send===false){

$retrun=array("result"=>false,"info"=>"接口请求失败!");

return $retrun;

}

 

$result=false;

$info="";

switch ($send){

case "0" :

$result=true;

$info="发送成功!";

break;

case "-2" :

$info="发送参数填定不正确!";

break;

case "-3" :

$info="用户载入延迟!";

break;

case "-6" :

$info="密码错误!";

break;

case "-7" :

$info="用户不存在!";

break;

case "-11" :

$info="发送号码数理大于最大发送数量";

break;

case "-12" :

$info="余额不足";

break;

case "-99" :

$info="内部处理错误";

break;

default:

$result=false;

$info="其他错误".(string)$result;

break;

}

return array("result"=>$result,"info"=>$info);

}

 

/**

 * 生成验证码

 */

public function generateMsgAuthCode($limit) {

$rand_array = range(0, 9);

shuffle($rand_array); //调用现成的数组随机排列函数

return implode('', array_slice($rand_array, 0, $limit)); //截取前$limit个

}

 

/**

 * GET 请求

 * @param string $url

 */

private function __httpGet($url) {

$oCurl = curl_init();

if (stripos($url, "https://") !== FALSE) {

curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);

}

curl_setopt($oCurl, CURLOPT_URL, $url);

curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);

$sContent = curl_exec($oCurl);

$aStatus = curl_getinfo($oCurl);

curl_close($oCurl);

if (intval($aStatus["http_code"]) == 200) {

return $sContent;

} else {

return false;

}

}

 

}

 

posted @ 2018-03-12 16:33  伤痕、  阅读(924)  评论(0编辑  收藏  举报