PHP梦网云通讯API版本

<?php
/*** Created by PhpStorm.* User: Trevor Lan* Date: 2020/3/20 0020* Time: 17:40*/namespace app\v1\controller;class Message
{/*** API请求地址*/private $BaseUrl;public $ERROR_310099=-310099;//http请求失败错误码public function  __construct($BaseUrl){if (!empty($BaseUrl)) {$this->BaseUrl = $BaseUrl;} else {throw new Exception("API请求地址错误");}}/*** 密码加密* $userid:用户账号* $pwd:用户密码*/public function encrypt_pwd($userid, $pwd){try {$char = '00000000';//固定字符串$time = date('mdHis', time());//时间戳$pwd = md5($userid . $char . $pwd . $time);//拼接字符串进行加密return array('pwd' => $pwd, 'time' => $time);} catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/*** 短信内容加密* $content:短信内容*/public function encrypt_content($content){try {return urlencode(iconv('UTF-8', 'GBK', $content));//短信内容转化为GBK格式再进行urlencode格式加密}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/*** 短连接请求方法* $url:请求地址* $post_data:请求数据*/private function connection($url,$post_data){try {$attributes = array('Accept:text/plain;charset=utf-8', 'Content-Type:application/json', 'charset=utf-8', 'Expect:', 'Connection: Close');//请求属性$ch = curl_init();//初始化一个会话/* 设置验证方式 */curl_setopt($ch, CURLOPT_HTTPHEADER, $attributes);//设置访问curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//设置返回结果为流curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);//设置请求超时时间curl_setopt($ch, CURLOPT_TIMEOUT, 60);//设置响应超时时间/* 设置通信方式 */curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//使用urlencode格式请求$result = curl_exec($ch);//获取返回结果集$result=preg_replace('/\"msgid":(\d{1,})./', '"msgid":"\\1",', $result);//正则表达式匹配所有msgid转化为字符串$result = json_decode($result, true);//将返回结果集json格式解析转化为数组格式if (curl_errno($ch) !== 0) //网络问题请求失败{$result['result'] = $this->ERROR_310099;curl_close($ch);//关闭请求会话return $result;} else {$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if ($statusCode != 200||!isset($result['result']))//域名问题请求失败或不存在返回结果{$result='';//清空result集合$result['result'] = $this->ERROR_310099;}curl_close($ch);//关闭请求会话return $result;}} catch (Exception $e) {print_r($e->getMessage());//输出捕获的异常消息$result['result'] = $this->ERROR_310099;//返回http请求错误代码return $result;}}/** 单条发送* $data:请求数据集合*/public function singleSend($data){try {$data['userid'] = strtoupper($data['userid']);//用户名转化为大写$encrypt=$this->encrypt_pwd($data['userid'],$data['pwd']);//密码进行MD5加密$data['pwd']=$encrypt['pwd'];//获取MD5加密后的密码$data['timestamp']=$encrypt['time'];//获取加密时间戳$data['content'] = $this->encrypt_content($data['content']);//短信内容进行urlencode加密$post_data = json_encode($data);//将数组转化为JSON格式$result = $this->connection($this->BaseUrl.'single_send',$post_data);//根据请求类型进行请求return $result;//返回请求结果}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/** 相同内容群发* $data:请求数据集合*/public function batchSend($data){try{$data['userid']=strtoupper($data['userid']);//用户名转化为大写$encrypt=$this->encrypt_pwd($data['userid'],$data['pwd']);//密码进行MD5加密$data['pwd']=$encrypt['pwd'];//获取MD5加密后的密码$data['timestamp']=$encrypt['time'];//获取加密时间戳$data['content']=$this->encrypt_content($data['content']);//短信内容进行urlencode加密$post_data=json_encode($data);//将数组转化为JSON格式$result = $this->connection($this->BaseUrl.'batch_send',$post_data);//根据请求类型进行请求return $result;}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/** 个性化内容群发* $data:请求数据集合*/public function multiSend($data){try{$data['userid']=strtoupper($data['userid']);//用户名转化为大写$encrypt=$this->encrypt_pwd($data['userid'],$data['pwd']);//密码进行MD5加密$data['pwd']=$encrypt['pwd'];//获取MD5加密后的密码$data['timestamp']=$encrypt['time'];//获取加密时间戳foreach($data['multimt'] as $k=>$v){$data['multimt'][$k]['content'] = $this->encrypt_content($v['content']);//每一条个性化的短信内容进行urlencode加密}$post_data=json_encode($data);//将数组转化为JSON格式$result=$this->connection($this->BaseUrl.'multi_send',$post_data);//根据请求类型进行请求return $result;}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/** 查询余额* $data:请求数据集合*/public function getBalance($data){try{$data['userid']=strtoupper($data['userid']);//用户名转化为大写$encrypt=$this->encrypt_pwd($data['userid'],$data['pwd']);//密码进行MD5加密$data['pwd']=$encrypt['pwd'];//获取MD5加密后的密码$data['timestamp']=$encrypt['time'];//获取加密时间戳$post_data=json_encode($data);//将数组转化为JSON格式$result=$this->connection($this->BaseUrl.'get_balance',$post_data);//根据请求类型进行请求return $result;}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/** 请求获取上行* $requestPath:请求地址* $data:请求数据集合* $isEncryptPwd:是否加密*/public function getMo($data){try{$data['userid']=strtoupper($data['userid']);//用户名转化为大写$encrypt=$this->encrypt_pwd($data['userid'],$data['pwd']);//密码进行MD5加密$data['pwd']=$encrypt['pwd'];//获取MD5加密后的密码$data['timestamp']=$encrypt['time'];//获取加密时间戳$post_data = json_encode($data);//将数组转化为JSON格式$result=$this->connection($this->BaseUrl.'get_mo',$post_data);//根据请求类型进行请求return $result;//返回请求结果}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}/** 请求获取状态报告* $requestPath:请求地址* $data:请求数据集合* $isEncryptPwd:是否加密*/public function getRpt($data){try{$data['userid']=strtoupper($data['userid']);//用户名转化为大写$encrypt=$this->encrypt_pwd($data['userid'],$data['pwd']);//密码进行MD5加密$data['pwd']=$encrypt['pwd'];//获取MD5加密后的密码$data['timestamp']=$encrypt['time'];//获取加密时间戳$post_data = json_encode($data);//将数组转化为JSON格式$result=$this->connection($this->BaseUrl.'get_rpt',$post_data);//根据请求类型进行请求return $result;}catch (Exception $e) {print_r($e->getMessage());  //输出捕获的异常消息}}}

封装信息发送类

<?php
/*** Created by PhpStorm.* User: Trevor Lan* Date: 2020/3/20 0020* Time: 17:40*/namespace app\v1\controller;class SendMessage
{public $url;public $smsSendConn;public $data = [];public function __construct(){$this->url = 'http://IP或域名:端口/sms/v2/std/';$this->data['userid'] = '****';$this->data['pwd'] = '****';$this->smsSendConn = new Message($this->url);}/*** 发送单条信息* @return bool|false|string*/public function singleSend($phone){$this->data['mobile'] =$phone;// 随机数$rand=rand(100000,999999);//设置发送短信内容(必填)$this->data['content'] ='您的验证码是'.$rand.',在5分钟内输入有效。如非本人操作请忽略此短信。';// 业务类型(可选)$this->data['svrtype'] = '';// 设置扩展号(可选)$this->data['exno'] = '';//用户自定义流水编号(可选)$this->data['custid'] = '';// 自定义扩展数据(可选)$this->data['exdata'] = '';try {$result = $this->smsSendConn->singleSend($this->data);if ($result['result'] === 0) {//print_r("单条信息发送成功!");$res=['state'=>1,'msg'=>'Code send success'];return json_encode($res);} else {// print_r("单条信息发送失败,错误码:" . $result['result']);$res=['state'=>0,'msg'=>'Code send fail'];return json_encode($res);}} catch (Exception $e) {print_r($e->getMessage());//输出捕获的异常消息,请根据实际情况,添加异常处理代码return false;}}/*** 短信剩余量* @return bool*/public function getMessageCount(){try {$result = $this->smsSendConn->getBalance($this->data);if ($result['result'] === 0) {if ($result['chargetype'] === 0) {print_r("查询成功,当前计费模式为条数计费,剩余条数为:" . $result['balance']);} else if ($result['chargetype'] === 1) {print_r("查询成功,当前计费模式为金额计费,剩余金额为:" . $result['money']."元");} else {print_r("未知的计费类型");}} else {print_r("查询余额失败,错误码:" . $result['result']);}}catch (Exception $e) {print_r($e->getMessage());//输出捕获的异常消息,请根据实际情况,添加异常处理代码return false;}}/*** 获取上行消息* @return bool*/public function getUserMessa(){$data['retsize']=100;try {$result = $this->smsSendConn->getMo($this->data);if($result['result']===0){foreach($result['mos'] as $k=>$v){$result['mos'][$k]['content']=urldecode($v['content']);//将内容进行utf-8解码}print_r("获取上行成功");print_r($result['mos']);}else{print_r("获取上行失败,错误码:" .$result['result']);}}catch (Exception $e) {print_r($e->getMessage());//输出捕获的异常消息,请根据实际情况,添加异常处理代码return false;}}/*** 获取发送报告* @return bool*/public function getSendReport(){$data['retsize']=100;try {$result = $this->smsSendConn->getRpt($this->data);//获取状态报告if($result['result']===0){print_r("获取状态报告成功");print_r($result['rpts']);//输出状态报告信息}else{print_r("获取状态报告失败,错误码:" .$result['result']);}}catch (Exception $e) {print_r($e->getMessage());//输出捕获的异常消息,请根据实际情况,添加异常处理代码return false;}}}

PHP之封装梦网云通讯短信发送类相关推荐

  1. Django验证码*短信验证码之2-容联云通讯短信平台(联云通讯短信平台介绍、容联云通讯Python SDK、封装发送短信单例类)

    容联云通讯短信平台介绍 容联云通讯网址:https://www.yuntongxun.com/ 容联云管理控制台 容联云创建应用 容联云通讯Python SDK https://doc.yuntong ...

  2. python荣联云通讯短信平台

    荣联云通讯短信平台 注册账号 管理模块>>应用管理>>创建应用>>编辑应用>>勾选短信验证码 安装 requests 模块 pip install re ...

  3. Java+Demo对接中国移动 云MAS短信发送(http协议详解,新测成功!)

    一.登录官网,下载http接入文档(随着官网不断更新,可参考官网的文档) 官网地址为:云mas业务平台 进入云MAS管理平台,找到 管理-接口管理 的列表页. (必读:本文对接方式是 java引用ja ...

  4. SpringBoot代码实现移动云 模板短信发送

    springboot实现移动云 模板短信发送 引入这几个依赖 <dependency><groupId>commons-codec</groupId><art ...

  5. SpringBoot+腾讯云实现短信发送

    SpringBoot+腾讯云实现短信发送 在腾讯云创建短信签名 短信签名审核通过后创建短信模板 短信发送SDK(java)文档,将com.tencentcloudapi包导入 <dependen ...

  6. 云通讯短信验证码实例

    1.注册登录云通讯     http://www.yuntongxun.com/user/login 2.创建应用得到应用相关信息 3.下载对应相关的Demo示例 http://www.yuntong ...

  7. 创蓝253云通讯短信平台变量说明

    创蓝253云通讯变量说明文档 变量短信发送 用户通过HTTP的POST方式提交短信发送请求. 系统提交URL地址 http://sms.253.com/msg/HttpVarSM 参数定义 序号 参数 ...

  8. Luffy之注册认证(容联云通讯短信验证)

    用户的注册认证 前端显示注册页面并调整首页头部和登陆页面的注册按钮的链接. 注册页面Register,主要是通过登录页面进行改成而成. 先构造前端页面 <template><div ...

  9. 使用阿里云实现短信发送服务(测试版)

    官网发送测试短信步骤 官网短信测试注册步骤 第一步 注册阿里云账号 第二步 注册成功之后 第三步 获取AK 阿里云官网提供的原生API(验证码发送) import com.aliyuncs.Defau ...

  10. 解忧云SMS短信发送系统服务平台源码+解密完美版

    正文: 解忧云SMS短信服务平台系统,短信发送系统,全解密完美版,经过一系列修复现在程序已经可以完全使用. 并且是全解密随时可以二开,无后门,一些bug已经完全修复. 安装教程: 数据库配置文件路径  ...

最新文章

  1. 新生 语不惊人死不休 —— 《无限恐怖》读后有感
  2. 冷静处理因为一时疏忽产生的错误。是提升自己的重要方法
  3. 迭代器: isinstance
  4. 工作中 99% 会用到的 Git 命令
  5. scheduledexecutorservice 只执行一次_一个ScheduledExecutorService启动的Java线程无故挂掉引发的思考...
  6. with pdo mysql_如何在PHP下开启PDO MySQL的扩展
  7. Android App自动更新解决方案(DownloadManager)
  8. centos7 hostnamectl
  9. vue中修改了数据但视图无法更新的情况
  10. Linux下Nginx安装
  11. TortoiseGit 添加ssh key
  12. teraterm 执行sql_teraterm自动或定时执行远程命令
  13. 功能扩展——邮件发送、网页注册
  14. 大数据实战第十六课(上)-Spark-Core04
  15. 计算机体系结构:系统平均无故障时间(MTTF)计算例题
  16. 什么是RESTful风格的API设计?
  17. 如何查看计算机硬盘的软件内存条,内存检测工具,内存检测软件 - 内存条检测工具就用金山卫士 - 安全专题...
  18. [转]Google Dremel 原理 - 如何能3秒分析1PB
  19. leetcode hot100 梳理
  20. objective c 函数声明

热门文章

  1. h3c 链路聚合测试_H3CSE学习之链路聚合
  2. 进军生物计算!百度发布飞桨螺旋桨PaddleHelix
  3. 咸鱼Maya笔记—Maya 绘制多边形
  4. 计算机关于职业与道德的论文怎么写,计算机职业道德论文提纲模板 计算机职业道德论文大纲怎么写...
  5. namp 端口扫描技术
  6. Microsoft .NET FrameWork 4安装失败解决方法
  7. 大腿神经网络解剖图片,大腿神经网络解剖图谱
  8. AccuMark 7.6.2 格柏服装软件
  9. matlab 峰值位置,在数据中查找峰值 - MATLAB Simulink - MathWorks 中国
  10. c#语言猜数字游戏,使用C#实现猜数字游戏