1.先到短信宝上注册账号 充值 获取账号和密码

http://www.smsbao.com/

2.代码中实例化短信的类 将账号密码输进去 生成验证码 编辑发送内容 即可

<?php

/**

* Created by PhpStorm.

* User: xym

* Date: 2017/7/13

* Time: 下午1:48

*/

namespace dux\vendor;

class SmsBao {

private $account;//短信包账户

private $password;//密码

private $balance;//短信剩余条数

const sendSmsUrl = "http://api.smsbao.com/sms";

const queryBalanceUrl = "http://api.smsbao.com/query";

/**

* 架构函数

* @access public

* @param string $account 在短信宝注册的账户名

* @param string $password 在短信宝注册的账户名的密码

*/

public function __construct($account,$password) {

if (empty($account) || empty($password)) {

throw new \Exception("用户名和密码不可为空!");

}

$this->account = $account;

$this->password = $password;

}

/**

* 发送短信函数

* @access public

* @param string $mobile 手机号,多个手机号用英文逗号分隔

* @param string $content 发送内容

* @return array 返回值为数组,其中status为0表明发送成功,其他情况下发送失败,失败原因为msg

*/

public function sendSms($mobile,$content){

$param['u'] = $this->account;

$param['p'] = md5($this->password);

$param['m'] = $mobile;

$param['c'] = $content;

$ret = self::http(self::sendSmsUrl, $param);

$data['status'] = $ret;

$data['msg'] = $ret == 0 ?'发送成功' : self::getResult($ret);

return $data;

}

/**

* 获取短信剩余条数函数

* @access public

*/

public function getBalance(){

$param['u'] = $this->account;

$param['p'] = md5($this->password);

$ret = self::http(self::queryBalanceUrl, $param);

$retArr = split("\n", $ret);

$balanceArr = split(",", $retArr[1]);

$this->balance = $retArr[0] == 0 ? $balanceArr[1] : self::getResult($ret);

return $this->balance;

}

/**

* 发送http请求

* @access protected

* @param string $url 请求地址

* @param string $param get方式请求内容,数组形式,post方式时无效

* * @param string $data post请求方式时的内容,get方式时无效

* @param string $method 请求方式,默认get

*/

protected static function http($url, $param, $data = '', $method = 'GET'){

$opts = array(

CURLOPT_TIMEOUT => 30,

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_SSL_VERIFYPEER => false,

CURLOPT_SSL_VERIFYHOST => false,

);

/* 根据请求类型设置特定参数 */

$opts[CURLOPT_URL] = $url . '?' . http_build_query($param);

if(strtoupper($method) == 'POST'){

$opts[CURLOPT_POST] = 1;

$opts[CURLOPT_POSTFIELDS] = $data;

if(is_string($data)){ //发送JSON数据

$opts[CURLOPT_HTTPHEADER] = array(

'Content-Type: application/json; charset=utf-8',

'Content-Length: ' . strlen($data),

);

}

}

/* 初始化并执行curl请求 */

$ch = curl_init();

curl_setopt_array($ch, $opts);

$data = curl_exec($ch);

$error = curl_error($ch);

curl_close($ch);

//发生错误,抛出异常

if($error) throw new \Exception('请求发生错误:' . $error);

return $data;

}

private function getResult($key){

$rst['30'] = '密码错误';

$rst['40'] = '账号不存在';

$rst['41'] = '余额不足';

$rst['42'] = '帐号过期';

$rst['43'] = 'IP地址限制';

$rst['50'] = '内容含有敏感词';

$rst['51'] = '手机号码不正确';

return $rst[$key];

}

}

PHP业务中发短信功能相关推荐

  1. 【短信发送】实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现

    实现腾讯云发送短信功能--工具类和SpringBoot配置两种方法实现 一.开通腾讯云短信服务 二.工具类--使用qcloudsms实现短信发送 三.Spring Boot项目引入短信发送功能 我们发 ...

  2. android 自动发彩信,Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...

  3. 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)...

    微信时代的今天,短信一样不可缺席,大系统都有集成短信接口. 若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说 ...

  4. 【delphi】各大平台短信功能控件实现(含源代码、演示程序、帮助)

    阿里云.腾讯云.百度云.京东云等各大平台Delphi开发短信功能开发介绍 当下,无论是注册账户还是发送业务通知,短信功能已经是必不可少,能够提供发送短信功能的平台也非常多,各个平台短信功能大同小异,开 ...

  5. SpringBoot 阿里云短信功能使用

    SpringBoot 阿里云短信功能使用 Jar包引用 上工具类 Jar包引用 <!-- 阿里云核心包 --><dependency><groupId>com.al ...

  6. 实现 Java 发送短信功能

    前言 前几日,有粉丝后台私信我如何实现发送短信的功能,刚好久一刚刚用到了这个功能,就把具体的实现过程记录下来,分享给大家. 我们日常使用的软件或者网站,大部分都在使用短信业务,比如注册.验证码功能.还 ...

  7. android+发短信示例,Android编程实现定时发短信功能示例

    本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...

  8. Java实现阿里云发短信功能

    一 点睛 1 阿里云短信开发文档 https://helpcdn.aliyun.com/document_detail/55284.html 2 阿里云AK申请 https://usercenter. ...

  9. 7 分钟实现 Java 发送短信功能!

    阅读文本大概需要 7 分钟. 前言 前几日,有粉丝后台私信我如何实现发送短信的功能,刚好久一刚刚用到了这个功能,就把具体的实现过程记录下来,分享给大家. 我们日常使用的软件或者网站,大部分都在使用短信 ...

最新文章

  1. 读小学的宝宝人缘好,收到同学赠送的小瓶茅台酒!
  2. vscode进行远程服务器 An SSH installation couldn't be found、
  3. 面向对象的三大特征继承,封装和多态性
  4. VS2015编译MuPDF 1.13.0源码(详细)
  5. postgresql 比较两个时间差大于 N个小时
  6. mysql 帐号开启远程_两大步骤教您开启MySQL 数据库远程登陆帐号
  7. 01 Python变量和数据类型
  8. linux延时与定时操作
  9. (pytorch-深度学习)循环神经网络
  10. C++笔记-const与mutable、static_cast与reinterpret_cast
  11. php 检测死锁,MySQL 死锁检测
  12. 刚刚,华为云找到了更安全更卫生的乘坐电梯方式
  13. gitlab 删除仓库
  14. matlab矩阵作分钟平均,提高matlab运行速度和节省空间的心得合集(ZT)
  15. 最常用标准库函数 (转)
  16. 基于PHP图书馆图书借阅管理系统
  17. Dual Thrust 策略
  18. NETWARE系统加入服务器,Linux操作系统下配置Netware服务器方法
  19. wap 第六章 svg 路径
  20. 像素是计算机图像处理的最小单元,图像处理复习

热门文章

  1. Python3 Request+Redis 爬取BILIBILI番剧列表
  2. EditText禁止输入表情符号
  3. mysql中 signed 与 unsigned  详解
  4. Postgres数据库增加表字段、注解语句、修改字段长度、修改字段名称
  5. rog 幻 16 经典版 2023 评测 怎么样
  6. 高校图书馆知识管理策略剖析
  7. 根据优先关系矩阵使用逐次加一法构造优先函数(Java)
  8. 无线信号的传输与接收(operating-band,Channel-bandwidth)
  9. 教你32种摄影方式,发挥无限创意
  10. 【数学】两根距离公式