玄武科技短信接口封装类

<?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;

}

}

 

}

 

转载于:https://www.cnblogs.com/xulie/p/8550034.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
玄武科技Java笔试题主要测试应聘者在Java编程方面的基础知识和应用能力。下面将从题目内容、解题思路和代码实现等方面给出回答。 题目内容: 题目可能涉及Java的基本语法、数据型、控制语句、面向对象编程、集合框架、IO操作等方面的知识点。根据题目具体要求可能需要编写相应的代码或解决问题。 解题思路: 面对每个具体的题目,可以先仔细阅读题目要求和提示,理清思路。然后可以将问题分解为更小的子问题,逐个解决。在解决问题的过程中需要运用所学的Java知识,合理利用相关API和工具的方法。 代码实现: 在编写代码时,可以按照题目要求定义和方法,根据输入和输出要求进行变量的定义和赋值操作,在合适的位置加入循环和判断语句,以实现题目要求的功能。在编码过程中注意注释和良好的代码风格,提高代码的可读性和可维护性。 最后,完成编码后可以进行测试,确保代码能够正确运行,并满足题目要求。 总结: 玄武科技Java笔试题考察了应聘者在Java编程方面的基础知识和应用能力。针对每个具体的题目,应聘者需要理清解题思路,合理利用Java知识和API解决问题,并通过代码实现来验证自己的解法。通过合理准备和练习,应聘者可以在笔试中展现出自己的能力和优势,提高通过面试的机会。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值