php手机短信接口发送验证码类
来源:互联网 发布:业务流程图制作软件 编辑:程序博客网 时间:2024/05/21 09:28
<?php
class
Sms
{
private
$userId
=
'XXXXX'
;
private
$password
=
'XXXXXX'
;
private
$templateId
=
'XXXXXX'
;
/**
* @var string 短信服务器地址
*/
private
$server_uri
=
'XXXXXX'
;
private
$port
=
'XXXXXX'
;
/**
* 发送短信
* @param $message 信息内容
* @param $mobile 手机号码
* @param string $signature 签名
* @return bool 成功返回true, 网络请求失败返回false, 其他返回失败编码
*/
public
function
sendOneMsg(
$message
,
$mobile
,
$signature
=
'demo'
)
{
$xml_content
=
$this
->createXmlContent(
$message
,
$mobile
,
$signature
);
$xml
=
$this
->sendHttpRequest(trim(
$xml_content
));
if
(!
$xml
) {
return
false;
// 网络请求失败
}
// 解析返回的编码
$res
= simplexml_load_string(
$xml
);
if
(
$res
->retCode == 1000) {
return
true;
}
return
$res
->retCode;
}
/**
* 创建 xml内容
* @param $message 信息
* @param $mobile 要发送的手机号码
* @param $signature 签名
* @return string
*/
private
function
createXmlContent(
$message
,
$mobile
,
$signature
)
{
$data
=
array
(
'userId'
=>
$this
->userId,
// 账号
'password'
=>
$this
->password,
// 小写的md5后的用户密码
'templateId'
=>
$this
->templateId,
// 模板id
'phone'
=>
$mobile
,
'port'
=>
$this
->port,
'data'
=>
$message
,
'signature'
=>
$signature
,
);
// 设置xml版本和编码
$dom
=
new
\DOMDocument(
'1.0'
,
'UTF-8'
);
// 创建根节点
$request
=
$dom
->createElement(
'request'
);
$dom
->appendChild(
$request
);
foreach
(
$data
as
$key
=>
$val
) {
// 创建元素
$key
=
$dom
->createElement(
$key
);
$request
->appendChild(
$key
);
// 创建元素值
$text
=
$dom
->createTextNode(
$val
);
$key
->appendChild(
$text
);
}
return
$dom
->saveXML();
}
/**
* 发送http请求
* @param $xml_content
* @return mixed
*/
private
function
sendHttpRequest(
$xml_content
)
{
$now
= time();
$headers
[] =
'Content-Type:text/xml'
;
$headers
[] =
'Content-Length:'
.
strlen
(
$xml_content
);
$headers
[] =
'Cmd:mt'
;
$headers
[] =
'TS:'
.
$now
;
$headers
[] =
'Authorization:'
.
strtoupper
(md5(
$xml_content
.
$now
.
$this
->password));
$ch
= curl_init();
curl_setopt(
$ch
, CURLOPT_URL,
$this
->server_uri);
curl_setopt(
$ch
, CURLOPT_HTTPHEADER,
$headers
);
curl_setopt(
$ch
, CURLOPT_POST, 1);
curl_setopt(
$ch
, CURLOPT_POSTFIELDS,
$xml_content
);
curl_setopt(
$ch
, CURLOPT_RETURNTRANSFER, 1);
curl_setopt(
$ch
, CURLOPT_HEADER, 0);
$res
= curl_exec(
$ch
);
curl_close(
$ch
);
//header('Content-Type:text/html; charset=utf-8');
return
$res
;
}
}
阅读全文
0 0
- php手机短信接口发送验证码类
- php手机短信接口发送验证码
- PHP接口实现手机短信验证
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用WebService接口实现发送手机短信验证码功
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用WebService接口实现发送手机短信验证码功能
- OneThink发送手机短信验证APP接口
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- 发送手机短信获取验证码功能
- 发送手机短信获取验证码功能
- ASP.NET发送手机短信验证码
- qt使用http下载文件(断点续传)
- UDP为何快?
- extjs submit调用后台时,前台收不到返回数据,无限等待解决办法
- sql 、linq、lambda 查询语句的区别
- 南京邮电大学网络攻防训练平台[Vigenere]
- php手机短信接口发送验证码类
- Annotation--系统内建的Annotatioe
- 主机win10和虚拟机ubuntu16互ping
- Nginx的启动、停止与重启
- hdu-4718:The LCIS on the Tree(树链剖分+区间合并)
- 记一次服务器发送邮件端口排查过程。
- 部署Nextcloud私有云
- java.lang.OutOfMemoryError:GC overhead limit exceeded
- 【转载】CSDN如何转载别人的文章