php如何成功调用短信接口

200 阅读1分钟
最近网站开发用户注册部分需要用短信验证码,就在网上找了一个短信接口,用着还不错,下面把接入的一些源码分享给大家。

用的乐信短信接口的,网站:https://www.lx598.com/

这家公司还提供在线体验,https://www.lx598.com/dxyzm.html  我就是体验了下速度挺快的,才选择了这家。

下面是部分源码:


<?php

            
// ① 该代码仅供接入动力思维乐信短信接口参考使用,客户可根据实际需要自行编写; 
// ② 支持发送验证码短信、触发通知短信等; 
// ③ 测试验证码短信、通知短信,请用默认的测试模板,默认模板详见接口文档。
			
class SendUtility {
	private $_config = array();
	
	/**
	 * 获取相关配置
	 * Config.php文件中的乐信用户名、密码、签名
	 */
	public __construct($config) {
		$this->_config  =  $config;
	}
	
	/**
	 * 拼接请求参数
	 */
	function BuildContent($AimMobiles, $Content) {
		$str  = "accName=" . urlencode($this->_config["UserName"]);
		$str .= "&accPwd=" . urlencode(strtoupper(md5($this->_config["Password"])));
		$str .= "&aimcodes=" . urlencode($AimMobiles);
		$str .= "&content=" . urlencode($Content . $this->_config["Signature"]);
		return $str;
	}
	 
	/**
	 * 短信发送
	 * @param $AimMobiles 下行手机号
	 * @param $Content 短信内容
	 */
	function Send($AimMobiles, $Content) {
		$content = $this->BuildContent($AimMobiles, $Content);
		$counter = 0;
		while ($counter < count($this->_config["Addresses"])) {
			$opts = array('http' =>  array("method" => "POST", "timeout" => $this->_config["HttpTimeout"],
				"header" => "Content-type: application/x-www-form-urlencoded", "content" => $content));
			$message = file_get_contents($this->_config["Addresses"][$counter] . "/send", false,
				stream_context_create($opts));
			if ($message == false) $counter++;
			else break;				
		}
		if ($message == false) return "发送失败";	
		$RtnString = explode(";", $message);	
		if ($RtnString[0] != "1") return $RtnString[1];	
		return $RtnString[0];	
	}
	
	/**
	 * 余额查询
	 * @param $accName 用户名
	 * @param $accPwd 密码
	 */
	function Query() {
		$content  = "accName=" . urlencode($this->_config["UserName"]);
		$content .= "&accPwd=" . urlencode(strtoupper(md5($this->_config["Password"])));
		$opts = array('http' =>  array("method" => "POST", 
			"header" => "Content-type: application/x-www-form-urlencoded", 
			"content" => $content));
		$message = file_get_contents($this->_config["Addresses"][0] . "/qryBalance", false,
			stream_context_create($opts));
		if ($message == false) return "查询失败";
		$RtnString = explode(";", $message);	
		if ($RtnString[0] != "1") return $RtnString[1];	
		return $RtnString[2];	
	}
	
	
}

php>