1.要拼接接收的手机号和短信

 public function sendcode()
{
$parpm = input();
$valist = $this->validate($parpm, [
'phone' => 'require|regex:1[3-9]\d{9}'
]);
if ($valist !== true) {
$res = [
'code' => 400,
'msg' => $valist
];
return Json($res);
die;
}
$timer = cache('register_time_' . $parpm['phone']);
if (time() - $timer < 60) {
$rs = [
'code' => '500',
'msg' => '发送太过频繁'
];
echo json_encode($rs);
die;
}
$co = mt_rand(1000, 9999);
$code = '%23code%23%3d' . $co;
//发送短信验证
// $resule=sendmsg($parpm['phone'],$code);
$resule = true;
if ($resule === true) {
cache('register_code_' . $parpm['phone'], $co, 180);
cache('register_time_' . $parpm['phone'], time(), 180);
$re = [
'code' => 200,
'msg' => '短信发送成功',
'data' => "$code"
];
echo json_encode($re);
die;
} else {
$re = [
'code' => 400,
'msg' => $resule
];
echo json_encode($re);
die;
}
}

2.拼接要发送短信的要求

if(!function_exists('sendmsg')){
function sendmsg($phone,$code){
$gateway=config('msg.gateway');
$appkey=config('msg.appkey');
$tpl_id=config('msg.tpl_id');
$url=$gateway.'?mobile='.$phone.'&tpl_id='.$tpl_id.'&tpl_value='.$code.'&key='.$appkey;
$res=curl_require($url,false,[],false);
if(!$res){
return '请求失败';
}
$arr=json_decode($res,true);
if(isset($arr['code'])&&$arr['code']==10000){
return true;
}else{
return false;
}
}
}

3.向第三方发送请求

if(!function_exists('curl_require')){
function curl_require($url,$post=true,$parpm=[],$https=false){
$ch=curl_init($url);
if($post){
curl_setopt($ch,CURLOPT_PORT,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$parpm);
}
if($https){
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$res=curl_exec($ch);
curl_close($ch);
return $res;
}
}

PHP发送短信的更多相关文章

  1. PHP发送短信功能

    发送短信的功能主要在于获得短信接口后,在函数中模仿用户行为,例如浏览器跳转输出短信接口的链接. 需要运用的函数为 curl_init(); curl_setopt(); curl_exec(); cu ...

  2. WPF MVVM下做发送短信小按钮

    最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...

  3. NetCore 阿里大于发送短信

    使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...

  4. android 中调用接口发送短信

    android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...

  5. Android 学习第13课,android 实现发送短信的功能

    1. 界面布局 界面代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  6. ios调用本地拨打电话,发送短信

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话   [[UIApplication sharedApplicat ...

  7. Android发送短信核心代码

    核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...

  8. Android发送短信

    // 发送短信 public void sendMsg(){ String content = edtSend.getText().toString(); SmsManager smsManager ...

  9. a标签的妙用-拨打电话、发送短信、发送邮件

    前端时间在做手机WAP网站时,遇到需要点击页面上显示的电话号能直接拨号的需求,查找资料发现可以使用html的a标签完美实现该需求!记录下来以备后用...... 目前主流手机浏览器对H5的支持已经很不错 ...

  10. java发送短信--httpclient方式

    最近头让我写个发送短信的java程序检测BI系统,检查数据库是否有异常发送,有则发送短信到头的手机里.这里我直说httpclient方式的get请求方式,并且已经有方式的短信的接口了,所以只要再加上参 ...

随机推荐

  1. C# 几种常见数据结构

    一.内存上连续存储,节约空间,可以索引访问,读取快,增删慢 Array:在内存上连续分配的,而且元素类型是一样的,可以坐标访问;读取快--增删慢,长度不变 { //Array:在内存上连续分配的,而且 ...

  2. 下载Abook 高等教育出版社网站资料

    一.背景 又快到了期末复习周,这个学期学了一门操作系统,老师没有给课本习题的答案,说是配套网站上有,我看了一下,确实有,是高等教育出版社的数字课程网站Abookl http://abook.hep.c ...

  3. grid行高亮显示

    grid var grid = new Ext.RSEGrid({ //数据显示面板 id: 'O005_grid', title: '图纸目录', loadMask: true, autoScrol ...

  4. Java工作流引擎表单引擎之JS表单字段输入脚本验证

    关键字: 表单设计器, 字段验证. workflow,ccform, ccBPM. 工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流bpm工作流系统  java工作流 ...

  5. Shell—定时任务(crontab)

    如何让shell脚本每天定时执行? 1.新建需要定时执行的shell脚本,这里为date.sh脚本. #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/u ...

  6. Leetcode823 : 因子二叉树问题

    问题描述 给定一个数组,数组中的数不重复,且均大于1.要求使用数组中的数构建二叉树,每个数字可以被重复使用,除了叶子节点,每个节点的值等于其子节点的乘积,求构建二叉树的数量,返回的结果mod 10** ...

  7. unity3D开发环境搭建

    前言 本文记录unity3D开发环境的搭建 unity安装 unity有中文官网(https://unity.cn/),很贴心,ide工具我们选择下载安装中国区增强版,下载地址:https://uni ...

  8. Linux(三)

    1.用户与用户组        Linux系统是一个多用户.多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统.       ...

  9. 搭建Nginx四层反向代理

    需求背景: 前段时间公司因为业务需求需要部署一个正向代理,我已经分享出来了https://www.cnblogs.com/Dfengshuo/p/11911406.html,现有因架构个更改,需要再加 ...

  10. linux 安装redis服务

    下载地址:http://redis.io/download,下载最新稳定版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/ ...