PHP 手机短信发送验证码
点击链接加入群【php/web 学习课堂】:https://jq.qq.com/?_wv=1027&k=5645xiw
欢迎大家加入,一起讨论学习
本篇设计的知识点有点多,我会分类将,同学们可以选择性的看,当然全学会是最好的。
首先我们要清楚以下要点:
1.短信平台
2.编码模式
3.curl方法
4.接口参数
5.返回值(成功/失败)
我们开始吧:
1.短信平台,有很多,当初同学介绍给我,是“阿里大于”,但由于第一次加入这么大的平台,有点迷,最后的结果是没成功....我找到了另外一些平台,对比了之后,我决定采用 106接口(http://www.106jiekou.com/),我没打广告哟,相信我。我选择的这个平台,价格是没有 阿里大于 优惠的,效率的话,阿里的背景我就不用解释了吧
2.当我们进入106接口官方之后,注册(可以免费试用10条短信),进入个人中心之后,上面有一个“下载接口文档”。我们下载之后,能看到两个文件夹:gbk 和 utf8,两者的区别请参考:https://zhidao.baidu.com/question/133119038.html
3.此平台提供了curl方法,我们就选择此方法来实现功能,代码等一切都已写好,只需要我们修改参数,不明白curl的,可以参考:http://www.jb51.net/article/39940.htm
4.参数,不懂参数的同学,请重修一遍,因为这里,你可以不懂任何代码,因为你只需要写出正确的参数,即刻实现功能。他给出了 4个参数:account(帐号)、password(接口密码)、mobile(手机号码)、content(短信内容);还有一个固定的 链接,链接不需要管,是他们平台的接口地址
注:第四个参数(短信内容)不能随意修改,需要参考短信平台提供的“模板”,若要修改成你想要的内容,需要跟平台交流... 人家平台是要赚钱继续运营的,所以给了我们一定限制的,你开通VIP就可以自定义模板,越高权限越大....我真的没打广告,只是我用过,给大家分享经验
5.返回值,当我们填写了参数,运行此代码,就会访问别人的接口地址(他提供的默认链接),成功失败都会返回给我们一个状态吗,是一个数字,我们需要去看他的开发文档,对应他返回的状态吗,给出相应的提示
<?php
header("Content-Type: text/html; charset=utf-8");
function Post($curlPost,$url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$return_str = curl_exec($curl);
curl_close($curl);
return $return_str;
} $target = "http://sms.106jiekou.com/utf8/sms.aspx";
//替换成自己的测试账号,参数顺序和wenservice对应
$post_data = "account=账号&password=密码&mobile=手机号码&content=".rawurlencode("您的验证码是:651080565。如需帮助请联系客服。"); echo $gets = Post($post_data, $target); //采用UTF-8编码,要将文件另存为UTF-8格式
//请自己解析$gets字符串并实现自己的逻辑
//100 表示成功,其它的参考文档 ?>
以上,参数的意思:
账号、密码,是你在他平台上注册的账号和密码,他需要知道,你是不是他平台的用户,获取了你的账号和密码,就可以去使用属于你的短信套餐;
第三个参数:手机号码,是你要将短信发送给谁的手机号码;
第四个参数:短信内容。上面说过了这个平台的短信模板,是有权限的,我们不能修改,修改的话,就会失败,需要自定义模板,就要充钱成为VIP
复制以上代码,修改前三个参数,可以直接使用,但是需要去平台注册你的账号,可免费试用10条的样子。
这里说一下,有的同学肯定说,这个平台不稳定,不优惠,总之就是不想用他,想用其他平台怎么办?不难,我这里演示的这个过程,你只需要明白,调用别人平台的接口,你就要遵守他的规则,看他的开发者文档,思想基本上都是一样的,只要理清楚了思想,实现起来就不难了。
PHP 手机短信发送验证码的更多相关文章
- yii2验证密码->手机号码短信发送>手机短信发送频繁问题
<?php namespace frontend\models; use Yii; use yii\base\Model; class ChangeMobileSendRequestForm e ...
- laravel中实现短信发送验证码
前段时间想实现一个短信验证码的功能,但是卡了很长时间. 首先我用的是阿里云的短信服务业务,其首次接入流程如下: 在阿里云上开通短信服务后需要做的: 1,申请签名 2,申请模板 3,创建Acces ...
- [工具-007] C#手机短信发送
本工具是基于中国网建SMS短信通的API进行开发的,主要功能就是用注册的号码对指定的号码发送短信,此功能主要应用于企业营销方面. 中国网建SMS短信通http://www.smschinese.cn/ ...
- 4、ABPZero系列教程之拼多多卖家工具 集成短信发送模块
ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...
- ABP集成短信发送模块
ABPZero并没有手机短信发送功能,现在我们来集成一个,为后面注册.登录作铺垫. 阿里云短信服务 首先需要在阿里云开通短信服务,连接地址 开通后,在签名管理中添加一个签名 在模板管理中添加一个模板, ...
- C#.NET 大型信息化系统集成快速开发平台 - 手机短信开发接口 4.0
可以批量发信息给手机,相同的信息发给多个手机号码的效果图 已发送手机短信列表 可以批量发手机的功能,可以把先有的待发信息列表,直接通过批量发送功能发出 这个是设置发送模板公式的功能展示,可以设置发送的 ...
- Java版阿里云通信短信发送API接口实例(新)
阿里云通信(原名阿里大于)的短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等. 完美支撑双11期间2亿用户,发送6亿短信 ...
- 四:java调接口实现发送手机短信验证码功能
1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...
随机推荐
- kotlin标准委托之阻止属性的赋值操作
import kotlin.properties.Delegates fun main(arg: Array<String>) { val user = user() user.name= ...
- kotlin泛型基本使用
class box<T> (t :T){ var vlaue =t } fun main(arg: Array<String>) { val box1:box<Int&g ...
- linux 查看网络流量命令
转: linux 查看网络流量命令 2019年01月31日 14:22:00 weixin_33894992 阅读数 893 sar命令参数很多,有时间man一下. -n参数很有用,他有6个不同的 ...
- C++数据结构之排序
一.简单排序 冒泡排序: 插入排序: 逆序对 希尔排序:
- Spring Boot连接MySQL报错“Internal Server Error”的解决办法
报错信息如下: {timestamp: "2018-06-14T03:48:23.436+0000", status: 500, error: "Internal Ser ...
- 为什么要设置 Mysql 的 ft_min_word_len=1
为什么要设置 Mysql 的 ft_min_word_len=1 ? 从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4.如果是英文默认值是比较合理的,但是中文 ...
- JS 正则表达式 控制文本框只能输入中文、英文、数字与指定特殊符号
JS 正则表达式 控制文本框只能输入中文.英文.数字与指定特殊符号(屏蔽表情输入) onkeyup:释放键盘事件 onpaste:粘贴事件 oncontextmenu :鼠标右击事件 只能输入中文: ...
- 初识MyBatis之HelloWorld
1.先下载MyBatis相关Jar包. 2. 创建数据库和表 CREATE TABLE tbl_employee( id ) PRIMARY KEY AUTO_INCREMENT, last_name ...
- 建立自己的数据类型——C结构体归纳
一.建立结构体类型 1.申明结构体类型 struct 结构体名 { 成员表列(类型名 成员名:); }: 例如: struct Person { char name; int age; char se ...
- IJG JPEG使用说明
IJG JPEG库使用说明 版权所有:1994-1998,Thomas G. Lane 本文档是IJG软件的一部分. 分发和使用的条件请参看README文档. 本文档讲述如何在应用程序中使用IJG(I ...