卓望的短信发送。PHP格式。都要不习惯用xml传输数据格式了

标签:

1. [代码][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;

}

}

以上所述就是本文的全部内容了,希望大家能够喜欢。

php可以发短信的代码,php实现短信发送代码相关推荐

  1. 最好用的发短信(验证码、语音短信)接口

    使用阿里大鱼短信接口 注册 进入大鱼页面,如果没有账号,则自行注册,再此不在过多详述. 注册完成或者有账号的则在首页中点击加入"加入阿里大鱼",如下: 创建引用 点击"管 ...

  2. 增值电信业务中1069短信代码和1066短信代码有什么区别吗?

    1066短信代码: 1066短信代码:

  3. 验证码短信 API 接入指南:Java 语言示例代码

    短信验证码是一种通过短信发送的验证码,通常用于验证用户的身份.保障账户安全和防止恶意攻击等.短信验证码已经成为现代社会中不可或缺的一部分,广泛应用于各种场景,包括用户注册和登录.找回密码等等. 为了满 ...

  4. Android实现拨打电话和发送短信,Android手机拨打电话、手动发送短信与自动拨打电话、自动发送短信(代码很简单哦)...

    Android实现手动拨打电话,即点击后跳转到手机默认电话号码输入页面,可以将相应号码传送过去: Intent intent = new Intent(Intent.ACTION_DIAL, Uri. ...

  5. qpython3h手机版怎么发短信_python如何使用腾讯云发送短信

    腾讯云方面的申请和流程都比较简单,基本都是可视化操作的,这里就不在赘述了.这篇文章着重讲解怎么用python实现调用. 我假设你已经满足了以下几个前提 + 已经开通了腾讯云短信业务 + 创建好了短信签 ...

  6. 阿里云短信服务详细说明与实战开发后端代码

    文章目录 1.短信服务背景 2.短信发送流程 3.阿里云短信服务基本说明 3.1 开通阿里云短信服务与购买短信套餐包 3.2 短信服务帮助文档 3.3 手机短信模板介绍 3.3.1 基本说明 3.3. ...

  7. PHP代码中的情话,[php发送短信验证码代码]php发送短信验证码

    业务: 手机端点击发送验证码,请求发送到php端,由php调用第三方平台(我们使用的是榛子云短信http://smsow.zhenzikj.com)的短信接口,生成验证码并发送. 在"我的应 ...

  8. 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。

    相关API文档地址: 阿里云短信服务API文档地址 小程序云开发云函数正则匹配API文档地址 小程序云开发云函数定时触发器 1.登录阿里云,购买短信服务并添加签名和模板 2., 登录阿里云,鼠标放在右 ...

  9. 短信接口被恶意调用?企业短信防火墙+【中昱维信】短信验证码【Java】

    短信接口被恶意调用?企业短信防火墙+[中昱维信]短信验证码[Java] 一.企业短信防火墙的实现 1.1 简介 1.2 第一步:获取防火墙帐号密钥 1.3 第二步:下载防火墙服务器 1.4 第三步:业 ...

  10. 短信防火墙使用教程(短信防轰炸、防盗刷)

    短信服务接口安全是在开发或对接短信接口时尤为关注的问题.部分黑客可能出于恶意竞争或短信轰炸他人的目的,攻击短信服务接口,盗刷验证短信,造成资金损失.那么应该如何避免短信接口被恶意调用?本文为大家介绍短 ...

最新文章

  1. Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU
  2. “笨方法”学习Python笔记(1)-Windows下的准备
  3. 配置一个Servlet可以被一个(指定的开头链接,后自定义)访问
  4. C++debug调试出现heap corruption detected: after normal block 可能的原因
  5. nssl1257-A【数论】
  6. 操作系统页面置换算法(opt,lru,fifo,clock)实现
  7. openstack 云_探索OpenStack云案例研究
  8. c语言实验题水仙花数5359,《C语言程序设计》实验报告(实验1-12).doc
  9. 在网页中嵌入任意字体的解决方案---google在线字体库应用
  10. Linux系统的Redis的安装与运行
  11. matlab矩阵(一)--如何控制矩阵中小数点的位数
  12. Subversion for Windows 相关工具
  13. Android面试心得,已拿到字节跳动,京东,android应用开发基础学堂在线答案
  14. Win连接android打印机,教你用Android/Iphone/MacWindows和群晖实现无线打印
  15. Leetcode592. 分数加减
  16. 微信文件指定应用打开并获取文件路径,以及遇到的一个坑
  17. sourceTree 问题解决
  18. RFC请求注解(Request for Comments)介绍|internet最重要的文献资源
  19. outlook2013邮箱找不到服务器,outlook发邮件总提示找不到服务器,不知哪里设置不对,请哪位大侠指点一下...
  20. Android 接口的default 方法运行时报错AbstractMethodError

热门文章

  1. 智能科学与技术与数据科学与大数据技术哪个好
  2. windows 时间同步工具软件
  3. 面向产品的新一代端到端唤醒框架 wekws 正式发布
  4. double型10进制转二进制
  5. Vue项目——文章发布和修改
  6. Verilog状态机详述
  7. Outlook账号被封?别慌,一步步教你怎么申诉
  8. CentOS7防火墙配置,重启
  9. Latex 排版相关(一)
  10. OpenLayer仿天地图多时相